haikuwebkit/Source/WebCore/ChangeLog-2014-02-20

73783 lines
3.1 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 dont 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 JSLocks 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 theres 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, dont 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. Dont clip when we shouldnt, use the
RenderViews 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): Dont 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): Cant 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 WebKit2s 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 hasnt
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 dont 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 elements 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): Dont 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 &lrm; &rlm; and &nbsp; 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 breaks.
(WebCore::RenderMultiColumnSet::calculateBalancedHeight): This is
now a const method that only does half of what the old
calculateBalancedHeight() did. The rest (such as actually storing
the new column height) is done by recalculateBalancedHeight().
(WebCore::RenderMultiColumnSet::clearForcedBreaks): Needs to be
called between each layout pass, to clear the list of "content
runs".
(WebCore::RenderMultiColumnSet::addForcedBreak): Only useful when
columns are to be balanced. It receives explicit (forced) breaks
and stores them as "content runs". When layout is done, we'll go
through the list of content runs, and see where implicit breaks
should be inserted (if there's room for any). The goal is to
insert implicit breaks in such a way that the final columns become
as short as possible.
(WebCore::RenderMultiColumnSet::recalculateBalancedHeight):
Calculates and sets a new balanced column height. This used to be
done directly in calculateBalancedHeight(), but that method is now
const and it now only calculates the new height and returns it.
(WebCore::RenderMultiColumnSet::prepareForLayout):
* rendering/RenderMultiColumnSet.h: Remove old data members
intended for forced breaks (they were unused), and introduce a
"content run" vector instead. A new content run is triggered by an
explicit break. This is only used when column balancing is
enabled. When not balanced, RenderMultiColumnSet doesn't need to
do anything when explicit breaks are inserted.
2014-01-20 Eric Carlson <eric.carlson@apple.com>
Allow MediaSessionManager to restrict 'preload' behavior
https://bugs.webkit.org/show_bug.cgi?id=127297
Reviewed by Jer Noble.
Tests: media/video-restricted-no-preload-auto.html
media/video-restricted-no-preload-metadata.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Apply restrictions to preload attribute before
passing to media engine.
(WebCore::HTMLMediaElement::loadResource): Ditto.
* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::effectivePreloadForElement): New, limit preload according to restrictions.
* html/HTMLMediaSession.h:
* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::resetRestrictions): Limit preload to metadata only. Drive-by
static deviceClass initialization cleanup.
* testing/Internals.cpp:
(WebCore::Internals::setMediaSessionRestrictions): Support MetadataPreloadingNotPermitted and
AutoPreloadingNotPermitted.
2014-01-20 Andreas Kling <akling@apple.com>
Let RenderImage construct its RenderImageResource.
<https://webkit.org/b/127290>
Everyone who creates a RenderImage immediately follows up with
creating a RenderImageResource and assigning it to the image.
Let the RenderImage constructor do this instead, and make the
imageResource() accessors return references. This exposed a
number of unnecessary null checks.
Also modernized the touched code with std::unique_ptr.
Reviewed by Antti Koivisto.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::createElementRenderer):
(WebCore::HTMLImageElement::didAttachRenderers):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::createElementRenderer):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers):
(WebCore::HTMLVideoElement::parseAttribute):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::createInputRenderer):
(WebCore::ImageInputType::attach):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::renderImageResource):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
(WebCore::RenderImage::~RenderImage):
(WebCore::RenderImage::styleDidChange):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::imageDimensionsChanged):
(WebCore::RenderImage::notifyFinished):
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
(WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):
(WebCore::RenderImage::minimumReplacedHeight):
(WebCore::RenderImage::computeIntrinsicRatioInformation):
(WebCore::RenderImage::embeddedContentBox):
* rendering/RenderImage.h:
(WebCore::RenderImage::imageResource):
(WebCore::RenderImage::cachedImage):
* rendering/RenderImageResource.h:
* rendering/RenderImageResourceStyleImage.h:
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::RenderMedia):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::calculateIntrinsicSize):
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createContentRenderer):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::RenderSVGImage):
(WebCore::RenderSVGImage::~RenderSVGImage):
(WebCore::RenderSVGImage::updateImageViewport):
(WebCore::RenderSVGImage::paint):
(WebCore::RenderSVGImage::paintForeground):
* rendering/svg/RenderSVGImage.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::didAttachRenderers):
2014-01-20 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-20 Jochen Eisinger <jochen@chromium.org>
Never send a non-http(s) referrer header even with a referrer policy
https://bugs.webkit.org/show_bug.cgi?id=127172
Reviewed by Alexey Proskuryakov.
This mirrors the code SecurityPolicy::shouldHideReferrer which is used
for ReferrerPolicyDefault.
No new tests, only affects an embedder that registers other schemes,
e.g. chrome://
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::generateReferrerHeader):
2014-01-20 Mihai Tica <mitica@adobe.com>
[CSS Background Blending] Background layer with -webkit-cross-fade doesn't blend
when having -webkit-background-blending applied. Turns out the problem was
the blending parameter not being passed to WebCore::CrossfadeGeneratedImage::draw
https://bugs.webkit.org/show_bug.cgi?id=126887
Reviewed by Dirk Schulze.
Test: css3/compositing/background-blend-mode-crossfade-image.html
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw): set blendMode on context.
2013-11-22 Sergio Villar Senin <svillar@igalia.com>
Null-pointer dereference in WebCore::CSSValue::isPrimitiveValue
https://bugs.webkit.org/show_bug.cgi?id=124769
Reviewed by Andreas Kling.
Test: fast/gradients/crash-on-no-position-separator.html
The function parseFillPosition() may not return valid values for
centerX and centerY if the input data is malformed. We need to
check that we get a valid pair of positions before checking that
they're actually valid primitive values in the assertions.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseRadialGradient):
2014-01-20 Mihai Tica <mitica@adobe.com>
Background-blend-mode doesn't work for an element with an
SVG image as background and border-style or padding set.
The problem consisted in the drawing path using the default
blending parameter at all times.
https://bugs.webkit.org/show_bug.cgi?id=118894
Reviewed by Dirk Schulze.
Test: css3/compositing/background-blend-mode-data-uri-svg-image.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer): Pass blendMode to Image::drawPattern.
* svg/graphics/SVGImage.h: Add a blendMode parameter to drawPatternForContainer.
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawPattern): Pass blendMode to drawPatternForContainer call.
2014-01-20 Zalan Bujtas <zalan@apple.com>
Subpixel layout: setSimpleLineLayoutEnabled() produces different layout when line position has CSS px fractions.
https://bugs.webkit.org/show_bug.cgi?id=126892
Reviewed by Antti Koivisto.
SimpleLineLayout needs to copy normal linebox layout's subpixel rounding strategy to produce
the same layout.
Covered by existing tests.
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
2014-01-20 Gurpreet Kaur <k.gurpreet@samsung.com>
Col width is not honored when dynamically updated and it would make table narrower
https://bugs.webkit.org/show_bug.cgi?id=104711
Reviewed by Antti Koivisto.
Increasing the table width by increasing the colgroup width
was working but decreasing the table width by decreasing the
colgroup width is not working.
Test: fast/dom/HTMLTableColElement/resize-table-width-using-col-width.html
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::styleDidChange):
When colgroup width is defined table cell should adjust according to
that. On decreasing colgroup width the cells maxPreferredLogicalWidth
was still set to the earlier value. Setting the
setPreferredLogicalWidthsDirty to true so that cells pref width is
calculated again.
2014-01-20 Edit Balint <edbalint@inf.u-szeged.hu>
[CoordinatedGraphics] Segmentation fault at CoordinatedGraphicsScene::clearImageBackingContents
https://bugs.webkit.org/show_bug.cgi?id=125776
Reviewed by Csaba Osztrogonác.
Unexpected behavior occurs in some test cases which leads to segmentation fault.
* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::removeImageBacking):
2014-01-20 Morten Stenshorne <mstensho@opera.com>
Region based multicol: tall line causes taller multicol container than necessary
https://bugs.webkit.org/show_bug.cgi?id=122550
Detect and report all column breaks, also when there's no pagination strut involved.
This may end up becoming the overall smallest space shortage in some cases,
so we need to report it, to avoid column height over-stretching.
Reviewed by David Hyatt.
Test: fast/multicol/newmulticol/balance10.html
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):
2014-01-19 Carlos Garcia Campos <cgarcia@igalia.com>
[GLIB] GVariant floating references are not correctly handled by GRefPtr
https://bugs.webkit.org/show_bug.cgi?id=127246
Reviewed by Martin Robinson.
Do not adopt GVariant floating references, they will be converted
to a full reference by GRefPtr.
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::fillSelectionData):
(WebCore::PasteboardHelper::fillDataObjectFromDropData):
2014-01-19 Jinwoo Song <jinwoo7.song@samsung.com>
Use unsigned type for the size of CSSParserValueList
https://bugs.webkit.org/show_bug.cgi?id=127211
Reviewed by Andreas Kling.
* css/CSSParser.cpp: Changed variable type from int to unsigned.
(WebCore::CSSParser::parseValue):
2014-01-19 Jaehun Lim <ljaehun.lim@samsung.com>
Unreviewed build fix after r162293
Fix debug build.
[ 13%] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/html/parser/HTMLTreeBuilder.cpp.o
/source/WebKit/Source/WebCore/html/parser/HTMLTreeBuilder.cpp: In member function void WebCore::HTMLTreeBuilder::processStartTagForInTable(WebCore::AtomicHTMLToken*):
/source/WebKit/Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1037:40: error: no match for operator! in !(WebCore::HTMLTreeBuilder::InsertionMode)12
/source/WebKit/Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1037:40: note: candidate is:
/source/WebKit/Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1037:40: note: operator!(bool) <built-in>
/source/WebKit/Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1037:40: note: no known conversion for argument 1 from WebCore::HTMLTreeBuilder::InsertionMode to bool
make[2]: *** [Source/WebCore/CMakeFiles/WebCore.dir/html/parser/HTMLTreeBuilder.cpp.o] Error 1
make[1]: *** [Source/WebCore/CMakeFiles/WebCore.dir/all] Error 2
make: *** [all] Error 2
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInTable): Fix ASSERT.
2014-01-19 Anders Carlsson <andersca@apple.com>
Stop using MutexTryLocker in WebCore
https://bugs.webkit.org/show_bug.cgi?id=127254
Reviewed by Andreas Kling.
Instead use std::mutex and std::unique_lock with the std::try_to_lock constructor.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::process):
(WebCore::AudioBufferSourceNode::setBuffer):
* Modules/webaudio/AudioBufferSourceNode.h:
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::insertEvent):
(WebCore::AudioParamTimeline::cancelScheduledValues):
(WebCore::AudioParamTimeline::valueForContextTime):
(WebCore::AudioParamTimeline::valuesForTimeRange):
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
* Modules/webaudio/AudioParamTimeline.h:
* Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::process):
(WebCore::ConvolverNode::reset):
(WebCore::ConvolverNode::setBuffer):
* Modules/webaudio/ConvolverNode.h:
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
(WebCore::MediaElementAudioSourceNode::process):
(WebCore::MediaElementAudioSourceNode::lock):
(WebCore::MediaElementAudioSourceNode::unlock):
* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::setFormat):
(WebCore::MediaStreamAudioSourceNode::process):
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/OscillatorNode.cpp:
(WebCore::OscillatorNode::process):
(WebCore::OscillatorNode::setPeriodicWave):
* Modules/webaudio/OscillatorNode.h:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::process):
(WebCore::PannerNode::setPanningModel):
* Modules/webaudio/PannerNode.h:
* Modules/webaudio/WaveShaperProcessor.cpp:
(WebCore::WaveShaperProcessor::setCurve):
(WebCore::WaveShaperProcessor::setOversample):
(WebCore::WaveShaperProcessor::process):
* Modules/webaudio/WaveShaperProcessor.h:
2014-01-19 Alberto Garcia <berto@igalia.com>
Does not build with SVG disabled
https://bugs.webkit.org/show_bug.cgi?id=127248
Reviewed by Sam Weinig.
Add missing #if ENABLE(SVG) guard.
* dom/ElementData.h:
2014-01-19 Anders Carlsson <andersca@apple.com>
Use a strong enum for HTMLTreeBuilder::InsertionMode
https://bugs.webkit.org/show_bug.cgi?id=127252
Reviewed by Antti Koivisto.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::constructTree):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processTemplateStartTag):
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::closeTheCell):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::defaultForInitial):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
* html/parser/HTMLTreeBuilder.h:
2014-01-19 Anders Carlsson <andersca@apple.com>
Convert LoaderRunLoopCF.cpp and WebCoreThreadRun.cpp over to modern threading primitives
https://bugs.webkit.org/show_bug.cgi?id=127251
Reviewed by Antti Koivisto.
Also add a condition to the loaderRunLoop() function to protect against spurious wake-ups.
* platform/ios/wak/WebCoreThreadRun.cpp:
* platform/network/cf/LoaderRunLoopCF.cpp:
(WebCore::loaderRunLoopMutex):
(WebCore::loaderRunLoopConditionVariable):
(WebCore::runLoaderThread):
(WebCore::loaderRunLoop):
2014-01-19 Anders Carlsson <andersca@apple.com>
Modernize ReverbConvolver
https://bugs.webkit.org/show_bug.cgi?id=127250
Reviewed by Andreas Kling.
Use std::unique_ptr instead of OwnPtr and the STL threading primitives instead of the WTF ones.
* platform/audio/ReverbConvolver.cpp:
(WebCore::ReverbConvolver::ReverbConvolver):
(WebCore::ReverbConvolver::~ReverbConvolver):
(WebCore::ReverbConvolver::backgroundThreadEntry):
(WebCore::ReverbConvolver::process):
* platform/audio/ReverbConvolver.h:
2014-01-18 Andy Estes <aestes@apple.com>
[iOS] Rename GestureEventIOS.{cpp,h} to GestureEvent.{cpp,h} to fix the build
InFilesCompiler.pm assumes that <interface name>.h exists for each
interface it processes. We renamed GestureEvent.h to GestureEventIOS.h
but kept the interface named GestureEvent, so a non-existant file was
being referenced by InFilesCompiler.pm (this was hard to detect since
GestureEvent.h still existed in the SDK due to not having submitted
WebKitAdditions recently).
Since we cannot rename the GestureEvent interface, and since there is
no conflicting GestureEvent in open source, we can just rename
GestureEventIOS.{cpp,h} back to GestureEvent.{cpp,h}.
* dom/ios/TouchEvents.cpp: Updated to include GestureEvent.cpp.
2014-01-18 Alexey Proskuryakov <ap@apple.com>
Memory leak in JSSubtleCrypto::wrapKey
https://bugs.webkit.org/show_bug.cgi?id=127241
Reviewed by Sam Weinig.
* bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::wrapKey):
Delete algorithmPtr and parametersPtr that aren't smart pointers because of lambdas.
2014-01-18 Andy Estes <aestes@apple.com>
Fix the iOS Production build.
* Configurations/WebCore.xcconfig:
2014-01-18 Alberto Garcia <berto@igalia.com>
[CodeGeneratorJS] Sort output of StructureFlags and function parameters
https://bugs.webkit.org/show_bug.cgi?id=127226
Reviewed by Alexey Proskuryakov.
The order of the keys in a hash is undefined and subject to change
between different Perl versions, so we have to sort them to make
sure that the output is always the same.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateParametersCheckExpression):
* bindings/scripts/test/JS/JSTestActiveDOMObject.h:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
* bindings/scripts/test/JS/JSTestEventConstructor.h:
* bindings/scripts/test/JS/JSTestEventTarget.h:
* bindings/scripts/test/JS/JSTestException.h:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
* bindings/scripts/test/JS/JSTestNamedConstructor.h:
* bindings/scripts/test/JS/JSTestNode.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
* bindings/scripts/test/JS/JSTestTypedefs.h:
* bindings/scripts/test/JS/JSattribute.h:
* bindings/scripts/test/JS/JSreadonly.h:
2014-01-18 Anders Carlsson <andersca@apple.com>
Replace a couple of uses of WTF::Function with std::function
https://bugs.webkit.org/show_bug.cgi?id=127218
Reviewed by Andreas Kling.
* WebCore.exp.in:
* page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::shared):
(WebCore::ScrollingThread::createThreadIfNeeded):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
* page/scrolling/ScrollingThread.h:
* page/scrolling/mac/ScrollingThreadMac.mm:
(WebCore::ScrollingThread::initializeRunLoop):
2014-01-18 Anders Carlsson <andersca@apple.com>
Modernize HTML parser code
https://bugs.webkit.org/show_bug.cgi?id=127236
Reviewed by Andreas Kling.
* html/parser/AtomicHTMLToken.h:
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::detach):
(WebCore::HTMLDocumentParser::stopParsing):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::ElementRecord::ElementRecord):
(WebCore::HTMLElementStack::insertAbove):
(WebCore::HTMLElementStack::pushCommon):
* html/parser/HTMLElementStack.h:
(WebCore::HTMLElementStack::ElementRecord::releaseNext):
(WebCore::HTMLElementStack::ElementRecord::setNext):
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
* html/parser/HTMLMetaCharsetParser.h:
* html/parser/HTMLParserScheduler.h:
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
* html/parser/HTMLPreloadScanner.h:
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::HTMLResourcePreloader::takeAndPreload):
(WebCore::HTMLResourcePreloader::preload):
* html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::PreloadRequest):
* html/parser/HTMLScriptRunner.h:
* html/parser/HTMLToken.h:
(WebCore::HTMLToken::beginDOCTYPE):
(WebCore::HTMLToken::releaseDoctypeData):
* html/parser/HTMLTokenizer.h:
* html/parser/HTMLTreeBuilder.h:
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
* html/parser/HTMLViewSourceParser.h:
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditor.h:
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::XSSInfo):
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
(WebCore::TextResourceDecoder::checkForMetaCharset):
* loader/TextResourceDecoder.h:
2014-01-18 Benjamin Poulain <benjamin@webkit.org>
Make ElementData JIT friendly
https://bugs.webkit.org/show_bug.cgi?id=127209
Reviewed by Geoffrey Garen.
The offsets of ElementData's flags were not accessible by the JIT. This patch
refactor ElementData to use explicit flags so that they can be used from
the code generators.
* dom/Element.cpp:
(WebCore::Element::synchronizeAllAttributes):
(WebCore::Element::synchronizeAttribute):
(WebCore::Element::attributeChanged):
(WebCore::Element::removeAttribute):
* dom/ElementData.cpp:
(WebCore::ElementData::destroy):
(WebCore::ElementData::ElementData):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::ShareableElementData::~ShareableElementData):
(WebCore::ElementData::arraySizeAndFlagsFromOther):
* dom/ElementData.h:
(WebCore::ElementData::hasName):
(WebCore::ElementData::isUnique):
(WebCore::ElementData::updateFlag):
(WebCore::ElementData::arraySize):
(WebCore::ElementData::setHasNameAttribute):
(WebCore::ElementData::styleAttributeIsDirty):
(WebCore::ElementData::setStyleAttributeIsDirty):
(WebCore::ElementData::presentationAttributeStyleIsDirty):
(WebCore::ElementData::setPresentationAttributeStyleIsDirty):
(WebCore::ElementData::animatedSVGAttributesAreDirty):
(WebCore::ElementData::setAnimatedSVGAttributesAreDirty):
(WebCore::ElementData::length):
(WebCore::ElementData::attributeBase):
(WebCore::ElementData::presentationAttributeStyle):
* dom/StyledElement.cpp:
(WebCore::StyledElement::synchronizeStyleAttributeInternal):
(WebCore::StyledElement::attributeChanged):
(WebCore::StyledElement::styleAttributeChanged):
(WebCore::StyledElement::inlineStyleChanged):
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
* dom/StyledElement.h:
(WebCore::StyledElement::invalidateStyleAttribute):
(WebCore::StyledElement::presentationAttributeStyle):
* svg/SVGElement.cpp:
(WebCore::SVGElement::synchronizeAnimatedSVGAttribute):
* svg/SVGElement.h:
(WebCore::SVGElement::invalidateSVGAttributes):
2014-01-18 Zalan Bujtas <zalan@apple.com>
Subpixel layout: IntRect::infiniteRect() overflows when subpixel layout is enabled.
https://bugs.webkit.org/show_bug.cgi?id=126899
Reviewed by Tim Horton.
Use LayoutUnits when setting the infinite values on IntRect::infiniteRect() to ensure
it won't overflow later when the IntRect gets converted to LayoutRect.
Covered by existing tests.
* platform/graphics/IntRect.h:
(WebCore::IntRect::infiniteRect):
2014-01-18 Anders Carlsson <andersca@apple.com>
Remove support for the viewsource attribute
https://bugs.webkit.org/show_bug.cgi?id=127232
Reviewed by Andreas Kling.
The 'viewsource' attribute on frames is nonstandard, not used by anyone (the inspector has
its own syntax highlighting) and not audited.
This patch removes parsing of the viewsource attribute and the associated tests. A subsequent
patch will remove the code as well.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute):
2014-01-18 Anders Carlsson <andersca@apple.com>
XMLTreeViewer shouldn't use the view source mode
https://bugs.webkit.org/show_bug.cgi?id=127229
Reviewed by Andreas Kling.
Add the relevant styles from view-source.css to XMLViewer.css.
* xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
* xml/XMLViewer.css:
(body):
(.comment):
(.tag):
(.attribute-name):
(.attribute-value):
* xml/XMLViewer.js:
(createComment):
(createTag):
(createAttribute):
2014-01-18 Andreas Kling <akling@apple.com>
Remove unused "touchDragDropEnabled" setting.
<https://webkit.org/b/127227>
Reviewed by Sam Weinig.
* page/Settings.in:
2014-01-18 Brian Burg <bburg@apple.com>
Web Inspector: Page should use std::unique_ptr for InspectorController
https://bugs.webkit.org/show_bug.cgi?id=127068
Reviewed by Joseph Pecoraro.
Make Page and WorkerGlobalScope keep a std::unique_ptr to InspectorController
and WorkerInspectorController. Store page references and return controller
references where possible.
Convert call sites to use an InspectorController reference.
Convert instantiations of InspectorFrontendClient to use std::unique_ptr.
Convert InspectorOverlay to keep Page references.
* WebCore.exp.in:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::supportsProfiling):
(WebCore::JSDOMWindowBase::supportsRichSourceInfo):
* dom/Node.cpp:
(WebCore::Node::inspect):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::inspectedPageDestroyed):
(WebCore::InspectorController::setInspectorFrontendClient):
(WebCore::InspectorController::hasInspectorFrontendClient):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::inspectedPage):
(WebCore::InspectorController::developerExtrasEnabled):
* inspector/InspectorController.h:
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::canAttachWindow):
(WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight):
(WebCore::InspectorFrontendClientLocal::changeAttachedWindowWidth):
(WebCore::InspectorFrontendClientLocal::openInNewTab):
(WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::InspectorOverlay):
(WebCore::InspectorOverlay::getHighlight):
(WebCore::InspectorOverlay::highlightQuad):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode):
(WebCore::InspectorOverlay::drawQuadHighlight):
(WebCore::InspectorOverlay::overlayPage):
(WebCore::InspectorOverlay::reset):
* inspector/InspectorOverlay.h:
* inspector/InstrumentingAgents.cpp:
(WebCore::instrumentationForPage): remove null checks.
(WebCore::instrumentationForWorkerGlobalScope): remove null checks.
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::connectFrontend):
(WebCore::WorkerInspectorController::disconnectFrontend):
* inspector/WorkerInspectorController.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::showContextMenu):
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::addInspectElementItem):
* page/FrameView.cpp:
(WebCore::FrameView::sendResizeEventIfNeeded):
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::inspectorController):
* page/PageDebuggable.cpp:
(WebCore::PageDebuggable::hasLocalDebugger):
(WebCore::PageDebuggable::parentProcessIdentifier):
(WebCore::PageDebuggable::connect):
(WebCore::PageDebuggable::disconnect):
(WebCore::PageDebuggable::dispatchMessageFromRemoteFrontend):
(WebCore::PageDebuggable::setIndicating):
* platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::syncDisplayState):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::inspectorHighlightRects):
(WebCore::Internals::inspectorHighlightObject):
(WebCore::Internals::emitInspectorDidBeginFrame):
(WebCore::Internals::emitInspectorDidCancelFrame):
(WebCore::Internals::openDummyInspectorFrontend):
(WebCore::Internals::closeDummyInspectorFrontend):
(WebCore::Internals::setInspectorResourcesDataSizeLimits):
(WebCore::Internals::setJavaScriptProfilingEnabled):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
* workers/WorkerGlobalScope.h: remove clearInspector().
(WebCore::WorkerGlobalScope::workerInspectorController):
* workers/WorkerMessagingProxy.cpp:
(WebCore::connectToWorkerGlobalScopeInspectorTask):
(WebCore::disconnectFromWorkerGlobalScopeInspectorTask):
(WebCore::dispatchOnInspectorBackendTask):
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadShutdownFinishTask::performTask):
2014-01-18 Anders Carlsson <andersca@apple.com>
Remove ENABLE_THREADED_HTML_PARSER defines everywhere
https://bugs.webkit.org/show_bug.cgi?id=127225
Reviewed by Andreas Kling.
This concludes the removal of over 8.8 million lines of threaded parser code.
* Configurations/FeatureDefines.xcconfig:
2014-01-18 Anders Carlsson <andersca@apple.com>
Remove the remaining threaded parser code
https://bugs.webkit.org/show_bug.cgi?id=127224
Reviewed by Andreas Kling.
* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):
* html/parser/AtomicHTMLToken.h:
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::detach):
(WebCore::HTMLDocumentParser::stopParsing):
(WebCore::HTMLDocumentParser::prepareToStopParsing):
(WebCore::HTMLDocumentParser::resumeParsingAfterYield):
(WebCore::HTMLDocumentParser::forcePlaintextForTextDocument):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::end):
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::textPosition):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLParserIdioms.cpp:
* html/parser/HTMLParserIdioms.h:
* html/parser/HTMLTokenizer.cpp:
* html/parser/HTMLTokenizer.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):
(WebCore::DocumentLoader::checkLoadComplete):
* page/Settings.in:
2014-01-18 Anders Carlsson <andersca@apple.com>
Remove threaded parser code from the preload scanners
https://bugs.webkit.org/show_bug.cgi?id=127222
Reviewed by Andreas Kling.
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::CSSPreloadScanner):
Use nullptr.
(WebCore::CSSPreloadScanner::scan):
Move scanCommon here and simplify the code.
* html/parser/CSSPreloadScanner.h:
Remove scanCommon.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::tagIdFor):
TagId is a strong enum now, update enum values.
(WebCore::TokenPreloadScanner::initiatorFor):
Ditto.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
Ditto.
(WebCore::TokenPreloadScanner::StartTagScanner::match):
Indent this.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
TagId is a strong enum now, update enum values.
(WebCore::TokenPreloadScanner::StartTagScanner::charset):
Ditto.
(WebCore::TokenPreloadScanner::StartTagScanner::resourceType):
Ditto.
(WebCore::TokenPreloadScanner::StartTagScanner::shouldPreload):
Ditto.
(WebCore::TokenPreloadScanner::scan):
Merge scan and scanCommon.
* html/parser/HTMLPreloadScanner.h:
2014-01-18 Lauro Neto <lauro.neto@openbossa.org>
Remove Nix files from WebCore
https://bugs.webkit.org/show_bug.cgi?id=127176
Reviewed by Anders Carlsson.
* PlatformNix.cmake: Removed.
* css/mediaControlsNix.css: Removed.
* css/mediaControlsNixFullscreen.css: Removed.
* editing/nix/EditorNix.cpp: Removed.
* page/nix/EventHandlerNix.cpp: Removed.
* platform/audio/nix/AudioBusNix.cpp: Removed.
* platform/audio/nix/AudioDestinationNix.cpp: Removed.
* platform/audio/nix/AudioDestinationNix.h: Removed.
* platform/audio/nix/FFTFrameNix.cpp: Removed.
* platform/graphics/nix/IconNix.cpp: Removed.
* platform/graphics/nix/ImageNix.cpp: Removed.
* platform/nix/CursorNix.cpp: Removed.
* platform/nix/DragDataNix.cpp: Removed.
* platform/nix/DragImageNix.cpp: Removed.
* platform/nix/ErrorsNix.cpp: Removed.
* platform/nix/ErrorsNix.h: Removed.
* platform/nix/FileSystemNix.cpp: Removed.
* platform/nix/GamepadsNix.cpp: Removed.
* platform/nix/LanguageNix.cpp: Removed.
* platform/nix/LocalizedStringsNix.cpp: Removed.
* platform/nix/MIMETypeRegistryNix.cpp: Removed.
* platform/nix/NixKeyboardUtilities.cpp: Removed.
* platform/nix/NixKeyboardUtilities.h: Removed.
* platform/nix/PasteboardNix.cpp: Removed.
* platform/nix/PlatformKeyboardEventNix.cpp: Removed.
* platform/nix/PlatformScreenNix.cpp: Removed.
* platform/nix/RenderThemeNix.cpp: Removed.
* platform/nix/RenderThemeNix.h: Removed.
* platform/nix/ScrollbarThemeNix.cpp: Removed.
* platform/nix/ScrollbarThemeNix.h: Removed.
* platform/nix/SharedTimerNix.cpp: Removed.
* platform/nix/SoundNix.cpp: Removed.
* platform/nix/TemporaryLinkStubs.cpp: Removed.
* platform/nix/WidgetNix.cpp: Removed.
* platform/nix/support/MultiChannelPCMData.cpp: Removed.
* platform/text/nix/TextBreakIteratorInternalICUNix.cpp: Removed.
2014-01-18 Anders Carlsson <andersca@apple.com>
Remove DocumentParser::pinToMainThread() and related code
https://bugs.webkit.org/show_bug.cgi?id=127221
Reviewed by Andreas Kling.
* dom/Document.cpp:
(WebCore::Document::setContent):
* dom/DocumentParser.h:
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLParserOptions.h:
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
2014-01-18 Anders Carlsson <andersca@apple.com>
Remove HTMLParserThread
https://bugs.webkit.org/show_bug.cgi?id=127220
Reviewed by Andreas Kling.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLDocumentParser.cpp:
* html/parser/HTMLParserThread.cpp: Removed.
* html/parser/HTMLParserThread.h: Removed.
2014-01-17 Andreas Kling <akling@apple.com>
GC soon after responding to fake memory pressure.
<https://webkit.org/b/127210>
Ask JSC to garbage collect "soon" after handling the fake memory
pressure signal on Mac. This seems to stabilize the post-pressure
numbers on Membuster3 a bit on my laptop. The difference is mostly
made up of JSC::CodeBlock objects.
Reviewed by Geoffrey Garen.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::install):
2014-01-18 Anders Carlsson <andersca@apple.com>
Remove files only used by the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=127219
<rdar://problem/13331277>
Reviewed by Andreas Kling.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/AtomicHTMLToken.h:
* html/parser/BackgroundHTMLInputStream.cpp: Removed.
* html/parser/BackgroundHTMLInputStream.h: Removed.
* html/parser/BackgroundHTMLParser.cpp: Removed.
* html/parser/BackgroundHTMLParser.h: Removed.
* html/parser/CompactHTMLToken.cpp: Removed.
* html/parser/CompactHTMLToken.h: Removed.
* html/parser/HTMLDocumentParser.cpp:
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLIdentifier.cpp: Removed.
* html/parser/HTMLIdentifier.h: Removed.
* html/parser/HTMLParserIdioms.h:
* html/parser/HTMLPreloadScanner.h:
* html/parser/HTMLTreeBuilderSimulator.cpp: Removed.
* html/parser/HTMLTreeBuilderSimulator.h: Removed.
2014-01-17 Andreas Kling <akling@apple.com>
Micro-optimize RenderBoxModelObject::computedCSSPadding().
<https://webkit.org/b/127208>
Make computedCSSPadding() take the Length as a const reference
to avoid creating a temporary copy. This was showing up (0.2%)
on DoYouEvenBench.
Reviewed by Anders Carlsson.
* rendering/RenderBoxModelObject.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::computedCSSPadding):
2014-01-17 Anders Carlsson <andersca@apple.com>
Add a callOnMainThreadAndWait variant in SocketStreamHandle
https://bugs.webkit.org/show_bug.cgi?id=127180
Reviewed by Geoffrey Garen.
WTF::callOnMainThreadAndWait was only used inside SocketStreamHandleCFNet.cpp,
so add an improved version there which is implemented in terms of callOnMainThread and
with the bonus of handling spurious wake-ups correctly (the old version didn't).
* platform/network/cf/SocketStreamHandle.h:
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::callOnMainThreadAndWait):
(WebCore::SocketStreamHandle::pacExecutionCallback):
(WebCore::SocketStreamHandle::readStreamCallback):
(WebCore::SocketStreamHandle::writeStreamCallback):
2014-01-17 Anders Carlsson <andersca@apple.com>
Clean up PageCache classes
https://bugs.webkit.org/show_bug.cgi?id=127202
Reviewed by Andreas Kling.
* WebCore.exp.in:
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::~CachedFrameBase):
(WebCore::CachedFrame::CachedFrame):
(WebCore::CachedFrame::clear):
(WebCore::CachedFrame::setCachedFramePlatformData):
* history/CachedFrame.h:
* history/CachedPage.cpp:
(WebCore::CachedPage::CachedPage):
* history/CachedPage.h:
* history/HistoryItem.h:
(WebCore::HistoryItem::isInPageCache):
* history/PageCache.cpp:
(WebCore::PageCache::add):
(WebCore::PageCache::take):
(WebCore::PageCache::remove):
* history/PageCache.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
* loader/HistoryController.cpp:
(WebCore::HistoryController::invalidateCurrentItemCachedPage):
2014-01-17 Andy Estes <aestes@apple.com>
Work around a preprocessor warning in mediaControlsApple.js
https://bugs.webkit.org/show_bug.cgi?id=127204
Reviewed by Dan Bernstein.
* Modules/mediacontrols/mediaControlsApple.js: Changed '' to String().
2014-01-17 Daniel Bates <dabates@apple.com>
Fix the iOS build after <http://trac.webkit.org/changeset/162184>
(https://bugs.webkit.org/show_bug.cgi?id=126856)
Remove symbol for WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator(unsigned short const*, int).
Add symbol for WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator(WTF::StringView).
* WebCore.exp.in:
2014-01-17 Andreas Kling <akling@apple.com>
Remove unused TOUCH_ADJUSTMENT code.
<https://webkit.org/b/127181>
There are no ports using the ENABLE(TOUCH_ADJUSTMENT) feature
anymore, so nuke it from orbit.
Reviewed by Anders Carlsson.
* page/EventHandler.cpp:
* page/EventHandler.h:
* page/Settings.in:
* page/TouchAdjustment.cpp: Removed.
* page/TouchAdjustment.h: Removed.
* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:
2014-01-17 Beth Dakin <bdakin@apple.com>
Need a way to test the tile cache with margins enabled
https://bugs.webkit.org/show_bug.cgi?id=127194
-and corresponding-
<rdar://problem/15571327>
Reviewed by Tim Horton.
This patch adds a new function to InternalSettings that will allow layout tests to
flip the setting Settings::setBackgroundShouldExtendBeyondPage(). This patch also
makes changing that setting take effect immediately.
To make this setting dynamic, we can no longer generate the Setting function, so
we have to export the symbol manually.
* WebCore.exp.in:
This new function on FrameView will call into RenderLayerBacking to add or remove
margins.
* page/FrameView.cpp:
(WebCore::FrameView::setBackgroundExtendsBeyondPage):
* page/FrameView.h:
Again, were no longer using the boiler-plate generated Setting functions, so now
we can call into FrameView to make the background extend.
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setBackgroundShouldExtendBeyondPage):
* page/Settings.h:
(WebCore::Settings::backgroundShouldExtendBeyondPage):
* page/Settings.in:
Whenever tile margins are set, call setNeedsRevalidateTiles() to make the change
dynamic.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::setTileMargins):
Move the call to TiledBacking::setTileMargins() into a helper function so that the
same code can be used for FrameView.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::setTiledBackingHasMargins):
* rendering/RenderLayerBacking.h:
New InternalSetting.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::setBackgroundShouldExtendBeyondPage):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
2014-01-17 Anders Carlsson <andersca@apple.com>
Remove another unused FrameLoaderClient callback
https://bugs.webkit.org/show_bug.cgi?id=127192
Reviewed by Dan Bernstein.
FrameLoaderClient::dispatchDocumentElementAvailable() was only used by the Chromium port, so remove it.
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::dispatchDocumentElementAvailableIfNeeded):
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
2014-01-17 Anders Carlsson <andersca@apple.com>
Remove FrameLoaderClient::didPerformFirstNavigation()
https://bugs.webkit.org/show_bug.cgi?id=127191
Reviewed by Dan Bernstein.
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/HistoryController.cpp:
(WebCore::HistoryController::updateBackForwardListClippedAtTarget):
2014-01-17 Anders Carlsson <andersca@apple.com>
Move didPerformFirstNavigation() logic to -[WebView _didCommitLoadForFrame:]
https://bugs.webkit.org/show_bug.cgi?id=127189
Reviewed by Dan Bernstein.
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::didPerformFirstNavigation):
Add an empty implementation of didPerformFirstNavigation() to make it easier to remove it from subclasses.
2014-01-17 Eric Carlson <eric.carlson@apple.com>
[iOS] HTMLMediaSession should set AudioSession category
https://bugs.webkit.org/show_bug.cgi?id=127137
Reviewed by Sam Weinig.
* html/HTMLMediaSession.cpp:
(WebCore::initializeAudioSession): New, set the audio session to "media" on iOS.
(WebCore::HTMLMediaSession::HTMLMediaSession): Call initializeAudioSession.
2014-01-17 Daniel Bates <dabates@apple.com>
Fix the iOS build after <http://trac.webkit.org/changeset/162178>
(https://bugs.webkit.org/show_bug.cgi?id=127147)
Declare WebMediaSessionHelper outside of namespace WebCore to resolve error that
"Objective-C declarations may only appear in global scope".
* platform/audio/ios/MediaSessionManagerIOS.mm:
2014-01-17 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] Stacked floats with shape-outside should allow inline content to interact with the non-outermost float
https://bugs.webkit.org/show_bug.cgi?id=122576
Reviewed by David Hyatt.
Make inline content interact with stacked floats with shape-outside
per the spec. This means that content can interact with floats on the
line that are not the outermost float.
This refactors ComputeFloatOffsetAdapter into a superclass and two
subclasses: one adaptor for determining the offset for float layout,
and one for determining the offset for inline layout.
The logic in LineWidth::shrinkAvailableWidthForNewFloatIfNeeded has
been updated to handle stacked floats with shape-outside properly and
has been considerably simplified in the process. It was previously
doing a whole bunch of unnecessary work.
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-stacked-000.html
fast/shapes/shape-outside-floats/shape-outside-floats-stacked-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-stacked-002.html
* rendering/FloatingObjects.cpp:
(WebCore::ComputeFloatOffsetAdapter::~ComputeFloatOffsetAdapter):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter::ComputeFloatOffsetForFloatLayoutAdapter):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter::~ComputeFloatOffsetForFloatLayoutAdapter):
(WebCore::ComputeFloatOffsetForLineLayoutAdapter::ComputeFloatOffsetForLineLayoutAdapter):
(WebCore::ComputeFloatOffsetForLineLayoutAdapter::~ComputeFloatOffsetForLineLayoutAdapter):
(WebCore::FloatingObjects::logicalLeftOffsetForPositioningFloat):
(WebCore::FloatingObjects::logicalRightOffsetForPositioningFloat):
(WebCore::FloatingObjects::logicalLeftOffset):
(WebCore::FloatingObjects::logicalRightOffset):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatingObject::FloatRight>::updateOffsetIfNeeded):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatTypeValue>::heightRemaining):
(WebCore::shapeInfoForFloat):
(WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded):
(WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatRight>::updateOffsetIfNeeded):
* rendering/line/LineWidth.cpp:
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
* rendering/shapes/ShapeOutsideInfo.h:
2014-01-17 Zoltan Horvath <zoltan@webkit.org>
[CSS3] Add rendering support for -webkit-text-align-last
https://bugs.webkit.org/show_bug.cgi?id=99584
Reviewed by David Hyatt.
Add support for the text-align-last CSS3 property, according to the latest specification:
http://dev.w3.org/csswg/css-text-3/#text-align-last-property
Tests: fast/css3-text/css3-text-align-last/text-align-last-with-text-align-justify.html
fast/css3-text/css3-text-align-last/text-align-last-with-text-align-non-justify.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::textAlignmentForLine):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
2014-01-17 Daniel Bates <dabates@apple.com>
Fix the iOS build after <http://trac.webkit.org/changeset/162208>
(https://bugs.webkit.org/show_bug.cgi?id=127139)
__MAC_OS_X_VERSION_MIN_REQUIRED isn't defined when building for iOS. Instead, explicitly
check that we're not PLATFORM(IOS) to avoid defining the enum value CFHTTPCookieStorageAcceptPolicyExclusivelyFromMainDocumentDomain.
* platform/network/cf/CookieJarCFNet.cpp:
2014-01-17 Bear Travis <betravis@adobe.com>
[CSS Shapes] Basic shapes' computed position should be a horizontal and vertical offset
https://bugs.webkit.org/show_bug.cgi?id=127010
Reviewed by Rob Buis.
This patch updates the computed position values used for blending to be a horizontal
left offset and a vertical top offset. When positions include a center, bottom, or
right position offset, it is converted to the appropriate top/left coordinate as
a calc expression. Serialized values still use the original bottom/right directions
when present, and also omit the top/left keywords where possible.
Updated parsing and animation tests.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForCenterCoordinate): Use the simplified BasicShapeCenterCoordinate,
which includes an offset and whether the direction is from the top/left or bottom/right.
(WebCore::valueForBasicShape): Ditto.
(WebCore::convertToCenterCoordinate): Ditto.
(WebCore::basicShapeForValue): Ditto.
(WebCore::floatValueForCenterCoordinate): Ditto.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Remove the RenderBox parameter, which is no longer needed.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeCenterCoordinate::updateComputedLength): Calculate the computed
position offset for this center coordinate.
(WebCore::BasicShapeRectangle::blend): Remove the RenderBox parameter.
(WebCore::DeprecatedBasicShapeCircle::blend): Ditto.
(WebCore::BasicShapeCircle::blend): Ditto.
(WebCore::DeprecatedBasicShapeEllipse::blend): Ditto.
(WebCore::BasicShapeEllipse::blend): Ditto.
(WebCore::BasicShapePolygon::blend): Ditto.
(WebCore::BasicShapeInsetRectangle::blend): Ditto.
(WebCore::BasicShapeInset::blend): Ditto.
* rendering/style/BasicShapes.h:
(WebCore::BasicShapeCenterCoordinate::BasicShapeCenterCoordinate): Simplify
BasicShapeCenterCoordinate to contain an offset and a direction. Also add a
computed length, which is an offset from the top/left direction.
(WebCore::BasicShapeCenterCoordinate::direction):
(WebCore::BasicShapeCenterCoordinate::computedLength):
(WebCore::BasicShapeCenterCoordinate::blend):
2014-01-17 Alexey Proskuryakov <ap@apple.com>
More non-Mac build fix.
* platform/network/cf/CookieJarCFNet.cpp:
2014-01-16 Myles C. Maxfield <mmaxfield@apple.com>
Unprefix text-emphasis CSS properties
https://bugs.webkit.org/show_bug.cgi?id=127160
Reviewed by Sam Weinig.
Add synonym CSS properties. We don't want to delete the old ones because
we've shipped with them included.
Test: fast/css3-text/css3-text-decoration/text-decoration-unprefix.html
* css/CSSPropertyNames.in:
2014-01-17 Alberto Garcia <berto@igalia.com>
[GTK] WebKitGtk/testcopyandpaste fails in debug builds
https://bugs.webkit.org/show_bug.cgi?id=127173
Reviewed by Carlos Garcia Campos.
Remove duplicate "PasteGlobalSelection" entry.
* editing/EditorCommand.cpp:
(WebCore::createCommandMap):
2014-01-14 Andreas Kling <akling@apple.com>
Pack ResourceRequest harder.
<https://webkit.org/b/126982>
Re-arrange the members of ResourceRequest to reduce padding,
shrinking it by 8 bytes.
Reviewed by Anders Carlsson.
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::ResourceRequestBase):
2014-01-17 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Remove workaround for compilers not supporting deleted functions
https://bugs.webkit.org/show_bug.cgi?id=127166
Reviewed by Andreas Kling.
* bindings/js/JSLazyEventListener.h:
* dom/ContainerNode.h:
* dom/Document.h:
* dom/Element.h:
* rendering/InlineFlowBox.h:
* rendering/InlineTextBox.h:
* rendering/RenderButton.h:
* rendering/RenderCombineText.h:
* rendering/RenderElement.h:
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.h:
* rendering/RenderFrame.h:
* rendering/RenderFrameBase.h:
* rendering/RenderFrameSet.h:
* rendering/RenderHTMLCanvas.h:
* rendering/RenderIFrame.h:
* rendering/RenderLineBreak.h:
* rendering/RenderListBox.h:
* rendering/RenderListMarker.h:
* rendering/RenderMedia.h:
* rendering/RenderMenuList.h:
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderTableCell.h:
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.h:
* rendering/RenderText.h:
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.h:
* rendering/RenderVideo.h:
* rendering/RenderWidget.h:
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGRect.h:
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceFilterPrimitive.h:
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourceLinearGradient.h:
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.h:
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceRadialGradient.h:
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGTSpan.h:
* rendering/svg/RenderSVGText.h:
* rendering/svg/RenderSVGTextPath.h:
* rendering/svg/RenderSVGTransformableContainer.h:
* rendering/svg/RenderSVGViewportContainer.h:
* xml/XPathValue.h:
2014-01-17 Zan Dobersek <zdobersek@igalia.com>
[ATK] Modernize the for loops in ATK AX code
https://bugs.webkit.org/show_bug.cgi?id=127120
Reviewed by Mario Sanchez Prada.
Update the for loops to be range-based in ATK accessibility code.
This work is complementary to r161979.
* accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
(webkitAccessibleHypertextGetLink):
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
(webkitAccessibleTableGetColumnHeader):
(webkitAccessibleTableGetRowHeader):
* accessibility/atk/WebKitAccessibleUtil.cpp:
(accessibilityTitle):
(accessibilityDescription):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(getNChildrenForTable):
(getChildForTable):
(getIndexInParentForCellInRow):
2014-01-17 Zan Dobersek <zdobersek@igalia.com>
[Soup] Remove unnecessary using-directives for the std namespace
https://bugs.webkit.org/show_bug.cgi?id=127122
Reviewed by Martin Robinson.
* platform/network/soup/ResourceRequestSoup.cpp: Remove the unnecessary using-directive for the std namespace
as no symbols from that namespace are in use in this implementation file.
* platform/network/soup/ResourceResponseSoup.cpp: Ditto.
2014-01-16 Tim Horton <timothy_horton@apple.com>
On iOS, zooming in with a TileController-backed main frame makes hundreds of tiles
https://bugs.webkit.org/show_bug.cgi?id=126531
<rdar://problem/15745862>
Reviewed by Anders Carlsson.
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::scaledExposedRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::updateTileCoverageMap):
Scale the FrameView-space exposedRect into document space, to match the visibleRect.
Flipping on WKView's clipsToExposedRect now works correctly even in Safari
or MiniBrowser with zooming.
2014-01-15 Sam Weinig <sam@webkit.org>
TextBreakIterator's should support Latin-1 for all iterator types (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=126856
Reviewed by Ryosuke Niwa.
Change all the TextBreakIterator creation functions to take StringViews. Remove a few
now unnecessary up-conversions to UTF-16 in the process.
* dom/CharacterData.cpp:
* editing/TextCheckingHelper.cpp:
* editing/VisibleUnits.cpp:
* platform/graphics/StringTruncator.cpp:
* platform/graphics/mac/ComplexTextController.cpp:
* platform/text/TextBoundaries.cpp:
* platform/text/TextBreakIterator.cpp:
* platform/text/TextBreakIterator.h:
* rendering/RenderText.cpp:
2014-01-16 Anders Carlsson <andersca@apple.com>
Run clang-modernize and let it add a bunch of missing overrides.
Rubber-stamped by Sam Weinig.
* dom/BeforeLoadEvent.h:
* dom/ClassNodeList.h:
* dom/Comment.h:
* dom/CompositionEvent.h:
* dom/DecodedDataDocumentParser.h:
* dom/DeviceMotionEvent.h:
* dom/DeviceOrientationEvent.h:
* dom/DocumentMarker.cpp:
* dom/DocumentType.h:
* dom/EntityReference.h:
* dom/FocusEvent.h:
* dom/HashChangeEvent.h:
* dom/MessageEvent.h:
* dom/MouseEvent.h:
* dom/MouseRelatedEvent.h:
* dom/MutationEvent.h:
* dom/NameNodeList.h:
* dom/Notation.h:
* dom/OverflowEvent.h:
* dom/PendingScript.h:
* dom/PopStateEvent.h:
* dom/ProcessingInstruction.h:
* dom/ScriptElement.h:
* dom/ScriptExecutionContext.cpp:
* dom/ScriptableDocumentParser.h:
* dom/ScriptedAnimationController.h:
* dom/StringCallback.cpp:
* dom/WheelEvent.h:
* html/FTPDirectoryDocument.h:
* html/FileInputType.cpp:
* html/HTMLAppletElement.h:
* html/HTMLBRElement.h:
* html/HTMLBaseElement.h:
* html/HTMLBodyElement.h:
* html/HTMLButtonElement.h:
* html/HTMLDocument.h:
* html/HTMLEmbedElement.h:
* html/HTMLFormControlsCollection.h:
* html/HTMLFrameElement.h:
* html/HTMLFrameSetElement.h:
* html/HTMLHRElement.h:
* html/HTMLIFrameElement.h:
* html/HTMLKeygenElement.cpp:
* html/HTMLKeygenElement.h:
* html/HTMLLinkElement.h:
* html/HTMLMarqueeElement.h:
* html/HTMLObjectElement.h:
* html/HTMLOutputElement.h:
* html/HTMLParamElement.h:
* html/HTMLScriptElement.h:
* html/HTMLStyleElement.h:
* html/HTMLSummaryElement.h:
* html/HTMLTrackElement.h:
* html/HTMLViewSourceDocument.h:
* html/ImageDocument.cpp:
* html/ImageDocument.h:
* html/MediaDocument.cpp:
* html/MediaDocument.h:
* html/MediaKeyEvent.h:
* html/PluginDocument.cpp:
* html/RadioNodeList.h:
* html/TextDocument.h:
* html/canvas/EXTDrawBuffers.h:
* html/canvas/EXTTextureFilterAnisotropic.h:
* html/canvas/OESElementIndexUint.h:
* html/canvas/OESStandardDerivatives.h:
* html/canvas/OESTextureFloat.h:
* html/canvas/OESTextureFloatLinear.h:
* html/canvas/OESTextureHalfFloat.h:
* html/canvas/OESTextureHalfFloatLinear.h:
* html/canvas/OESVertexArrayObject.h:
* html/canvas/WebGLBuffer.h:
* html/canvas/WebGLCompressedTextureATC.h:
* html/canvas/WebGLCompressedTexturePVRTC.h:
* html/canvas/WebGLCompressedTextureS3TC.h:
* html/canvas/WebGLContextEvent.h:
* html/canvas/WebGLContextObject.h:
* html/canvas/WebGLDebugRendererInfo.h:
* html/canvas/WebGLDebugShaders.h:
* html/canvas/WebGLDepthTexture.h:
* html/canvas/WebGLFramebuffer.cpp:
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLLoseContext.h:
* html/canvas/WebGLProgram.h:
* html/canvas/WebGLRenderbuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLShader.h:
* html/canvas/WebGLSharedObject.h:
* html/canvas/WebGLTexture.h:
* html/canvas/WebGLVertexArrayObjectOES.h:
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLViewSourceParser.h:
* html/shadow/DetailsMarkerControl.h:
* html/shadow/MediaControls.h:
* html/shadow/MediaControlsApple.h:
* html/shadow/MeterShadowElement.h:
* html/shadow/ProgressShadowElement.h:
* html/shadow/SliderThumbElement.h:
* html/track/LoadableTextTrack.h:
* html/track/TrackEvent.h:
* svg/SVGAElement.h:
* svg/SVGAnimateColorElement.h:
* svg/SVGAnimateElement.h:
* svg/SVGAnimateMotionElement.h:
* svg/SVGAnimateTransformElement.h:
* svg/SVGAnimationElement.h:
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.h:
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGCursorElement.h:
* svg/SVGDefsElement.h:
* svg/SVGDescElement.h:
* svg/SVGEllipseElement.h:
* svg/SVGFEBlendElement.h:
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFECompositeElement.h:
* svg/SVGFEConvolveMatrixElement.h:
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEDistantLightElement.h:
* svg/SVGFEDropShadowElement.h:
* svg/SVGFEFloodElement.h:
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEImageElement.h:
* svg/SVGFELightElement.h:
* svg/SVGFEMergeElement.h:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMorphologyElement.h:
* svg/SVGFEOffsetElement.h:
* svg/SVGFEPointLightElement.h:
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFESpotLightElement.h:
* svg/SVGFETileElement.h:
* svg/SVGFETurbulenceElement.h:
* svg/SVGFilterElement.h:
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFontData.h:
* svg/SVGForeignObjectElement.h:
* svg/SVGGlyphElement.h:
* svg/SVGGlyphRefElement.h:
* svg/SVGGradientElement.h:
* svg/SVGHKernElement.h:
* svg/SVGImageElement.h:
* svg/SVGImageLoader.h:
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.h:
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.h:
* svg/SVGMissingGlyphElement.h:
* svg/SVGPathBuilder.h:
* svg/SVGPathByteStreamBuilder.h:
* svg/SVGPathByteStreamSource.h:
* svg/SVGPathElement.h:
* svg/SVGPathSegArcAbs.h:
* svg/SVGPathSegArcRel.h:
* svg/SVGPathSegClosePath.h:
* svg/SVGPathSegCurvetoCubicAbs.h:
* svg/SVGPathSegCurvetoCubicRel.h:
* svg/SVGPathSegCurvetoCubicSmoothAbs.h:
* svg/SVGPathSegCurvetoCubicSmoothRel.h:
* svg/SVGPathSegCurvetoQuadraticAbs.h:
* svg/SVGPathSegCurvetoQuadraticRel.h:
* svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
* svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
* svg/SVGPathSegLinetoAbs.h:
* svg/SVGPathSegLinetoHorizontalAbs.h:
* svg/SVGPathSegLinetoHorizontalRel.h:
* svg/SVGPathSegLinetoRel.h:
* svg/SVGPathSegLinetoVerticalAbs.h:
* svg/SVGPathSegLinetoVerticalRel.h:
* svg/SVGPathSegListBuilder.h:
* svg/SVGPathSegListSource.h:
* svg/SVGPathSegMovetoAbs.h:
* svg/SVGPathSegMovetoRel.h:
* svg/SVGPathStringSource.h:
* svg/SVGPathTraversalStateBuilder.h:
* svg/SVGPatternElement.h:
* svg/SVGPolyElement.h:
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.h:
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.h:
* svg/SVGStopElement.h:
* svg/SVGStyleElement.h:
* svg/SVGSwitchElement.h:
* svg/SVGSymbolElement.h:
* svg/SVGTRefElement.h:
* svg/SVGTSpanElement.h:
* svg/SVGTextContentElement.h:
* svg/SVGTextElement.h:
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.h:
* svg/SVGTitleElement.h:
* svg/SVGUseElement.h:
* svg/SVGVKernElement.h:
* svg/SVGViewElement.h:
* svg/SVGZoomEvent.h:
* svg/animation/SVGSMILElement.cpp:
* svg/animation/SVGSMILElement.h:
* svg/graphics/SVGImageChromeClient.h:
* svg/graphics/filters/SVGFEImage.h:
* svg/graphics/filters/SVGFilter.h:
* svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
* svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
* svg/properties/SVGPathSegListPropertyTearOff.h:
2014-01-16 Jer Noble <jer.noble@apple.com>
REGRESSION(r162145): media/video-controls-visible-audio-only.html fails
https://bugs.webkit.org/show_bug.cgi?id=127147
Reviewed by Eric Carlson.
Reset the MediaSessionManager's restrictions to their default values before
each run.
Add a new virtual method "resetRestrictions()" so that each port-specific
MediaSessionManager can reset the restrictions to their default values.
Call this from Internals::resetToConsistentState() so that tests which change
the restrictions don't affect later tests.
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager):
(WebCore::MediaSessionManager::resetRestrictions):
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::~MediaSessionManager):
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::resetRestrictions):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
2014-01-16 Alex Christensen <achristensen@webkit.org>
Compile fix for WinCairo after r162138.
https://bugs.webkit.org/show_bug.cgi?id=127140
Reviewed by Beth Dakin.
* page/FrameView.cpp:
(WebCore::FrameView::extendedBackgroundRect):
Use unscaledDocumentRect for extendedBackgroundRect without accelerated compositing.
2014-01-16 Brady Eidson <beidson@apple.com>
IDB: delete object store support
<rdar://problem/15779641> and https://bugs.webkit.org/show_bug.cgi?id=127123
Reviewed by Alexey Proskuryakov.
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::DeleteObjectStoreOperation::transaction):
2014-01-16 Alexey Proskuryakov <ap@apple.com>
More non-Mac build fix.
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::copyCookiesForURLWithFirstPartyURL):
2014-01-16 Alexey Proskuryakov <ap@apple.com>
Build fix.
* platform/network/cf/CookieJarCFNet.cpp: Remove a spurious semicolon.
2014-01-16 Andy Estes <aestes@apple.com>
Another iOS build fix.
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::m_objcObserver):
2014-01-16 Alexey Proskuryakov <ap@apple.com>
[Mac] [iOS] Add support for CFHTTPCookieStorageAcceptPolicyExclusivelyFromMainDocumentDomain
https://bugs.webkit.org/show_bug.cgi?id=127139
Reviewed by Brady Eidson.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
Pass first party URL down, because reading cookies depends on it when this policy
in in action.
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::copyCookiesForURLWithFirstPartyURL):
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
Use a new CFNetwork API that takes first party URL.
* platform/network/mac/CookieJarMac.mm:
(WebCore::cookiesForDOM):
(WebCore::cookieRequestHeaderFieldValue):
(WebCore::cookiesEnabled):
(WebCore::getRawCookies):
(WebCore::deleteCookie):
Pass first party URL (and null in deleteCookie, as there is none).
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
Removed a call to shouldRelaxThirdPartyCookiePolicy(), which no longer exists
in trunk.
2014-01-16 Andy Estes <aestes@apple.com>
Fix the iOS build after r162150.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
2014-01-16 Dean Jackson <dino@apple.com>
glReadPixels should use UNSIGNED_BYTE on iOS
https://bugs.webkit.org/show_bug.cgi?id=127148
Reviewed by Benjamin Poulain.
We were incorrectly mapping GL_UNSIGNED_INT_8_8_8_8_REV to
GL_RGBA on iOS. It's only used in glReadPixels, so should
be GL_UNSIGNED_BYTE.
This is covered by lots of tests in the Khronos test suite,
that now pass on iOS.
* platform/graphics/ios/GraphicsContext3DIOS.h:
2014-01-16 Anders Carlsson <andersca@apple.com>
Change all uses of FINAL to final now that all our compilers support it
https://bugs.webkit.org/show_bug.cgi?id=127142
Reviewed by Benjamin Poulain.
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/indexeddb/IDBCursorBackendOperations.h:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackendOperations.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/MediaSourceRegistry.h:
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBufferList.h:
* Modules/mediastream/AudioStreamTrack.h:
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamRegistry.h:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/UserMediaRequest.h:
* Modules/mediastream/VideoStreamTrack.h:
* Modules/notifications/Notification.h:
* Modules/speech/SpeechSynthesisUtterance.h:
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioNode.h:
* Modules/websockets/WebSocket.h:
* accessibility/AccessibilityList.h:
* accessibility/AccessibilityListBoxOption.h:
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilitySearchFieldButtons.h:
* accessibility/AccessibilitySlider.h:
* bindings/js/JSCryptoAlgorithmBuilder.h:
* bindings/js/JSCryptoKeySerializationJWK.h:
* bindings/js/JSDOMGlobalObjectTask.cpp:
* bindings/js/JSDOMGlobalObjectTask.h:
* bindings/js/JSLazyEventListener.h:
* bindings/js/ScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.h:
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmAES_KW.h:
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
* crypto/algorithms/CryptoAlgorithmSHA1.h:
* crypto/algorithms/CryptoAlgorithmSHA224.h:
* crypto/algorithms/CryptoAlgorithmSHA256.h:
* crypto/algorithms/CryptoAlgorithmSHA384.h:
* crypto/algorithms/CryptoAlgorithmSHA512.h:
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyDataOctetSequence.h:
* crypto/keys/CryptoKeyDataRSAComponents.h:
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.h:
* crypto/keys/CryptoKeySerializationRaw.h:
* crypto/parameters/CryptoAlgorithmAesCbcParams.h:
* crypto/parameters/CryptoAlgorithmAesKeyGenParams.h:
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
* crypto/parameters/CryptoAlgorithmHmacParams.h:
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
* crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h:
* crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
* crypto/parameters/CryptoAlgorithmRsaSsaParams.h:
* css/CSSCanvasValue.h:
* css/CSSFontSelector.h:
* css/CSSStyleSheet.h:
* dom/Attr.h:
* dom/BeforeUnloadEvent.h:
* dom/CDATASection.h:
* dom/CharacterData.h:
* dom/ChildNodeList.h:
* dom/Clipboard.cpp:
* dom/Comment.h:
* dom/DatasetDOMStringMap.h:
* dom/Document.h:
* dom/DocumentEventQueue.cpp:
* dom/DocumentEventQueue.h:
* dom/DocumentType.h:
* dom/Element.h:
* dom/EntityReference.h:
* dom/EventContext.h:
* dom/EventTarget.h:
* dom/FocusEvent.h:
* dom/LiveNodeList.h:
* dom/MessagePort.h:
* dom/MouseEvent.h:
* dom/Node.h:
* dom/Notation.h:
* dom/ProcessingInstruction.h:
* dom/PseudoElement.h:
* dom/ShadowRoot.h:
* dom/StaticNodeList.h:
* dom/StyledElement.h:
* dom/TemplateContentDocumentFragment.h:
* dom/Text.h:
* dom/WebKitNamedFlow.h:
* editing/ios/EditorIOS.mm:
* editing/mac/EditorMac.mm:
* editing/markup.cpp:
* fileapi/Blob.cpp:
* fileapi/FileReader.h:
* html/ClassList.h:
* html/DOMSettableTokenList.h:
* html/FTPDirectoryDocument.cpp:
* html/FormAssociatedElement.cpp:
* html/FormAssociatedElement.h:
* html/HTMLAllCollection.h:
* html/HTMLAnchorElement.h:
* html/HTMLAppletElement.h:
* html/HTMLAreaElement.h:
* html/HTMLAudioElement.h:
* html/HTMLBDIElement.h:
* html/HTMLBRElement.h:
* html/HTMLBaseElement.h:
* html/HTMLBaseFontElement.h:
* html/HTMLBodyElement.h:
* html/HTMLButtonElement.h:
* html/HTMLCanvasElement.h:
* html/HTMLDListElement.h:
* html/HTMLDataListElement.h:
* html/HTMLDetailsElement.h:
* html/HTMLDirectoryElement.h:
* html/HTMLDocument.h:
* html/HTMLElement.h:
* html/HTMLEmbedElement.h:
* html/HTMLFieldSetElement.h:
* html/HTMLFontElement.h:
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.h:
* html/HTMLFrameElement.h:
* html/HTMLFrameSetElement.h:
* html/HTMLHRElement.h:
* html/HTMLHeadElement.h:
* html/HTMLHeadingElement.h:
* html/HTMLHtmlElement.h:
* html/HTMLIFrameElement.h:
* html/HTMLImageElement.h:
* html/HTMLInputElement.h:
* html/HTMLKeygenElement.cpp:
* html/HTMLKeygenElement.h:
* html/HTMLLIElement.h:
* html/HTMLLabelElement.h:
* html/HTMLLegendElement.h:
* html/HTMLLinkElement.h:
* html/HTMLMapElement.h:
* html/HTMLMarqueeElement.h:
* html/HTMLMenuElement.h:
* html/HTMLMetaElement.h:
* html/HTMLMeterElement.h:
* html/HTMLModElement.h:
* html/HTMLNameCollection.h:
* html/HTMLOListElement.h:
* html/HTMLObjectElement.h:
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.h:
* html/HTMLOptionsCollection.h:
* html/HTMLOutputElement.h:
* html/HTMLParagraphElement.h:
* html/HTMLParamElement.h:
* html/HTMLPlugInElement.h:
* html/HTMLPreElement.h:
* html/HTMLProgressElement.h:
* html/HTMLQuoteElement.h:
* html/HTMLScriptElement.h:
* html/HTMLSelectElement.h:
* html/HTMLSourceElement.h:
* html/HTMLStyleElement.h:
* html/HTMLSummaryElement.h:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableCellElement.h:
* html/HTMLTableColElement.h:
* html/HTMLTableElement.h:
* html/HTMLTableRowElement.h:
* html/HTMLTableRowsCollection.h:
* html/HTMLTableSectionElement.h:
* html/HTMLTemplateElement.h:
* html/HTMLTextAreaElement.h:
* html/HTMLTextFormControlElement.h:
* html/HTMLTitleElement.h:
* html/HTMLTrackElement.h:
* html/HTMLUListElement.h:
* html/HTMLUnknownElement.h:
* html/HTMLVideoElement.h:
* html/HTMLViewSourceDocument.h:
* html/ImageDocument.cpp:
* html/ImageDocument.h:
* html/LabelableElement.h:
* html/LabelsNodeList.h:
* html/MediaController.h:
* html/MediaDocument.cpp:
* html/MediaDocument.h:
* html/MediaFragmentURIParser.h:
* html/PluginDocument.cpp:
* html/PluginDocument.h:
* html/RangeInputType.h:
* html/TextDocument.h:
* html/parser/TextDocumentParser.h:
* html/parser/TextViewSourceParser.h:
* html/shadow/DetailsMarkerControl.h:
* html/shadow/MediaControlElementTypes.h:
* html/shadow/MediaControlElements.h:
* html/shadow/MeterShadowElement.h:
* html/shadow/ProgressShadowElement.h:
* html/shadow/SliderThumbElement.h:
* html/shadow/SpinButtonElement.h:
* html/shadow/TextControlInnerElements.h:
* html/shadow/YouTubeEmbedShadowElement.h:
* html/track/TextTrack.h:
* html/track/TextTrackCue.h:
* html/track/TextTrackCueGeneric.cpp:
* html/track/TextTrackCueGeneric.h:
* html/track/TrackListBase.h:
* html/track/WebVTTElement.h:
* inspector/CommandLineAPIModule.h:
* inspector/InjectedScriptCanvasModule.h:
* inspector/InspectorConsoleAgent.cpp:
* inspector/InspectorController.h:
* inspector/InspectorDebuggerAgent.h:
* inspector/PageConsoleAgent.cpp:
* inspector/PageInjectedScriptHost.h:
* inspector/PageInjectedScriptManager.h:
* inspector/WorkerInspectorController.h:
* loader/SinkDocument.cpp:
* loader/SinkDocument.h:
* loader/appcache/DOMApplicationCache.h:
* loader/cache/CachedCSSStyleSheet.h:
* loader/cache/CachedFont.h:
* loader/cache/CachedRawResource.h:
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedScript.h:
* loader/cache/CachedShader.h:
* loader/cache/CachedTextTrack.h:
* loader/cache/CachedXSLStyleSheet.h:
* loader/icon/IconLoader.h:
* mathml/MathMLSelectElement.h:
* page/DOMTimer.h:
* page/DOMWindow.h:
* page/EventSource.h:
* page/Frame.h:
* page/FrameView.h:
* page/MainFrame.h:
* page/PageDebuggable.h:
* page/PageSerializer.cpp:
* page/Performance.h:
* page/SuspendableTimer.h:
* page/animation/KeyframeAnimation.h:
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.h:
* platform/ClockGeneric.h:
* platform/efl/ScrollbarThemeEfl.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/GradientImage.h:
* platform/graphics/SimpleFontData.h:
* platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/win/PlatformCALayerWin.h:
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaSourceGStreamer.h:
* platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h:
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
* platform/ios/WebSafeGCActivityCallbackIOS.h:
* platform/ios/WebSafeIncrementalSweeperIOS.h:
* platform/mac/PlatformClockCA.h:
* platform/mac/PlatformClockCM.h:
* platform/mac/ScrollAnimatorMac.h:
* platform/mediastream/MediaStreamTrackPrivate.h:
* platform/mediastream/mac/MediaStreamCenterMac.h:
* platform/mock/MockMediaStreamCenter.h:
* platform/mock/RTCDataChannelHandlerMock.h:
* platform/mock/RTCPeerConnectionHandlerMock.h:
* platform/mock/mediasource/MockBox.h:
* platform/mock/mediasource/MockMediaSourcePrivate.h:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
* platform/text/LocaleNone.cpp:
* platform/text/PlatformLocale.cpp:
* rendering/EllipsisBox.h:
* rendering/FilterEffectRenderer.h:
* rendering/InlineElementBox.h:
* rendering/InlineFlowBox.h:
* rendering/InlineTextBox.h:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalWidthReplaced):
(WebCore::RenderBox::computePositionedLogicalHeightReplaced):
* rendering/RenderBox.h:
* rendering/RenderButton.h:
* rendering/RenderCombineText.h:
* rendering/RenderCounter.h:
* rendering/RenderDeprecatedFlexibleBox.h:
* rendering/RenderDetailsMarker.h:
* rendering/RenderElement.h:
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.h:
* rendering/RenderFlexibleBox.h:
* rendering/RenderFlowThread.h:
* rendering/RenderFrame.h:
* rendering/RenderFrameSet.h:
* rendering/RenderFullScreen.cpp:
* rendering/RenderFullScreen.h:
* rendering/RenderGrid.h:
* rendering/RenderHTMLCanvas.h:
* rendering/RenderIFrame.h:
* rendering/RenderImage.h:
* rendering/RenderInline.h:
* rendering/RenderLayer.h:
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderLineBreak.h:
* rendering/RenderListBox.h:
* rendering/RenderListItem.h:
* rendering/RenderListMarker.h:
* rendering/RenderMedia.h:
* rendering/RenderMediaControlElements.h:
* rendering/RenderMenuList.h:
* rendering/RenderMeter.h:
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.h:
* rendering/RenderProgress.h:
* rendering/RenderQuote.h:
* rendering/RenderRegion.h:
* rendering/RenderRegionSet.h:
* rendering/RenderReplaced.h:
* rendering/RenderReplica.h:
* rendering/RenderRuby.h:
* rendering/RenderRubyBase.h:
* rendering/RenderRubyRun.h:
* rendering/RenderRubyText.h:
* rendering/RenderScrollbar.h:
* rendering/RenderScrollbarPart.h:
* rendering/RenderSearchField.h:
* rendering/RenderSlider.h:
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderTable.h:
* rendering/RenderTableCaption.h:
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.h:
* rendering/RenderText.h:
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.h:
* rendering/RenderTextFragment.h:
* rendering/RenderTextTrackCue.h:
* rendering/RenderVideo.h:
* rendering/RenderView.h:
* rendering/RenderWidget.h:
* rendering/RootInlineBox.h:
* rendering/TrailingFloatsRootInlineBox.h:
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLFenced.h:
* rendering/mathml/RenderMathMLFraction.h:
* rendering/mathml/RenderMathMLMath.h:
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRoot.h:
* rendering/mathml/RenderMathMLRow.h:
* rendering/mathml/RenderMathMLScripts.h:
* rendering/mathml/RenderMathMLSpace.h:
* rendering/mathml/RenderMathMLSquareRoot.h:
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.h:
* rendering/style/ContentData.h:
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleCachedImageSet.h:
* rendering/style/StyleGeneratedImage.h:
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGEllipse.h:
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/RenderSVGHiddenContainer.h:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGPath.h:
* rendering/svg/RenderSVGRect.h:
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceFilterPrimitive.h:
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourceLinearGradient.h:
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.h:
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceRadialGradient.h:
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGShape.cpp:
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGTSpan.h:
* rendering/svg/RenderSVGText.h:
* rendering/svg/RenderSVGTextPath.h:
* rendering/svg/RenderSVGTransformableContainer.h:
* rendering/svg/RenderSVGViewportContainer.h:
* rendering/svg/SVGInlineFlowBox.h:
* rendering/svg/SVGInlineTextBox.h:
* rendering/svg/SVGRootInlineBox.h:
* rendering/svg/SVGTextRunRenderingContext.h:
* svg/SVGAElement.h:
* svg/SVGAltGlyphDefElement.h:
* svg/SVGAltGlyphElement.h:
* svg/SVGAltGlyphItemElement.h:
* svg/SVGAnimateColorElement.h:
* svg/SVGAnimateMotionElement.h:
* svg/SVGAnimateTransformElement.h:
* svg/SVGAnimatedAngle.h:
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedColor.h:
* svg/SVGAnimatedEnumeration.h:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedIntegerOptionalInteger.h:
* svg/SVGAnimatedLength.h:
* svg/SVGAnimatedLengthList.h:
* svg/SVGAnimatedNumber.h:
* svg/SVGAnimatedNumberList.h:
* svg/SVGAnimatedNumberOptionalNumber.h:
* svg/SVGAnimatedPath.h:
* svg/SVGAnimatedPointList.h:
* svg/SVGAnimatedPreserveAspectRatio.h:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimatedString.h:
* svg/SVGAnimatedTransformList.h:
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.h:
* svg/SVGCursorElement.h:
* svg/SVGDefsElement.h:
* svg/SVGDescElement.h:
* svg/SVGDocument.h:
* svg/SVGElement.h:
* svg/SVGEllipseElement.h:
* svg/SVGFEBlendElement.h:
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFECompositeElement.h:
* svg/SVGFEConvolveMatrixElement.h:
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEDistantLightElement.h:
* svg/SVGFEDropShadowElement.h:
* svg/SVGFEFloodElement.h:
* svg/SVGFEFuncAElement.h:
* svg/SVGFEFuncBElement.h:
* svg/SVGFEFuncGElement.h:
* svg/SVGFEFuncRElement.h:
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEImageElement.h:
* svg/SVGFEMergeElement.h:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMorphologyElement.h:
* svg/SVGFEOffsetElement.h:
* svg/SVGFEPointLightElement.h:
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFESpotLightElement.h:
* svg/SVGFETileElement.h:
* svg/SVGFETurbulenceElement.h:
* svg/SVGFilterElement.h:
* svg/SVGFontElement.h:
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceFormatElement.h:
* svg/SVGFontFaceNameElement.h:
* svg/SVGFontFaceSrcElement.h:
* svg/SVGFontFaceUriElement.h:
* svg/SVGForeignObjectElement.h:
* svg/SVGGElement.h:
* svg/SVGGlyphElement.h:
* svg/SVGGlyphRefElement.h:
* svg/SVGHKernElement.h:
* svg/SVGImageElement.h:
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.h:
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.h:
* svg/SVGMetadataElement.h:
* svg/SVGMissingGlyphElement.h:
* svg/SVGPathElement.h:
* svg/SVGPathStringBuilder.h:
* svg/SVGPatternElement.h:
* svg/SVGPolygonElement.h:
* svg/SVGPolylineElement.h:
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.h:
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.h:
* svg/SVGSetElement.h:
* svg/SVGStopElement.h:
* svg/SVGStyleElement.h:
* svg/SVGSwitchElement.h:
* svg/SVGSymbolElement.h:
* svg/SVGTRefElement.h:
* svg/SVGTSpanElement.h:
* svg/SVGTextContentElement.h:
* svg/SVGTextElement.h:
* svg/SVGTextPathElement.h:
* svg/SVGTitleElement.h:
* svg/SVGUnknownElement.h:
* svg/SVGUseElement.h:
* svg/SVGVKernElement.h:
* svg/SVGViewElement.h:
* svg/animation/SVGSMILElement.h:
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.h:
* svg/graphics/filters/SVGFilter.h:
* workers/AbstractWorker.h:
* workers/SharedWorker.h:
* workers/Worker.h:
* workers/WorkerEventQueue.cpp:
* workers/WorkerEventQueue.h:
* workers/WorkerGlobalScope.h:
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestUpload.h:
* xml/XPathFunctions.cpp:
* xml/XPathPath.h:
* xml/XPathPredicate.h:
* xml/XSLStyleSheet.h:
2014-01-15 Myles C. Maxfield <mmaxfield@apple.com>
Draw all underline segments in a particular run in the same call
https://bugs.webkit.org/show_bug.cgi?id=127082
Reviewed by Simon Fraser.
Instead of running CGContextFillRect() in a loop, we can instead call CGContextFillRects()
In my tests, this seems to have about 0.5% speedup.
This patch creates some redundant code, but I think that refactoring would make the code
much less readable. I also am hesitant to make drawLineForText call drawLinesForText because
of the overhead of the vector that would be needed.
As there is no behavior change, no new tests are necessary
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLinesForText):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawLinesForText):
* rendering/InlineTextBox.cpp:
(WebCore::drawSkipInkUnderline):
2014-01-16 Brady Eidson <beidson@apple.com>
Use KeyedCoding as a persistent storage mechanism for blobs
https://bugs.webkit.org/show_bug.cgi?id=127012
Reviewed by Anders Carlsson.
Add basic KeyedDecoder interface that is the inverse of KeyedEncoder:
* platform/KeyedCoding.h:
(WebCore::KeyedDecoder::decodeVerifiedEnum):
(WebCore::KeyedDecoder::decodeObject):
(WebCore::KeyedDecoder::decodeObjects):
Use KeyedEncoder/Decoder to encode/decode IDBKeyPath:
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPath::encode):
(WebCore::IDBKeyPath::decode):
* Modules/indexeddb/IDBKeyPath.h:
* WebCore.exp.in:
2014-01-16 Eric Carlson <eric.carlson@apple.com>
Allow MediaSessionManager to restrict inline <video> playback
https://bugs.webkit.org/show_bug.cgi?id=127113
Reviewed by Jer Noble.
Test: media/video-fullscreeen-only-playback.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updatePlayState): Drive-by change to not tell the media session that
playback is starting if the media player is already playing. Enter fullscreen if the media
session says it is required.
* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::clientWillBeginPlayback): Make it const.
(WebCore::HTMLMediaSession::requiresFullscreenForVideoPlayback): New, see if the specified
media element must be played in fullscreen based on the media session settings, document
settings, and attributes.
* html/HTMLMediaSession.h:
* platform/audio/MediaSession.h: pauseSession shouldn't be virtual.
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::sessionWillBeginPlayback): Return immediately if ConcurrentPlaybackNotPermitted
is not set.
(WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback): New.
* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::MediaSessionManageriOS): Set InlineVideoPlaybackRestricted if
running on an iPhone or iPod class device.
* testing/Internals.cpp:
(WebCore::Internals::setMediaSessionRestrictions): Support InlineVideoPlaybackRestricted.
2014-01-16 Roger Fong <roger_fong@apple.com>
Add support for handling WebGL load policies.
https://bugs.webkit.org/show_bug.cgi?id=126935
<rdar://problem/15790448>.
Reviewed by Timothy Horton.
Rename webGLPolicyForSite to webGLPolicyForURL.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::webGLPolicyForURL):
2014-01-16 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Guarding HTMLMediaSession with ENABLE(VIDEO)
https://bugs.webkit.org/show_bug.cgi?id=127126
Reviewed by Eric Carlson.
No new tests needed.
* html/HTMLMediaSession.cpp:
* html/HTMLMediaSession.h:
2014-01-16 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Remove workaround for compilers not supporting explicit override control
https://bugs.webkit.org/show_bug.cgi?id=127111
Reviewed by Anders Carlsson.
Now all compilers support explicit override control, this workaround can be removed.
* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
* Modules/encryptedmedia/CDMPrivateAVFoundation.h:
* Modules/encryptedmedia/CDMPrivateAVFoundation.mm:
* Modules/encryptedmedia/MediaKeyMessageEvent.h:
* Modules/encryptedmedia/MediaKeyNeededEvent.h:
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeys.h:
* Modules/geolocation/Geolocation.h:
* Modules/indexeddb/DOMWindowIndexedDatabase.h:
* Modules/indexeddb/IDBCursorBackendOperations.h:
* Modules/indexeddb/IDBCursorWithValue.h:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
* Modules/indexeddb/IDBOpenDBRequest.h:
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackendOperations.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
* Modules/indieui/UIRequestEvent.h:
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/MediaSourceRegistry.h:
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBufferList.h:
* Modules/mediastream/AudioStreamTrack.h:
* Modules/mediastream/MediaConstraintsImpl.h:
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamRegistry.h:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/MediaStreamTrackEvent.h:
* Modules/mediastream/MediaStreamTrackSourcesRequest.h:
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
* Modules/mediastream/RTCStatsRequestImpl.h:
* Modules/mediastream/RTCStatsResponse.h:
* Modules/mediastream/RTCVoidRequestImpl.h:
* Modules/mediastream/UserMediaRequest.h:
* Modules/mediastream/VideoStreamTrack.h:
* Modules/networkinfo/NetworkInfoConnection.h:
* Modules/notifications/DOMWindowNotifications.h:
* Modules/notifications/Notification.h:
* Modules/notifications/NotificationCenter.h:
* Modules/plugins/QuickTimePluginReplacement.h:
* Modules/speech/SpeechRecognition.h:
* Modules/speech/SpeechRecognitionError.h:
* Modules/speech/SpeechRecognitionEvent.h:
* Modules/speech/SpeechSynthesis.h:
* Modules/speech/SpeechSynthesisUtterance.h:
* Modules/webaudio/AnalyserNode.h:
* Modules/webaudio/AudioBasicInspectorNode.h:
* Modules/webaudio/AudioBasicProcessorNode.h:
* Modules/webaudio/AudioBufferSourceNode.h:
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioDestinationNode.h:
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/AudioNodeInput.h:
* Modules/webaudio/AudioParam.h:
* Modules/webaudio/AudioProcessingEvent.h:
* Modules/webaudio/BiquadDSPKernel.h:
* Modules/webaudio/BiquadProcessor.h:
* Modules/webaudio/ChannelMergerNode.h:
* Modules/webaudio/ChannelSplitterNode.h:
* Modules/webaudio/ConvolverNode.h:
* Modules/webaudio/DefaultAudioDestinationNode.h:
* Modules/webaudio/DelayDSPKernel.h:
* Modules/webaudio/DelayProcessor.h:
* Modules/webaudio/DynamicsCompressorNode.h:
* Modules/webaudio/GainNode.h:
* Modules/webaudio/MediaElementAudioSourceNode.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/OfflineAudioCompletionEvent.h:
* Modules/webaudio/OfflineAudioDestinationNode.h:
* Modules/webaudio/OscillatorNode.h:
* Modules/webaudio/PannerNode.h:
* Modules/webaudio/ScriptProcessorNode.h:
* Modules/webaudio/WaveShaperDSPKernel.h:
* Modules/webaudio/WaveShaperProcessor.h:
* Modules/webdatabase/DatabaseTask.h:
* Modules/webdatabase/SQLTransaction.h:
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/websockets/CloseEvent.h:
* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocketChannel.h:
* Modules/websockets/WebSocketDeflateFramer.cpp:
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
* Modules/websockets/WorkerThreadableWebSocketChannel.h:
* accessibility/AccessibilityARIAGrid.h:
* accessibility/AccessibilityARIAGridCell.h:
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityImageMapLink.h:
* accessibility/AccessibilityList.h:
* accessibility/AccessibilityListBox.h:
* accessibility/AccessibilityListBoxOption.h:
* accessibility/AccessibilityMediaControls.h:
* accessibility/AccessibilityMenuList.h:
* accessibility/AccessibilityMenuListOption.h:
* accessibility/AccessibilityMenuListPopup.h:
* accessibility/AccessibilityMockObject.h:
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityProgressIndicator.h:
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySVGRoot.h:
* accessibility/AccessibilityScrollView.h:
* accessibility/AccessibilityScrollbar.h:
* accessibility/AccessibilitySearchFieldButtons.h:
* accessibility/AccessibilitySlider.h:
* accessibility/AccessibilitySpinButton.h:
* accessibility/AccessibilityTable.h:
* accessibility/AccessibilityTableCell.h:
* accessibility/AccessibilityTableColumn.h:
* accessibility/AccessibilityTableHeaderContainer.h:
* accessibility/AccessibilityTableRow.h:
* bindings/js/JSCryptoAlgorithmBuilder.h:
* bindings/js/JSCryptoKeySerializationJWK.h:
* bindings/js/JSDOMGlobalObjectTask.h:
* bindings/js/JSEventListener.h:
* bindings/js/JSLazyEventListener.h:
* bindings/js/JSMutationCallback.h:
* bindings/js/PageScriptDebugServer.h:
* bindings/js/ScriptDebugServer.h:
* bindings/js/WebCoreTypedArrayController.h:
* bindings/js/WorkerScriptDebugServer.h:
* bridge/c/c_class.h:
* bridge/c/c_instance.h:
* bridge/c/c_runtime.h:
* bridge/runtime_root.h:
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmAES_KW.h:
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
* crypto/algorithms/CryptoAlgorithmSHA1.h:
* crypto/algorithms/CryptoAlgorithmSHA224.h:
* crypto/algorithms/CryptoAlgorithmSHA256.h:
* crypto/algorithms/CryptoAlgorithmSHA384.h:
* crypto/algorithms/CryptoAlgorithmSHA512.h:
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.h:
* crypto/keys/CryptoKeySerializationRaw.h:
* crypto/parameters/CryptoAlgorithmAesCbcParams.h:
* crypto/parameters/CryptoAlgorithmAesKeyGenParams.h:
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
* crypto/parameters/CryptoAlgorithmHmacParams.h:
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
* crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h:
* crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
* crypto/parameters/CryptoAlgorithmRsaSsaParams.h:
* css/CSSBasicShapes.h:
* css/CSSCanvasValue.h:
* css/CSSCharsetRule.h:
* css/CSSComputedStyleDeclaration.h:
* css/CSSCrossfadeValue.h:
* css/CSSFilterImageValue.h:
* css/CSSFontFaceRule.h:
* css/CSSFontSelector.h:
* css/CSSGroupingRule.h:
* css/CSSHostRule.h:
* css/CSSImportRule.h:
* css/CSSMediaRule.h:
* css/CSSPageRule.h:
* css/CSSStyleRule.h:
* css/CSSStyleSheet.h:
* css/CSSSupportsRule.h:
* css/CSSUnknownRule.h:
* css/FontLoader.cpp:
* css/FontLoader.h:
* css/PropertySetCSSStyleDeclaration.h:
* css/WebKitCSSFilterRule.h:
* css/WebKitCSSKeyframeRule.h:
* css/WebKitCSSKeyframesRule.h:
* css/WebKitCSSRegionRule.h:
* css/WebKitCSSViewportRule.h:
* dom/Attr.h:
* dom/BeforeTextInsertedEvent.h:
* dom/BeforeUnloadEvent.h:
* dom/CDATASection.h:
* dom/CharacterData.h:
* dom/ChildNodeList.h:
* dom/Clipboard.cpp:
* dom/ClipboardEvent.h:
* dom/ContainerNode.h:
* dom/DOMImplementation.cpp:
* dom/DatasetDOMStringMap.h:
* dom/DeviceMotionController.h:
* dom/DeviceOrientationController.h:
* dom/Document.h:
* dom/DocumentEventQueue.cpp:
* dom/DocumentEventQueue.h:
* dom/DocumentFragment.h:
* dom/Element.h:
* dom/ErrorEvent.h:
* dom/EventContext.h:
* dom/EventTarget.h:
* dom/FocusEvent.h:
* dom/KeyboardEvent.h:
* dom/LiveNodeList.h:
* dom/MessagePort.h:
* dom/MouseEvent.h:
* dom/MutationRecord.cpp:
* dom/Node.h:
* dom/PageTransitionEvent.h:
* dom/ProcessingInstruction.h:
* dom/ProgressEvent.h:
* dom/PseudoElement.h:
* dom/ScriptExecutionContext.h:
* dom/ShadowRoot.h:
* dom/StaticNodeList.h:
* dom/StyledElement.h:
* dom/TagNodeList.h:
* dom/TemplateContentDocumentFragment.h:
* dom/Text.h:
* dom/TextEvent.h:
* dom/TouchEvent.h:
* dom/TransitionEvent.h:
* dom/UIEvent.h:
* dom/WebKitAnimationEvent.h:
* dom/WebKitNamedFlow.h:
* dom/WebKitTransitionEvent.h:
* editing/AppendNodeCommand.h:
* editing/ApplyBlockElementCommand.h:
* editing/ApplyStyleCommand.h:
* editing/BreakBlockquoteCommand.h:
* editing/CompositeEditCommand.h:
* editing/DeleteButton.h:
* editing/DeleteFromTextNodeCommand.h:
* editing/EditCommand.h:
* editing/InsertIntoTextNodeCommand.h:
* editing/InsertNodeBeforeCommand.h:
* editing/InsertTextCommand.h:
* editing/MergeIdenticalElementsCommand.h:
* editing/RemoveCSSPropertyCommand.h:
* editing/RemoveNodeCommand.h:
* editing/ReplaceNodeWithSpanCommand.h:
* editing/SetNodeAttributeCommand.h:
* editing/SetSelectionCommand.h:
* editing/SpellChecker.h:
* editing/SpellingCorrectionCommand.cpp:
* editing/SpellingCorrectionCommand.h:
* editing/SplitElementCommand.h:
* editing/SplitTextNodeCommand.h:
* editing/WrapContentsInDummySpanCommand.h:
* editing/ios/EditorIOS.mm:
* editing/markup.cpp:
* fileapi/Blob.cpp:
* fileapi/Blob.h:
* fileapi/File.h:
* fileapi/FileReader.h:
* fileapi/FileThreadTask.h:
* history/BackForwardList.h:
* html/BaseButtonInputType.h:
* html/BaseCheckableInputType.h:
* html/BaseChooserOnlyDateAndTimeInputType.h:
* html/BaseClickableWithKeyInputType.h:
* html/BaseDateAndTimeInputType.h:
* html/BaseTextInputType.h:
* html/ButtonInputType.h:
* html/CheckboxInputType.h:
* html/ClassList.h:
* html/ColorInputType.h:
* html/DOMSettableTokenList.h:
* html/DateInputType.h:
* html/DateTimeInputType.h:
* html/DateTimeLocalInputType.h:
* html/EmailInputType.h:
* html/FTPDirectoryDocument.cpp:
* html/FileInputType.h:
* html/FormAssociatedElement.cpp:
* html/FormAssociatedElement.h:
* html/HTMLAnchorElement.h:
* html/HTMLAppletElement.h:
* html/HTMLAreaElement.h:
* html/HTMLBRElement.h:
* html/HTMLBaseElement.h:
* html/HTMLBodyElement.h:
* html/HTMLButtonElement.h:
* html/HTMLCanvasElement.h:
* html/HTMLDetailsElement.cpp:
* html/HTMLDetailsElement.h:
* html/HTMLDivElement.h:
* html/HTMLDocument.h:
* html/HTMLElement.h:
* html/HTMLEmbedElement.h:
* html/HTMLFieldSetElement.h:
* html/HTMLFontElement.h:
* html/HTMLFormControlElement.h:
* html/HTMLFormControlElementWithState.h:
* html/HTMLFormControlsCollection.h:
* html/HTMLFormElement.h:
* html/HTMLFrameElement.h:
* html/HTMLFrameElementBase.h:
* html/HTMLFrameOwnerElement.h:
* html/HTMLFrameSetElement.h:
* html/HTMLHRElement.h:
* html/HTMLHtmlElement.h:
* html/HTMLIFrameElement.h:
* html/HTMLImageElement.h:
* html/HTMLImageLoader.h:
* html/HTMLInputElement.cpp:
* html/HTMLInputElement.h:
* html/HTMLKeygenElement.h:
* html/HTMLLIElement.h:
* html/HTMLLabelElement.h:
* html/HTMLLegendElement.h:
* html/HTMLLinkElement.h:
* html/HTMLMapElement.h:
* html/HTMLMarqueeElement.h:
* html/HTMLMediaElement.h:
* html/HTMLMediaSession.h:
* html/HTMLMediaSource.h:
* html/HTMLMetaElement.h:
* html/HTMLMeterElement.h:
* html/HTMLModElement.h:
* html/HTMLOListElement.h:
* html/HTMLObjectElement.h:
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.h:
* html/HTMLOutputElement.h:
* html/HTMLParagraphElement.h:
* html/HTMLParamElement.h:
* html/HTMLPlugInElement.h:
* html/HTMLPlugInImageElement.h:
* html/HTMLPreElement.h:
* html/HTMLProgressElement.h:
* html/HTMLQuoteElement.h:
* html/HTMLScriptElement.h:
* html/HTMLSelectElement.h:
* html/HTMLSourceElement.h:
* html/HTMLStyleElement.h:
* html/HTMLSummaryElement.h:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableCellElement.h:
* html/HTMLTableColElement.h:
* html/HTMLTableElement.h:
* html/HTMLTablePartElement.h:
* html/HTMLTableRowsCollection.h:
* html/HTMLTableSectionElement.h:
* html/HTMLTemplateElement.h:
* html/HTMLTextAreaElement.h:
* html/HTMLTextFormControlElement.h:
* html/HTMLTitleElement.h:
* html/HTMLTrackElement.h:
* html/HTMLUListElement.h:
* html/HTMLUnknownElement.h:
* html/HTMLVideoElement.h:
* html/HiddenInputType.h:
* html/ImageDocument.cpp:
* html/ImageInputType.h:
* html/LabelableElement.h:
* html/LabelsNodeList.h:
* html/MediaController.h:
* html/MonthInputType.h:
* html/NumberInputType.h:
* html/PasswordInputType.h:
* html/PluginDocument.h:
* html/RadioInputType.h:
* html/RangeInputType.h:
* html/ResetInputType.h:
* html/SearchInputType.h:
* html/SubmitInputType.h:
* html/TelephoneInputType.h:
* html/TextFieldInputType.h:
* html/TextInputType.h:
* html/TimeInputType.h:
* html/URLInputType.h:
* html/WeekInputType.h:
* html/canvas/CanvasRenderingContext2D.cpp:
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/WebGLRenderingContext.h:
* html/parser/HTMLDocumentParser.h:
* html/parser/TextDocumentParser.h:
* html/shadow/DetailsMarkerControl.h:
* html/shadow/InsertionPoint.h:
* html/shadow/MediaControlElementTypes.h:
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.h:
* html/shadow/MediaControlsApple.h:
* html/shadow/MediaControlsGtk.h:
* html/shadow/MeterShadowElement.h:
* html/shadow/ProgressShadowElement.h:
* html/shadow/SliderThumbElement.cpp:
* html/shadow/SliderThumbElement.h:
* html/shadow/SpinButtonElement.h:
* html/shadow/TextControlInnerElements.h:
* html/shadow/YouTubeEmbedShadowElement.h:
* html/track/AudioTrack.h:
* html/track/AudioTrackList.h:
* html/track/InbandGenericTextTrack.h:
* html/track/InbandTextTrack.h:
* html/track/InbandWebVTTTextTrack.h:
* html/track/LoadableTextTrack.h:
* html/track/TextTrack.h:
* html/track/TextTrackCue.h:
* html/track/TextTrackCueGeneric.cpp:
* html/track/TextTrackCueGeneric.h:
* html/track/TextTrackList.h:
* html/track/TrackListBase.h:
* html/track/VideoTrack.h:
* html/track/VideoTrackList.h:
* html/track/WebVTTElement.h:
* inspector/CommandLineAPIModule.h:
* inspector/InjectedScriptCanvasModule.h:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.cpp:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.h:
* inspector/PageConsoleAgent.cpp:
* inspector/PageConsoleAgent.h:
* inspector/PageInjectedScriptHost.h:
* inspector/PageInjectedScriptManager.h:
* inspector/PageRuntimeAgent.h:
* inspector/WorkerConsoleAgent.h:
* inspector/WorkerDebuggerAgent.h:
* inspector/WorkerInspectorController.h:
* inspector/WorkerRuntimeAgent.h:
* loader/DocumentLoader.h:
* loader/EmptyClients.h:
* loader/FrameNetworkingContext.h:
* loader/ImageLoader.h:
* loader/NavigationScheduler.cpp:
* loader/NetscapePlugInStreamLoader.h:
* loader/PingLoader.h:
* loader/ResourceLoader.h:
* loader/SubresourceLoader.h:
* loader/WorkerThreadableLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/appcache/ApplicationCacheGroup.h:
* loader/appcache/DOMApplicationCache.h:
* loader/archive/cf/LegacyWebArchive.h:
* loader/cache/CachedCSSStyleSheet.h:
* loader/cache/CachedFont.h:
* loader/cache/CachedFontClient.h:
* loader/cache/CachedImage.h:
* loader/cache/CachedImageClient.h:
* loader/cache/CachedRawResource.h:
* loader/cache/CachedRawResourceClient.h:
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedSVGDocumentClient.h:
* loader/cache/CachedScript.h:
* loader/cache/CachedShader.h:
* loader/cache/CachedStyleSheetClient.h:
* loader/cache/CachedTextTrack.h:
* loader/cache/CachedXSLStyleSheet.h:
* loader/icon/IconLoader.h:
* mathml/MathMLElement.h:
* mathml/MathMLInlineContainerElement.h:
* mathml/MathMLMathElement.h:
* mathml/MathMLSelectElement.h:
* mathml/MathMLTextElement.h:
* page/CaptionUserPreferencesMediaAF.h:
* page/Chrome.h:
* page/DOMTimer.h:
* page/DOMWindow.h:
* page/DOMWindowExtension.h:
* page/EventSource.h:
* page/Frame.h:
* page/FrameView.h:
* page/PageDebuggable.h:
* page/PageSerializer.cpp:
* page/Performance.h:
* page/SuspendableTimer.h:
* page/animation/ImplicitAnimation.h:
* page/animation/KeyframeAnimation.h:
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingConstraints.h:
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
* page/scrolling/ios/ScrollingCoordinatorIOS.h:
* page/scrolling/ios/ScrollingTreeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* pdf/ios/PDFDocument.cpp:
* pdf/ios/PDFDocument.h:
* platform/CalculationValue.h:
* platform/ClockGeneric.h:
* platform/MainThreadTask.h:
* platform/PODIntervalTree.h:
* platform/PODRedBlackTree.h:
* platform/RefCountedSupplement.h:
* platform/ScrollView.h:
* platform/Scrollbar.h:
* platform/Timer.h:
* platform/animation/TimingFunction.h:
* platform/audio/AudioDSPKernelProcessor.h:
* platform/audio/EqualPowerPanner.h:
* platform/audio/HRTFPanner.h:
* platform/audio/ios/AudioDestinationIOS.h:
* platform/audio/mac/AudioDestinationMac.h:
* platform/audio/nix/AudioDestinationNix.h:
* platform/efl/RenderThemeEfl.h:
* platform/efl/ScrollbarEfl.h:
* platform/efl/ScrollbarThemeEfl.h:
* platform/graphics/AudioTrackPrivate.h:
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/FloatPolygon.h:
* platform/graphics/GeneratedImage.h:
* platform/graphics/GradientImage.h:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/InbandTextTrackPrivate.h:
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/SimpleFontData.h:
* platform/graphics/VideoTrackPrivate.h:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/VideoTrackPrivateAVF.h:
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
* platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
* platform/graphics/ca/win/PlatformCALayerWin.h:
* platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/efl/GraphicsContext3DPrivate.h:
* platform/graphics/egl/GLContextFromCurrentEGL.h:
* platform/graphics/filters/DistantLightSource.h:
* platform/graphics/filters/FEComposite.h:
* platform/graphics/filters/FEDisplacementMap.h:
* platform/graphics/filters/FEFlood.h:
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/filters/PointLightSource.h:
* platform/graphics/filters/SpotLightSource.h:
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/ios/TextTrackRepresentationIOS.h:
* platform/graphics/surfaces/GLTransportSurface.h:
* platform/graphics/surfaces/egl/EGLContext.h:
* platform/graphics/surfaces/egl/EGLSurface.h:
* platform/graphics/surfaces/egl/EGLXSurface.h:
* platform/graphics/surfaces/glx/GLXContext.h:
* platform/graphics/surfaces/glx/GLXSurface.h:
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperImageBuffer.h:
* platform/graphics/texmap/TextureMapperLayer.h:
* platform/graphics/texmap/TextureMapperTiledBackingStore.h:
* platform/graphics/texmap/coordinated/CompositingCoordinator.h:
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h:
* platform/graphics/texmap/coordinated/CoordinatedCustomFilterProgram.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
* platform/graphics/texmap/coordinated/CoordinatedTile.h:
* platform/graphics/texmap/coordinated/UpdateAtlas.cpp:
* platform/gtk/RenderThemeGtk.h:
* platform/ios/DeviceMotionClientIOS.h:
* platform/ios/DeviceOrientationClientIOS.h:
* platform/ios/ScrollAnimatorIOS.h:
* platform/ios/ScrollbarThemeIOS.h:
* platform/ios/WebSafeGCActivityCallbackIOS.h:
* platform/ios/WebSafeIncrementalSweeperIOS.h:
* platform/mac/PlatformClockCA.h:
* platform/mac/PlatformClockCM.h:
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollbarThemeMac.h:
* platform/mediastream/MediaStreamTrackPrivate.h:
* platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
* platform/mediastream/mac/AVAudioCaptureSource.h:
* platform/mediastream/mac/AVMediaCaptureSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.h:
* platform/mediastream/mac/MediaStreamCenterMac.h:
* platform/mock/DeviceMotionClientMock.h:
* platform/mock/DeviceOrientationClientMock.h:
* platform/mock/MockMediaStreamCenter.h:
* platform/mock/RTCDataChannelHandlerMock.h:
* platform/mock/RTCNotifiersMock.h:
* platform/mock/RTCPeerConnectionHandlerMock.h:
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* platform/mock/mediasource/MockMediaSourcePrivate.h:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
* platform/mock/mediasource/MockSourceBufferPrivate.h:
* platform/network/BlobRegistryImpl.h:
* platform/network/BlobResourceHandle.cpp:
* platform/network/BlobResourceHandle.h:
* platform/network/ResourceHandle.h:
* platform/network/SynchronousLoaderClient.h:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
* platform/nix/RenderThemeNix.h:
* platform/nix/ScrollbarThemeNix.h:
* platform/text/LocaleICU.h:
* platform/text/LocaleNone.cpp:
* platform/text/PlatformLocale.cpp:
* platform/text/mac/LocaleMac.h:
* platform/text/win/LocaleWin.h:
* platform/win/PopupMenuWin.h:
* plugins/PluginView.h:
* rendering/AutoTableLayout.h:
* rendering/ClipPathOperation.h:
* rendering/EllipsisBox.h:
* rendering/FilterEffectRenderer.h:
* rendering/FixedTableLayout.h:
* rendering/InlineElementBox.h:
* rendering/InlineFlowBox.h:
* rendering/InlineTextBox.h:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.h:
* rendering/RenderButton.h:
* rendering/RenderCombineText.h:
* rendering/RenderCounter.h:
* rendering/RenderDeprecatedFlexibleBox.h:
* rendering/RenderDetailsMarker.h:
* rendering/RenderElement.h:
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.h:
* rendering/RenderFlexibleBox.h:
* rendering/RenderFlowThread.h:
* rendering/RenderFrame.h:
* rendering/RenderFrameSet.h:
* rendering/RenderFullScreen.h:
* rendering/RenderGrid.h:
* rendering/RenderHTMLCanvas.h:
* rendering/RenderIFrame.h:
* rendering/RenderImage.h:
* rendering/RenderImageResourceStyleImage.h:
* rendering/RenderInline.h:
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.h:
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderLayerModelObject.h:
* rendering/RenderLineBreak.h:
* rendering/RenderListBox.h:
* rendering/RenderListItem.h:
* rendering/RenderListMarker.h:
* rendering/RenderMedia.h:
* rendering/RenderMenuList.h:
* rendering/RenderMeter.h:
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.h:
* rendering/RenderObject.h:
* rendering/RenderProgress.h:
* rendering/RenderQuote.h:
* rendering/RenderRegion.h:
* rendering/RenderRegionSet.h:
* rendering/RenderReplaced.h:
* rendering/RenderReplica.h:
* rendering/RenderRuby.h:
* rendering/RenderRubyRun.h:
* rendering/RenderRubyText.h:
* rendering/RenderScrollbar.h:
* rendering/RenderScrollbarPart.h:
* rendering/RenderScrollbarTheme.h:
* rendering/RenderSearchField.h:
* rendering/RenderSlider.h:
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderTable.h:
* rendering/RenderTableCaption.h:
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.h:
* rendering/RenderText.h:
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.h:
* rendering/RenderTextFragment.h:
* rendering/RenderTextTrackCue.h:
* rendering/RenderThemeIOS.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeSafari.h:
* rendering/RenderThemeWin.h:
* rendering/RenderVideo.h:
* rendering/RenderView.h:
* rendering/RenderWidget.h:
* rendering/RootInlineBox.h:
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLFenced.h:
* rendering/mathml/RenderMathMLFraction.h:
* rendering/mathml/RenderMathMLMath.h:
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRoot.h:
* rendering/mathml/RenderMathMLRow.h:
* rendering/mathml/RenderMathMLScripts.h:
* rendering/mathml/RenderMathMLSpace.h:
* rendering/mathml/RenderMathMLSquareRoot.h:
* rendering/mathml/RenderMathMLUnderOver.h:
* rendering/shapes/BoxShape.h:
* rendering/shapes/PolygonShape.h:
* rendering/shapes/RasterShape.h:
* rendering/shapes/RectangleShape.h:
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.h:
* rendering/style/BasicShapes.h:
* rendering/style/ContentData.h:
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleCachedImageSet.h:
* rendering/style/StyleGeneratedImage.h:
* rendering/style/StylePendingImage.h:
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/RenderSVGHiddenContainer.h:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGModelObject.h:
* rendering/svg/RenderSVGPath.h:
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourceLinearGradient.h:
* rendering/svg/RenderSVGResourceMarker.h:
* rendering/svg/RenderSVGResourceMasker.h:
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGResourceRadialGradient.h:
* rendering/svg/RenderSVGResourceSolidColor.h:
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGShape.cpp:
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGText.h:
* rendering/svg/RenderSVGTextPath.h:
* rendering/svg/RenderSVGViewportContainer.h:
* rendering/svg/SVGInlineFlowBox.h:
* rendering/svg/SVGInlineTextBox.h:
* rendering/svg/SVGRootInlineBox.h:
* rendering/svg/SVGTextRunRenderingContext.h:
* storage/StorageAreaImpl.h:
* storage/StorageNamespaceImpl.h:
* svg/SVGAElement.h:
* svg/SVGAltGlyphDefElement.h:
* svg/SVGAltGlyphElement.h:
* svg/SVGAltGlyphItemElement.h:
* svg/SVGAnimateElement.h:
* svg/SVGAnimateMotionElement.h:
* svg/SVGAnimateTransformElement.h:
* svg/SVGAnimatedAngle.h:
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedColor.h:
* svg/SVGAnimatedEnumeration.h:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedIntegerOptionalInteger.h:
* svg/SVGAnimatedLength.h:
* svg/SVGAnimatedLengthList.h:
* svg/SVGAnimatedNumber.h:
* svg/SVGAnimatedNumberList.h:
* svg/SVGAnimatedNumberOptionalNumber.h:
* svg/SVGAnimatedPath.h:
* svg/SVGAnimatedPointList.h:
* svg/SVGAnimatedPreserveAspectRatio.h:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimatedString.h:
* svg/SVGAnimatedTransformList.h:
* svg/SVGAnimationElement.h:
* svg/SVGCircleElement.h:
* svg/SVGClipPathElement.h:
* svg/SVGComponentTransferFunctionElement.h:
* svg/SVGCursorElement.h:
* svg/SVGDefsElement.h:
* svg/SVGDocument.h:
* svg/SVGElement.h:
* svg/SVGElementInstance.h:
* svg/SVGEllipseElement.h:
* svg/SVGFEBlendElement.h:
* svg/SVGFEColorMatrixElement.h:
* svg/SVGFEComponentTransferElement.h:
* svg/SVGFECompositeElement.h:
* svg/SVGFEConvolveMatrixElement.h:
* svg/SVGFEDiffuseLightingElement.h:
* svg/SVGFEDisplacementMapElement.h:
* svg/SVGFEDropShadowElement.h:
* svg/SVGFEGaussianBlurElement.h:
* svg/SVGFEImageElement.h:
* svg/SVGFELightElement.h:
* svg/SVGFEMergeNodeElement.h:
* svg/SVGFEMorphologyElement.h:
* svg/SVGFEOffsetElement.h:
* svg/SVGFESpecularLightingElement.h:
* svg/SVGFETileElement.h:
* svg/SVGFETurbulenceElement.h:
* svg/SVGFilterElement.h:
* svg/SVGFilterPrimitiveStandardAttributes.h:
* svg/SVGFontElement.h:
* svg/SVGFontFaceElement.h:
* svg/SVGFontFaceFormatElement.h:
* svg/SVGFontFaceNameElement.h:
* svg/SVGFontFaceSrcElement.h:
* svg/SVGFontFaceUriElement.h:
* svg/SVGForeignObjectElement.h:
* svg/SVGGElement.h:
* svg/SVGGlyphElement.h:
* svg/SVGGlyphRefElement.h:
* svg/SVGGradientElement.h:
* svg/SVGGraphicsElement.h:
* svg/SVGHKernElement.h:
* svg/SVGImageElement.h:
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.h:
* svg/SVGMPathElement.h:
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.h:
* svg/SVGMetadataElement.h:
* svg/SVGPathElement.h:
* svg/SVGPathStringBuilder.h:
* svg/SVGPatternElement.h:
* svg/SVGPolyElement.h:
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.h:
* svg/SVGSVGElement.h:
* svg/SVGScriptElement.h:
* svg/SVGSetElement.h:
* svg/SVGStopElement.h:
* svg/SVGStyleElement.h:
* svg/SVGSwitchElement.h:
* svg/SVGSymbolElement.h:
* svg/SVGTRefElement.cpp:
* svg/SVGTRefElement.h:
* svg/SVGTSpanElement.h:
* svg/SVGTextContentElement.h:
* svg/SVGTextElement.h:
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.h:
* svg/SVGTitleElement.h:
* svg/SVGTransformable.h:
* svg/SVGUnknownElement.h:
* svg/SVGUseElement.h:
* svg/SVGVKernElement.h:
* svg/SVGViewElement.h:
* svg/animation/SVGSMILElement.h:
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.h:
* svg/graphics/filters/SVGFilter.h:
* svg/properties/SVGAnimatedListPropertyTearOff.h:
* svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
* svg/properties/SVGListPropertyTearOff.h:
* svg/properties/SVGPathSegListPropertyTearOff.h:
* svg/properties/SVGPropertyTearOff.h:
* testing/InternalSettings.cpp:
* testing/Internals.cpp:
* testing/MockCDM.cpp:
* testing/MockCDM.h:
* workers/AbstractWorker.h:
* workers/DedicatedWorkerGlobalScope.h:
* workers/DedicatedWorkerThread.h:
* workers/SharedWorker.h:
* workers/SharedWorkerGlobalScope.h:
* workers/SharedWorkerThread.h:
* workers/Worker.h:
* workers/WorkerEventQueue.cpp:
* workers/WorkerEventQueue.h:
* workers/WorkerGlobalScope.h:
* workers/WorkerMessagingProxy.h:
* workers/WorkerObjectProxy.h:
* workers/WorkerScriptLoader.h:
* workers/WorkerThread.cpp:
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestUpload.h:
* xml/XPathFunctions.cpp:
* xml/XPathPath.h:
* xml/XPathPredicate.h:
* xml/XSLStyleSheet.h:
2014-01-16 Beth Dakin <bdakin@apple.com>
Speculative Win Cairo build fix.
These need to be inside an ifdef.
* page/FrameView.cpp:
(WebCore::FrameView::hasExtendedBackground):
(WebCore::FrameView::extendedBackgroundRect):
2014-01-07 Myles C. Maxfield <mmaxfield@apple.com>
text-emphasis-position CSS property doesn't recognize 'left' and 'right'
https://bugs.webkit.org/show_bug.cgi?id=126611
Reviewed by Simon Fraser.
This patch allows the text-emphasis-position to accept the "left" and
"right" CSS values. In horizontal writing modes, these values no not
change behavior. In vertical writing modes, however, these values specify
which side to place the emphasis mark. Similarly, in vertical writing
modes, the "above" and "below" values should not change behavior.
However, in order to keep existing behavior, if neither "left" nor "right"
is specified, we should draw as if the appropriate value were
specified ("over" -> "right" and "under" -> "left"). Note that this
will have to be updated when we implement the
"text-orientation: sideways-left" CSS property.
Tests: fast/text/emphasis-horizontal-left-right.html
fast/text/emphasis-vertical-over-right.html
fast/text/emphasis-vertical-over-under.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::renderEmphasisPositionFlagsToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTextEmphasisPosition):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::valueToEmphasisPosition):
(WebCore::ApplyPropertyTextEmphasisPosition::applyValue):
(WebCore::ApplyPropertyTextEmphasisPosition::createHandler):
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
(WebCore::InlineFlowBox::addTextBoxVisualOverflow):
(WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
(WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::emphasisMarkExistsAndIsAbove):
(WebCore::InlineTextBox::paint):
* rendering/InlineTextBox.h:
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
* rendering/style/StyleRareInheritedData.h:
2014-01-16 Chris Fleizach <cfleizach@apple.com>
AX: WebKit is not firing AXMenuOpenedNotification
https://bugs.webkit.org/show_bug.cgi?id=126993
Reviewed by Mario Sanchez Prada.
To monitor for menu open notifications, we need to know which children are added to
the render tree, so the childrenChanged() method has been updated to allow for that.
Once we know the new child, we can then check what kind of role it has.
I also found a flakiness issue with DRT where posting a notification back to DRT
would sometimes cause a new notification to be queued, which would then be lost when the
queue was cleared. This was fixed by copying the notifications to post before iterating them.
Test: platform/mac/accessibility/aria-menu-open-notification.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::checkForOpenMenu):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::notificationPostTimerFired):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::childrenChanged):
* accessibility/AccessibilityNodeObject.h:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::styleWillChange):
2014-01-16 Chris Fleizach <cfleizach@apple.com>
AX: WebKit is not firing AXMenuItemSelectedNotification
https://bugs.webkit.org/show_bug.cgi?id=127081
Reviewed by Mario Sanchez Prada.
Monitor for when a menu item either gains focus() or has aria-selected set,
in which case, we need to fire a specific notification.
Test: platform/mac/accessibility/aria-menu-item-selected-notification.html
* accessibility/AXObjectCache.cpp:
(WebCore::nodeHasRole):
This method was declared in the header, but never implemented, leading to compilation issues.
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
Allow the core class to handle focus changes first, then pass off to platform
(WebCore::AXObjectCache::selectedChildrenChanged):
* accessibility/AXObjectCache.h:
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::platformHandleFocusedUIElementChanged):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
Allow menu items to expose a description attribute.
2014-01-16 Andy Estes <aestes@apple.com>
[iOS] Fix build issues with exported headers
* Configurations/WebCore.xcconfig: Allowed UIKit to link against
WebCore.
* page/ios/WebEventRegion.h: Removed ENABLE(TOUCH_EVENTS), which are
always enabled on iOS.
2014-01-16 Dirk Schulze <krit@webkit.org>
Rename functions in SVGDocumentExtension
https://bugs.webkit.org/show_bug.cgi?id=127046
Reviewed by Sam Weinig.
Change some function names in SVGDocumentExtension
to make them more descriptive.
Simple refactoring. No new tests.
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::registerResource):
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isIdOfPendingResource):
(WebCore::SVGDocumentExtensions::isElementWithPendingResources):
(WebCore::SVGDocumentExtensions::isPendingResource):
(WebCore::SVGDocumentExtensions::clearHasPendingResourcesIfPossible):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::removePendingResource):
(WebCore::SVGDocumentExtensions::removePendingResourceForRemoval):
(WebCore::SVGDocumentExtensions::markPendingResourcesForRemoval):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemovalMap): The name is not great but a bit more descriptive.
* svg/SVGDocumentExtensions.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::buildPendingResourcesIfNeeded):
* svg/SVGMPathElement.cpp:
(WebCore::SVGMPathElement::buildPendingResource):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::buildPendingResource):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::buildPendingResource):
2014-01-15 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK][EFL][NIX] Do not use PrintContext, Frame and DocumentLoader in Errors
https://bugs.webkit.org/show_bug.cgi?id=127047
Reviewed by Martin Robinson.
Using PrintContext, Frame and DocumentLoader in platform is a
layering violation.
Change printing error methods to receive a failing URL instead of
receiving a PrintContext that was used only to get the failing
URL.
* platform/efl/ErrorsEfl.cpp:
(WebCore::printError):
(WebCore::printerNotFoundError):
(WebCore::invalidPageRangeToPrint):
* platform/efl/ErrorsEfl.h:
* platform/gtk/ErrorsGtk.cpp:
(WebCore::printError):
(WebCore::printerNotFoundError):
(WebCore::invalidPageRangeToPrint):
* platform/gtk/ErrorsGtk.h:
* platform/nix/ErrorsNix.cpp:
(WebCore::printError):
(WebCore::printerNotFoundError):
(WebCore::invalidPageRangeToPrint):
* platform/nix/ErrorsNix.h:
2014-01-15 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] Enable accelerated compositing for fixed elements in named flows
https://bugs.webkit.org/show_bug.cgi?id=125144
Reviewed by David Hyatt.
Add support for compositing for fixed positioned element that are collected
inside a named flow. Prior to this patch, the fixed positioned elements were
positioned and sized properly but only in the non-compositing scenario.
Tests: compositing/regions/abs-in-named-flow-from-fixed-in-named-flow.html
compositing/regions/fixed-in-diff-named-flows-zIndex.html
compositing/regions/fixed-in-named-flow-clip-descendant.html
compositing/regions/fixed-in-named-flow-from-abs-in-named-flow.html
compositing/regions/fixed-in-named-flow-from-outflow.html
compositing/regions/fixed-in-named-flow-got-transformed-parent.html
compositing/regions/fixed-in-named-flow-lost-transformed-parent.html
compositing/regions/fixed-in-named-flow-overlap-composited.html
compositing/regions/fixed-in-named-flow-position-changed.html
compositing/regions/fixed-in-named-flow-transformed-parent.html
compositing/regions/fixed-in-named-flow-zIndex.html
compositing/regions/fixed-in-named-flow.html
compositing/regions/fixed-transformed-in-named-flow.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::regionForCompositedLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirementsForNamedFlowFixed):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTreeForNamedFlowFixed):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
* rendering/RenderLayerCompositor.h:
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.h:
2014-01-15 Benjamin Poulain <bpoulain@apple.com>
Fix the iOS build after r162114
Unreviewed.
* WebCore.exp.in: Move the symbol to the right section and add the missing symbols for iOS.
2014-01-15 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Fix painting when the composited region has overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=124887
Reviewed by Alexandru Chiculita.
When the layer of the region is composited, the region receives a GraphicsLayer of its own
so the clipping coordinates (caused by overflow:hidden) must be relative to the
GraphicsLayer coordinates in which the region gets painted.
Also, while the painting is done relative to the location of the region's content box, the
clipping is bound to the padding box of the region.
Tests: compositing/regions/paint-inside-composited-region-overflow-hidden-versus-div.html
compositing/regions/paint-inside-composited-region-overflow-hidden-versus-region.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintFlowThreadIfRegion):
2014-01-15 Benjamin Poulain <bpoulain@apple.com>
Move user agent code to WebCore and unify some code between OS X and iOS
https://bugs.webkit.org/show_bug.cgi?id=127080
Reviewed by Sam Weinig.
Move the duplicated code from WebView and WebPageProxy to two files
in WebCore: UserAgentMac and UserAgentIOS.
* Configurations/WebCore.xcconfig:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* page/ios/UserAgentIOS.mm: Added.
(WebCore::platformSystemRootDirectory):
(WebCore::osMarketingVersion):
(WebCore::standardUserAgentWithApplicationName):
* page/mac/UserAgent.h: Added.
* page/mac/UserAgentMac.mm: Added.
(WebCore::systemMarketingVersionForUserAgentString):
(WebCore::standardUserAgentWithApplicationName):
* platform/ios/WebCoreSystemInterfaceIOS.h:
* platform/ios/WebCoreSystemInterfaceIOS.mm:
2014-01-15 Sam Weinig <sam@webkit.org>
Fix windows build.
* platform/text/TextAllInOne.cpp:
2014-01-15 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Clean up REMOTE_INSPECTOR code in OpenSource after the iOS merge
https://bugs.webkit.org/show_bug.cgi?id=127069
Reviewed by Timothy Hatcher.
* WebCore.exp.in:
2014-01-15 Sam Weinig <sam@webkit.org>
TextBreakIterator's should support Latin-1 for all iterator types (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=126856
Reviewed by Ryosuke Niwa.
Move the contents of TextBreakIteratorICU.cpp to TextBreakIterator.cpp and remove TextBreakIteratorICU.cpp.
* CMakeLists.txt:
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/text/TextBreakIterator.cpp:
* platform/text/TextBreakIteratorICU.cpp: Removed.
2014-01-15 Eric Carlson <eric.carlson@apple.com>
MediaSessionManager shouldn't use std::map
https://bugs.webkit.org/show_bug.cgi?id=127003
Reviewed by Sam Weinig.
No new tests, no functional change.
Use an array instead of std::map.
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager):
(WebCore::MediaSessionManager::addRestriction):
(WebCore::MediaSessionManager::removeRestriction):
(WebCore::MediaSessionManager::restrictions):
(WebCore::MediaSessionManager::sessionWillBeginPlayback):
* platform/audio/MediaSessionManager.h:
2014-01-15 Gavin Barraclough <barraclough@apple.com>
Change Page, FocusController to use ViewState
https://bugs.webkit.org/show_bug.cgi?id=126533
Unreviewed rollout, this caused a regression.
* 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-15 Brent Fulgham <bfulgham@apple.com>
[WebGL] Resizing and entering/exiting full screen draws garbage
https://bugs.webkit.org/show_bug.cgi?id=127077
Reviewed by Dean Jackson.
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs): Simplified logic regarding FBO switching.
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): Make sure a few things
are turned off that might affect blitting data from one FBO to another.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::prepareTexture): Actually turn dithering off!
(WebCore::GraphicsContext3D::reshape): Mark the context as dirty when resizing so that
the GL view is redrawn during resizing events.
2014-01-15 Roger Fong <roger_fong@apple.com>
Remove unnecessary call to webGLContextCreated
https://bugs.webkit.org/show_bug.cgi?id=127000
Reviewed by Brent Fulgham.
Note that the functionality of webGLContextCreated will be handled by webGLPolicyForSite now.
Tests: Unskipping tests skipped in r162002.
* html/HTMLCanvasElement.cpp: Remove webGLContextCreated call.
(WebCore::HTMLCanvasElement::getContext):
* loader/FrameLoaderClient.h:
Have the returned load policy default to WebGLAllow so as to not break clients that don't implement the method.
(WebCore::FrameLoaderClient::webGLPolicyForSite):
webGLPolicyForSite is now assuming the role of webGLContextCreated as well, pass in the whole site URL instead of just the host.
* page/ChromeClient.h: Remove webGLContextCreated method.
(WebCore::ChromeClient::decrementActivePageCount):
2014-01-15 Beth Dakin <bdakin@apple.com>
Repeating background images should continue into margin tiles
https://bugs.webkit.org/show_bug.cgi?id=127021
-and corresponding-
<rdar://problem/15571300>
Reviewed by Simon Fraser.
This patch makes repeating background images continue into margin tiles.
RenderObject::repaintRectangle() now takes an addition bool parameter which
indicates whether or not the repaint rect should be clipped to the layer size.
* WebCore.exp.in:
These new functions on FrameView provide a way for code in the render tree to know
if the TiledBacking has a margin. tiledBacking() is now const. It should have
always been const, and it needs to be const to make these new functions const.
* page/FrameView.cpp:
(WebCore::FrameView::tiledBacking):
(WebCore::FrameView::hasExtendedBackground):
(WebCore::FrameView::extendedBackgroundRect):
* page/FrameView.h:
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::tiledBacking):
If were painting the root background and it is an extended background, we need to
inflate the repaint rect to span the extended background.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::repaintLayerRectsForImage):
To get the phase right on repeated background images on a page with margin tiles,
we need to make sure we factor the size of the margin tiles into the left and top
values that we use when calculating background image geometry.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
setBackingNeedsRepaintInRect() now takes GraphicsLayer::ShouldClipToLayer as a
parameter, just like setBackingNeedsRepaint().
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
setContentsNeedDisplayInRect() also takes a GraphicsLayer::ShouldClipToLayer now,
and it passes that information down to the GraphicsLayer.
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
* rendering/RenderLayerBacking.h:
These two RenderObject functions now take an optional bool parameter which
indicates whether or not the rect should be clipped to the layer size. They use a
bool instead of the GraphicsLayer enum in order to avoid including GraphicsLayer.h
from within RenderObject.h. This seems like a simpler solution than adding a new
stand-alone file for this very simple enum.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintUsingContainer):
(WebCore::RenderObject::repaintRectangle):
* rendering/RenderObject.h:
RenderView::backgroundRect needs to return the extendedBackgroundRect when it had
one.
* rendering/RenderView.cpp:
(WebCore::RenderView::backgroundRect):
2014-01-15 Brian Burg <bburg@apple.com>
Web Inspector: capture probe samples on the backend
https://bugs.webkit.org/show_bug.cgi?id=126668
Reviewed by Joseph Pecoraro.
Test: inspector-protocol/debugger/setProbe-multiple-actions.html
Add the probe breakpoint action type. A probe action
evaluates an expression on the script call frame, and
the result is aggregated on a per-probe basis. Each
evaluated expression result is called a probe sample.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::evaluateBreakpointAction): Teach
the debug server to evaluate a probe.
(WebCore::ScriptDebugServer::dispatchDidSampleProbe): Added.
(WebCore::ScriptDebugServer::handleBreakpointHit): Increment a hit count.
(WebCore::ScriptDebugServer::getActionsForBreakpoint):
* bindings/js/ScriptDebugServer.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::objectGroupForBreakpointAction): Added. Create an object
group for each breakpoint action. Currently only probes make objects.
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::enable): Remove stale comment.
(WebCore::breakpointActionTypeForString): Add new case.
(WebCore::InspectorDebuggerAgent::breakpointActionsFromProtocol): Make
this a member function instead of a static function, so it can increment
the breakpoint action identifier counter.
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl): Propagate the
assigned breakpoint action identifiers.
(WebCore::InspectorDebuggerAgent::setBreakpoint): Propagate the
assigned breakpoint action identifiers.
(WebCore::InspectorDebuggerAgent::removeBreakpoint): Release object
groups for any actions that were associated with the removed breakpoint.
(WebCore::InspectorDebuggerAgent::didSampleProbe): Added.
(WebCore::InspectorDebuggerAgent::clearResolvedBreakpointState): Renamed from clear().
(WebCore::InspectorDebuggerAgent::didClearGlobalObject): Renamed from reset().
* inspector/InspectorDebuggerAgent.h:
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::didClearMainFrameWindowObject):
* inspector/ScriptBreakpoint.h:
(WebCore::ScriptBreakpointAction::ScriptBreakpointAction): Add identifier member.
* inspector/ScriptDebugListener.h:
2014-01-15 Brent Fulgham <bfulgham@apple.com>
[WebGL] Validation function for compressed formats incorrect
https://bugs.webkit.org/show_bug.cgi?id=127023
Reviewed by Dean Jackson.
No new tests. Covered by existing WebGL compressed texture tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateCompressedTexFuncData): Revise to match specifications.
2014-01-15 Andreas Kling <akling@apple.com>
Remove the CSS selector profiler.
<https://webkit.org/b/127039>
The selector profiler was painting a mostly fictional picture of what
selectors we were spending time on. It never really grokked the fast
path selectors, nor did it understand recent additions like the extra
cascading pass or the selector JIT.
Somewhat ironically, this may end up making some selectors run faster
since it removes a number of brances in hot code.
Reviewed by Sam Weinig.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
* css/ElementRuleCollector.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/protocol/CSS.json:
2014-01-15 Frédéric Wang <fred.wang@free.fr>
[SVG] Accept HTML and MathML namespaces as valid requiredExtensions
https://bugs.webkit.org/show_bug.cgi?id=88188
Reviewed by Chris Fleizach.
When HTML and MathML are used as foreign objects of an SVG image, it is
important for Web authors to be able to specify a fallback content for
SVG-only readers or browsers without MathML support. We rely on the
requiredExtensions for that purpose and we use the XHTML/MathML
namespaces as suggested in SVG Tiny 1.2 and implemented in Gecko.
Tests: svg/custom/conditional-processing-1.svg
svg/custom/conditional-processing-2.html
svg/dom/SVGTests.html
* svg/SVGSwitchElement.cpp: Remove an incorrect FIXME comment and replace it with a reference to bug 74749.
(WebCore::SVGSwitchElement::childShouldCreateRenderer):
* svg/SVGTests.cpp: Check if the list of required extensions contains only the XHTML/MathML namespaces.
(WebCore::SVGTests::hasExtension):
(WebCore::SVGTests::isValid):
2014-01-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162066.
http://trac.webkit.org/changeset/162066
https://bugs.webkit.org/show_bug.cgi?id=127056
The added test still fails on some bots (Requested by ap on
#webkit).
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawPattern):
2014-01-15 David Kilzer <ddkilzer@apple.com>
[iOS] Fix intialization order of ResourceResponse constructor
Fixes the following build failure:
WebCore/platform/network/mac/ResourceResponseMac.mm:83:7: error: field 'm_nsResponse' will be initialized after field 'm_initLevel' [-Werror,-Wreorder]
, m_nsResponse(nsResponse)
^
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::ResourceResponse): Reorder member
initializers to match the order that they are defined in the
header.
2014-01-15 Roger Fong <roger_fong@apple.com>
Unreviewed. Comment out part of r162036 which broke WebGL on many ports.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
2014-01-15 Zoltan Horvath <zoltan@webkit.org>
WordMeasurement is a struct, not a class
https://bugs.webkit.org/show_bug.cgi?id=125373
Reviewed by Anders Carlsson.
Change class to struct, because there is no reason for WordMeasurement to be a class.
No new tests, no behavior change.
* rendering/RenderBlockFlow.h:
* rendering/line/BreakingContextInlineHeaders.h:
2014-01-15 Mihai Tica <mitica@adobe.com>
Reapplying:
Background-blend-mode doesn't work for an element with an
SVG image as background and border-style or padding set.
The problem consisted in the drawing path using the default
blending parameter at all times.
https://bugs.webkit.org/show_bug.cgi?id=118894
Reviewed by Dirk Schulze.
Test: css3/compositing/background-blend-mode-data-uri-svg-image.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer): Pass blendMode to Image::drawPattern.
* svg/graphics/SVGImage.h: Add a blendMode parameter to drawPatternForContainer.
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawPattern): Pass blendMode to drawPatternForContainer call.
2014-01-15 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Hit-testing goes through clipped layer in fast/regions/overflow-first-and-last-regions-in-container-hidden.html
https://bugs.webkit.org/show_bug.cgi?id=126886
Reviewed by Mihnea Ovidenie.
Currently, when hit testing a location inside a flow thread we ignore the clipping rectangle of
the region. This leads to false positives when the location is over the clipped out content of a
flow thread. The patch verifies that the location is inside the clipping rectangle of the region before
forwarding the hit test verification to the flow thread layer.
Test: fast/regions/hover-and-js-in-visual-overflow-hidden.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTestFlowThreadIfRegion):
2014-01-15 Antti Koivisto <antti@apple.com>
Suspend resource requests during computedStyle
https://bugs.webkit.org/show_bug.cgi?id=127034
Reviewed by Andreas Kling.
We have some cases where getting computed style leads to crashes in loadPendingImages.
This is probably caused by load callbacks resulting in re-entering WebKit and killing the StyleResolver.
As a speculative fix suspend resource loads (and so callbacks) when getting the computed style.
We do similar suspension during style recalc for the same reason.
* dom/Document.cpp:
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
* loader/ResourceLoadScheduler.h:
(WebCore::ResourceLoadScheduler::Suspender::Suspender):
(WebCore::ResourceLoadScheduler::Suspender::~Suspender):
2014-01-15 László Langó <llango.u-szeged@partner.samsung.com>
DocumentFragment should be constructable.
https://bugs.webkit.org/show_bug.cgi?id=115641
Reviewed by Ryosuke Niwa.
http://www.w3.org/TR/2013/WD-dom-20131107/#interface-documentfragment
This allows us to do `new DocumentFragment` instead of
`document.createDocumentFragment()`.
Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/86855c44a5a127716840fb377281b1c428e5eb2d%5E%21
Test: fast/dom/DocumentFragment/document-fragment-constructor.html
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::create):
* dom/DocumentFragment.h:
* dom/DocumentFragment.idl:
2014-01-14 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix after r161980.
CachedResourcesLoader.h should not belong to the CSS_SHADERS flag since it is used
out of the flag so it causes a compile failure when svg and css shaders are concurrently disabled.
* css/StyleResolver.cpp:
2014-01-14 Andreas Kling <akling@apple.com>
Pack ResourceResponse harder.
<https://webkit.org/b/127005>
Re-arrange the members of ResourceResponse to reduce padding,
shrinking it by 8 bytes.
This nudges CachedResource and CachedImage into smaller size
classes, yielding a ~700 kB progression on Membuster3.
Reviewed by Anders Carlsson.
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
* platform/network/ResourceResponseBase.h:
* platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
2014-01-14 Dirk Schulze <krit@webkit.org>
Remove unnecessary WebkitCSSSVGDocumentValue
https://bugs.webkit.org/show_bug.cgi?id=126997
Reviewed by Andreas Kling.
Removing redundant code path. WebkitCSSSVGDocumentValue
can be expressed by a CSSPrimitiveValue.
No new tests.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.order:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFilter):
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::createFilterOperations):
* css/StyleResolver.h:
* css/WebKitCSSSVGDocumentValue.cpp: Removed.
* css/WebKitCSSSVGDocumentValue.h: Removed.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForFilter):
* css/WebKitCSSFilterValue.cpp:
(WebCore::WebKitCSSFilterValue::customCSSText):
2014-01-14 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Incorrect repaint of fixed element with transformed parent
https://bugs.webkit.org/show_bug.cgi?id=125756
Reviewed by Simon Fraser.
When collecting the layers for fixed positioned elements with named flow
as a containing block, use layers collection at named flow layer level
instead of relying on the positioned elements collection.
With this approach, there are situations with nested named flows laid out in
auto-height regions and thus assuming 2 step layouts, in which is enough to lay
out the inner named flow once instead of twice with a performance gain.
In such situations, the layers lists for the inner named flow are not yet updated
when collectFixedPositionedLayers is called to paint the fixed positioned layers.
Therefore I called updateLayerListsIfNeeded for all named flows layers, via the flow thread controller, before inspecting the named flow layers to avoid hitting the assertions when
accessing the named flows layers lists.
Tests: fast/regions/repaint/fixed-in-named-flow-cb-changed.html
fast/regions/repaint/fixed-in-named-flow-cb-changed2.html
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateNamedFlowsLayerListsIfNeeded):
(WebCore::FlowThreadController::collectFixedPositionedLayers):
* rendering/FlowThreadController.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintFixedLayersInNamedFlows):
2014-01-14 Brent Fulgham <bfulgham@apple.com>
Unreviewed test fix.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateCompressedTexDimensions): Emit
error state expected by Khronos test suite.
2014-01-14 Brady Eidson <beidson@apple.com>
IDB: create object store support
<rdar://problem/15779639> and https://bugs.webkit.org/show_bug.cgi?id=127011
Reviewed by Anders Carlsson.
Split the 3 objects declared in IDBDatabaseMetadata into their own header files:
* Modules/indexeddb/IDBDatabaseMetadata.h:
* Modules/indexeddb/IDBIndexMetadata.h:
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
* Modules/indexeddb/IDBObjectStoreMetadata.h:
(WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
Add cross thread copying for IDBDatabaseMetadata:
* platform/CrossThreadCopier.cpp:
(WebCore::IDBIndexMetadata>::copy):
(WebCore::IDBObjectStoreMetadata>::copy):
* platform/CrossThreadCopier.h:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2014-01-14 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Crash in NavigatorBase::vendor loading apple.com
https://bugs.webkit.org/show_bug.cgi?id=127028
Reviewed by Daniel Bates.
Export function pointers to be filled in with WebKitSystemInterface functions.
* WebCore.exp.in:
2014-01-14 Jeffrey Pfau <jpfau@apple.com>
Build fix after r162034
Rubber-stamped by Benjamin Poulain.
* WebCore.exp.in:
2014-01-14 Timothy Hatcher <timothy@apple.com>
Web Inspector: Resource finish time is sometimes earlier than response received time.
https://bugs.webkit.org/show_bug.cgi?id=127027
Reviewed by Joseph Pecoraro.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didFinishLoading): Use currentTime() and not the
passed in finishTime.
2014-01-14 Anders Carlsson <andersca@apple.com>
Follow up build fix attempt.
* WebCore.exp.in:
2014-01-14 Roger Fong <roger_fong@apple.com>
Add support for handling WebGL load policies.
https://bugs.webkit.org/show_bug.cgi?id=126935
<rdar://problem/15790448>.
Reviewed by Brent Fulgham.
* WebCore.xcodeproj/project.pbxproj: Copy over HTMLCanvasElement.h to the private headers directory.
* html/HTMLCanvasElement.cpp: Show the policy dialog and retrieve policies as necessary.
(WebCore::HTMLCanvasElement::getContext): Make sure that WebGL is allowed on the site.
If it isn't, be sure to notify the frame loader client that
the site is trying to create a WebGL context.
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::webGLPolicyForHost): Used to get the WebGL load policy for a site.
* loader/FrameLoaderTypes.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::webGLContextCreated): Called when a site is creating a WebGL context.
2014-01-14 Anders Carlsson <andersca@apple.com>
Create separate progress tracker clients
https://bugs.webkit.org/show_bug.cgi?id=127025
Reviewed by Sam Weinig.
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::~ProgressTracker):
* loader/ProgressTrackerClient.h:
2014-01-14 Brent Fulgham <bfulgham@apple.com>
[WebGL] WebGLRenderingContext::validateCompressedTexDimensions improperly calculates values
https://bugs.webkit.org/show_bug.cgi?id=126926
Reviewed by Dean Jackson.
Test coverage in fast/canvas/webgl/webgl-compressed-texture-size-limit.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::compressedTexImage2D): Pass target to
validation function.
(WebCore::WebGLRenderingContext::validateCompressedTexDimensions): Revise
calculation to also confirm size is in bounds.
(WebCore::WebGLRenderingContext::validateCompressedTexSubDimensions): Pass
target to validation function.
* html/canvas/WebGLRenderingContext.h: Modify signature.
2014-01-14 Simon Fraser <simon.fraser@apple.com>
On iOS, we never want to make scrollbar layers
https://bugs.webkit.org/show_bug.cgi?id=127024
<rdar://problem/15745768>
Reviewed by Dean Jackson.
On platforms that delegate scrolling, don't try to make layers
for scrollbars.
This fixes a crash in RenderLayerCompositor::updateOverflowControlsLayers()
where m_overflowControlsHostLayer is null.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls):
2014-01-14 Simon Fraser <simon.fraser@apple.com>
Avoid PLATFORM() macros in exported headers.
* platform/ios/WebEvent.h:
2014-01-14 Daniel Bates <dabates@apple.com>
[iOS] Build fix for 32-bit simulator and device
CGFloat is defined to be float, double for 32-bit, and 64-bit devices respectively.
Because WebCore::createCGColorWithDeviceWhite() takes CGFloat arguments we need to
list both the float and double-variants of this symbol in WebCore.exp.in. Currently
we only list the version whose arguments are of type double.
* WebCore.exp.in:
2014-01-14 Simon Fraser <simon.fraser@apple.com>
Clean up exports and headers for iOS.
Don't use ENABLE() macro in an exported header.
* platform/ios/wak/WAKResponder.h:
2014-01-14 Daniel Bates <dabates@apple.com>
[iOS] Move symbol __ZN7WebCore34registerQLPreviewConverterIfNeededEP5NSURLP8NSStringP6NSData to
section USE(QUICK_LOOK)
* WebCore.exp.in:
2014-01-14 Anders Carlsson <andersca@apple.com>
Clean up DNSResolveQueue
https://bugs.webkit.org/show_bug.cgi?id=127007
Reviewed by Geoffrey Garen.
Move the shared() getter out of line and make it use NeverDestroyed.
Add a Timer member variable instead of inheriting from TimerBase.
Use std::atomic<int> for the m_requestsInFlight member variable.
* platform/network/DNSResolveQueue.cpp:
(WebCore::DNSResolveQueue::shared):
(WebCore::DNSResolveQueue::DNSResolveQueue):
(WebCore::DNSResolveQueue::add):
(WebCore::DNSResolveQueue::timerFired):
* platform/network/DNSResolveQueue.h:
(WebCore::DNSResolveQueue::decrementRequestCount):
2014-01-14 Simon Fraser <simon.fraser@apple.com>
Two more exports for iOS.
* WebCore.exp.in:
2014-01-14 Csaba Osztrogonác <ossy@webkit.org>
One more buildfix after r161999.
* Modules/webaudio/MediaStreamAudioSource.h:
2014-01-14 Simon Fraser <simon.fraser@apple.com>
Export __ZN7WebCore11FileChooser16chooseMediaFilesERKN3WTF6VectorINS1_6StringELm0ENS1_15CrashOnOverflowEEERKS3_PNS_4IconE
to fix WK1 iOS linking.
* WebCore.exp.in:
2014-01-14 Simon Fraser <simon.fraser@apple.com>
iOS build fixing: export required by iOS WebKit1.
* WebCore.exp.in:
2014-01-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r162000.
http://trac.webkit.org/changeset/162000
https://bugs.webkit.org/show_bug.cgi?id=127009
API versioning is wrong (Requested by rfong on #webkit).
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
* loader/FrameLoaderClient.h:
* loader/FrameLoaderTypes.h:
* page/ChromeClient.h:
2014-01-14 Bear Travis <betravis@adobe.com>
[CSS Shapes] Move CSSPrimitiveValue <-> LayoutBox Conversion to CSSPrimitiveValueMappings
https://bugs.webkit.org/show_bug.cgi?id=126719
Reviewed by Dirk Schulze.
The standard location for conversions to/from CSSPrimitiveValues is CSSPrimitiveValueMappings.
This patch moves the conversion for LayoutBoxes from BasicShapeFunctions to
CSSPrimitiveValueMappings.h.
Refactoring, no new tests.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForBasicShape):
(WebCore::basicShapeForValue):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator LayoutBox):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
2014-01-09 Roger Fong <roger_fong@apple.com>
Add support for handling WebGL load policies.
https://bugs.webkit.org/show_bug.cgi?id=126935
<rdar://problem/15790448>.
Reviewed by Brent Fulgham.
* WebCore.xcodeproj/project.pbxproj: Copy over HTMLCanvasElement.h to the private headers directory.
* html/HTMLCanvasElement.cpp: Show the policy dialog and retrieve policies as necessary.
(WebCore::HTMLCanvasElement::getContext): Make sure that WebGL is allowed on the site.
If it isn't, be sure to notify the frame loader client that
the site is trying to create a WebGL context.
* loader/FrameLoaderClient.h:
(WebCore::FrameLoaderClient::webGLPolicyForHost): Used to get the WebGL load policy for a site.
* loader/FrameLoaderTypes.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::webGLContextCreated): Called when a site is creating a WebGL context.
2014-01-14 Anders Carlsson <andersca@apple.com>
Get rid of ThreadRestrictionVerifier
https://bugs.webkit.org/show_bug.cgi?id=127004
Reviewed by Sam Weinig.
Remove now unneeded calls.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::defaultIcon):
(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::getOrCreateIconRecord):
(WebCore::IconDatabase::readFromDatabase):
2014-01-14 Daniel Bates <dabates@apple.com>
[iOS] Directly allocate NSMutableDictionary in QLPreviewConverterDictionary() and QLContentDictionary()
https://bugs.webkit.org/show_bug.cgi?id=126999
<rdar://problem/15810305>
Reviewed by Joseph Pecoraro.
Fixes an issue where we may crash when subsequently accessing WebCore::QLPreviewConverterDictionary()
or WebCore::QLContentDictionary(). Currently neither of these functions retain'ed the NSMutable dictionary
returned by [NSMutableDictionary dictionary]. Instead, we should allocate and initialize NSMutableDictionary
directly to ensure that the dictionary is retained.
* platform/network/ios/QuickLook.mm:
(QLPreviewConverterDictionary):
(QLContentDictionary):
2014-01-14 Brent Fulgham <bfulgham@apple.com>
[WebGL] Invalid range checking in WebGLRenderingContext::validateTexFuncLevel
https://bugs.webkit.org/show_bug.cgi?id=126925
Reviewed by Dean Jackson.
Added fast/canvas/webgl/webgl-compressed-texture-size-limit.html.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncLevel): Avoid off-by-one error
2014-01-14 Mark Rowe <mrowe@apple.com>
WebCore icon database appears to leak sudden termination assertions
<https://webkit.org/b/126971> / <rdar://problem/15808797>
Introduce an RAII wrapper around disableSuddenTermination / enableSuddenTermination
and adopt it in IconDatabase to address the incorrect management of sudden termination.
IconDatabase now owns up to two SuddenTerminationDisabler objects. One ensures that
sudden termination is disabled while we're waiting on the sync timer to fire. The second
ensures that sudden termination is disabled while we're waiting on the sync thread to
process any pending work.
Reviewed by Alexey Proskuryakov.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::IconDatabase):
(WebCore::IconDatabase::wakeSyncThread): Disable sudden termination until the sync thread
has finished this unit of work.
(WebCore::IconDatabase::scheduleOrDeferSyncTimer): Disable sudden termination until the
sync timer has fired.
(WebCore::IconDatabase::syncTimerFired): Clear the member variable to reenable sudden termination.
(WebCore::IconDatabase::syncThreadMainLoop): Taken ownership of the SuddenTerminationDisabler
instance when we start processing a unit of work. Discard the object when our work is complete.
* loader/icon/IconDatabase.h:
* platform/SuddenTermination.h:
(WebCore::SuddenTerminationDisabler::SuddenTerminationDisabler): Disable sudden termination when created.
(WebCore::SuddenTerminationDisabler::~SuddenTerminationDisabler): Enable it when destroyed.
2014-01-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: For Remote Inspection link WebProcess's to their parent UIProcess
https://bugs.webkit.org/show_bug.cgi?id=126995
Reviewed by Timothy Hatcher.
* inspector/InspectorClient.h:
(WebCore::InspectorClient::parentProcessIdentifier):
Client method intended for WebKit2 so a WebProcess can link to its UIProcess.
* page/PageDebuggable.h:
* page/PageDebuggable.cpp:
(WebCore::PageDebuggable::parentProcessIdentifier):
Provide parent process identifier if there is one.
2014-01-14 Tim Horton <timothy_horton@apple.com>
iOS WebKit2 build fixes, part 2
* WebCore.exp.in:
Export some more symbols.
2014-01-14 Brian J. Burg <burg@cs.washington.edu>
Add ENABLE(WEB_REPLAY) feature flag to the build system
https://bugs.webkit.org/show_bug.cgi?id=126949
Reviewed by Joseph Pecoraro.
* Configurations/FeatureDefines.xcconfig:
2014-01-10 Jer Noble <jer.noble@apple.com>
Crash in WebCore::MediaSourcePrivateAVFObjC::hasAudio const + 13
https://bugs.webkit.org/show_bug.cgi?id=126768
Reviewed by Eric Carlson.
Null-check m_mediaSourcePrivate before calling.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::hasVideo):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::hasAudio):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
2014-01-14 Piotr Grad <p.grad@samsung.com>
[GStreamer] Playback rate is not set when pipeline is not ready.
https://bugs.webkit.org/show_bug.cgi?id=126692
Reviewed by Philippe Normand.
No new tests. Covered by existing tests.
Added new method updatePlaybackRate which is called when playback rate change is possible.
Added m_lastPlaybackRate in order to retrieve last correct playback rate and notify upper
layers about that setting playback rate failed.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2014-01-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161978.
http://trac.webkit.org/changeset/161978
https://bugs.webkit.org/show_bug.cgi?id=126992
Test case causes crash on some hardware (Requested by bfulgham
on #webkit).
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncLevel):
2014-01-14 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161964 and r161965.
http://trac.webkit.org/changeset/161964
http://trac.webkit.org/changeset/161965
https://bugs.webkit.org/show_bug.cgi?id=126988
Tests do not pass on the bots because of slight color
differences. The tests should be redone with squared results
and blending that leads to stable colors. (Requested by krit_
on #webkit).
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawPattern):
2014-01-14 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Shape images are now <image> types, not just URIs
https://bugs.webkit.org/show_bug.cgi?id=125224
Reviewed by Andreas Kling.
Added support for image-set valued shapes. Added an optional ResourceLoaderOptions
parameter to CSSImageSetValue::cachedImageSet() to enable CORS-enabled fetch of
image-set images. This change is based on a similar patch for ordinary shape image values:
https://bugs.webkit.org/show_bug.cgi?id=123114.
Tests: fast/shapes/shape-inside/shape-inside-image-set.html
fast/shapes/shape-outside-floats/shape-outside-image-set.html
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::cachedImageSet):
* css/CSSImageSetValue.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShapeProperty):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyShape::applyValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage):
(WebCore::StyleResolver::loadPendingShapeImage):
* css/StyleResolver.h:
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
2014-01-13 Chris Fleizach <cfleizach@apple.com>
AX: Modernize AccessibilityChildrenVector loops
https://bugs.webkit.org/show_bug.cgi?id=126915
Reviewed by Anders Carlsson.
Change appropriate for loops to use the new style.
Use auto where appropriate.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedImageMapUIElement):
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addRowDescendant):
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::rowIndexRange):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedRows):
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
(WebCore::AccessibilityARIAGridRow::parentTable):
(WebCore::AccessibilityARIAGridRow::headerObject):
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::addChildren):
(WebCore::AccessibilityListBox::setSelectedChildren):
(WebCore::AccessibilityListBox::selectedChildren):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::didUpdateActiveOption):
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::addChildren):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::insertChild):
(WebCore::AccessibilityNodeObject::selectedRadioButton):
(WebCore::AccessibilityNodeObject::selectedTabItem):
(WebCore::AccessibilityNodeObject::ariaLabeledByText):
* accessibility/AccessibilityObject.cpp:
(WebCore::appendChildrenToArray):
(WebCore::AccessibilityObject::clearChildren):
(WebCore::AccessibilityObject::ariaTreeRows):
(WebCore::AccessibilityObject::ariaTreeItemContent):
(WebCore::AccessibilityObject::ariaTreeItemDisclosedRows):
(WebCore::AccessibilityObject::elementAccessibilityHitTest):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
(WebCore::AccessibilityRenderObject::ariaFlowToElements):
(WebCore::AccessibilityRenderObject::isTabItemSelected):
(WebCore::AccessibilityRenderObject::setSelectedRows):
(WebCore::AccessibilityRenderObject::ariaOwnsElements):
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
(WebCore::AccessibilityRenderObject::updateAttachmentViewParents):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::ariaSelectedRows):
(WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):
(WebCore::AccessibilityRenderObject::tabChildren):
(WebCore::AccessibilityRenderObject::mathRadicandObject):
(WebCore::AccessibilityRenderObject::mathRootIndexObject):
(WebCore::AccessibilityRenderObject::mathNumeratorObject):
(WebCore::AccessibilityRenderObject::mathDenominatorObject):
(WebCore::AccessibilityRenderObject::mathUnderObject):
(WebCore::AccessibilityRenderObject::mathOverObject):
(WebCore::AccessibilityRenderObject::mathBaseObject):
(WebCore::AccessibilityRenderObject::mathSubscriptObject):
(WebCore::AccessibilityRenderObject::mathSuperscriptObject):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::columnHeaders):
(WebCore::AccessibilityTable::rowHeaders):
(WebCore::AccessibilityTable::visibleRows):
(WebCore::AccessibilityTable::cells):
(WebCore::AccessibilityTable::cellForColumnAndRow):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObject):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::addChildren):
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::headerObject):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
(-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
(-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(convertMathPairsToNSArray):
(-[WebAccessibilityObjectWrapperBase accessibilityTitle]):
(-[WebAccessibilityObjectWrapperBase accessibilityDescription]):
(-[WebAccessibilityObjectWrapperBase accessibilityHelpText]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(convertToNSArray):
(convertStringsToNSArray):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
2014-01-14 Brent Fulgham <bfulgham@apple.com>
[WebGL] Invalid range checking in WebGLRenderingContext::validateTexFuncLevel
https://bugs.webkit.org/show_bug.cgi?id=126925
Reviewed by Dean Jackson.
Added fast/canvas/webgl/webgl-compressed-texture-size-limit.html.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncLevel): Avoid off-by-one error
2014-01-14 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] SoupNetworkSession::setAcceptLanguages should receive a const reference
https://bugs.webkit.org/show_bug.cgi?id=126966
Reviewed by Gustavo Noronha Silva.
We don't really need to modify the Vector just to ignore the C
locale.
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::buildAcceptLanguages): Rework it to not modify the
passed vector to ignore the C locale when it's present.
(WebCore::SoupNetworkSession::setAcceptLanguages): Use const Vector<String>&.
* platform/network/soup/SoupNetworkSession.h:
2014-01-14 Piotr Grad <p.grad@samsung.com>
HTMLMediaElement::potentiallyPlaying can be more simple.
https://bugs.webkit.org/show_bug.cgi?id=111
Reviewed by Eric Carlson.
Tests: No new tests, just refactorings.
Expression is simplified because the first 'if' statement depends on the same condition
as pausedToBuffer value.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2014-01-14 Andreas Kling <akling@apple.com>
Remove deprecated DeferrableOneShotTimer constructor.
<https://webkit.org/b/126984>
Remove the deprecated constructor for callback functions that take
the timer by pointer instead of by reference.
This shrinks DeferrableOneShotTimer by 8 bytes.
Reviewed by Anders Carlsson.
* platform/Timer.h:
(WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):
2014-01-14 Dirk Schulze <krit@webkit.org>
Make CachedSVGDocument independent of CSS Filters
https://bugs.webkit.org/show_bug.cgi?id=126133
Reviewed by Antti Koivisto.
Clean-up the pendingSVGDocuments code in StyleResolver.
CachedSVGDocumentReference is responsible for requesting the
SVG document instead of WebKitCSSSVGDocumentValue.
CachedSVGDocumentReference can be used by other SVG resource like
clip-path and mask now so that these may load external resources
as well.
WebKitCSSSVGDocumentValue does not provide any further value
and will be removed in the next patch.
Refactoring, no new test cases.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::createFilterOperations):
* css/StyleResolver.h: Replace Map with a Set.
(WebCore::StyleResolver::State::pendingSVGDocuments): Use the Set from now on.
* loader/cache/CachedSVGDocumentReference.cpp:
(WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
(WebCore::CachedSVGDocumentReference::load):
* loader/cache/CachedSVGDocumentReference.h: Is responsible for
requesting the SVG document.
(WebCore::CachedSVGDocumentReference::create):
(WebCore::CachedSVGDocumentReference::loadRequested):
* platform/graphics/filters/FilterOperation.cpp:
(WebCore::ReferenceFilterOperation::createCachedSVGDocumentReference):
* platform/graphics/filters/FilterOperation.h:
2014-01-14 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] AXChildrenChanged notification handling is a performance black hole
https://bugs.webkit.org/show_bug.cgi?id=126970
Reviewed by Gustavo Noronha Silva.
Remove code that is causing a huge performance problem when
loading big pages, just to be able to emit the children-changed:add
signal at the exact time a child is added.
This removal does not imply that the signal won't be ever emitted,
just that it will be emitted a bit later (when the new child is
asynchronously added to the tree), which should be good enough
anyway for Accessible Technologies, without impacting perfformance
in such a negative way.
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification): Removed
extremely expensive referring loop when AXChildrenChanged is received.
2014-01-14 Mihai Tica <mitica@adobe.com>
[CSS Background Blending] Background layer with -webkit-cross-fade doesn't blend
when having -webkit-background-blending applied. Turns out the problem was
the blending parameter not being passed to WebCore::CrossfadeGeneratedImage::draw
https://bugs.webkit.org/show_bug.cgi?id=126887
Reviewed by Dirk Schulze.
Test: css3/compositing/background-blend-mode-crossfade-image.html
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw): set blendMode on context.
2014-01-14 Mihai Tica <mitica@adobe.com>
Background-blend-mode doesn't work for an element with an
SVG image as background and border-style or padding set.
The problem consisted in the drawing path using the default
blending parameter at all times.
https://bugs.webkit.org/show_bug.cgi?id=118894
Reviewed by Dirk Schulze.
Test: css3/compositing/background-blend-mode-data-uri-svg-image.html
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawPatternForContainer): Pass blendMode to Image::drawPattern.
* svg/graphics/SVGImage.h: Add a blendMode parameter to drawPatternForContainer.
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::drawPattern): Pass blendMode to drawPatternForContainer call.
2014-01-14 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Remove accidentally added PLATFORM(QT) from Source/WebCore/editing/EditorCommand.cpp after r161638
https://bugs.webkit.org/show_bug.cgi?id=126980
Reviewed by Andreas Kling.
* editing/EditorCommand.cpp:
(WebCore::createCommandMap):
2014-01-14 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] The list of fixed positioned layers in named flows should be sorted by z-index
https://bugs.webkit.org/show_bug.cgi?id=126978
Reviewed by Antti Koivisto.
Return the list of fixed positioned layers sorted by z-index from
FlowThreadController::collectFixedPositionedLayers instead of manually sort it
every time we need it (RenderLayer::paintFixedLayersInNamedFlows, RenderLayer::hitTestFixedLayersInNamedFlows).
Refactoring covered by existing regions tests.
* rendering/FlowThreadController.cpp:
(WebCore::compareZIndex):
(WebCore::FlowThreadController::collectFixedPositionedLayers):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintFixedLayersInNamedFlows):
(WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
2014-01-14 Andreas Kling <akling@apple.com>
Pack ResourceLoaderOptions harder.
<https://webkit.org/b/126972>
Make all ResourceLoaderOptions members bitfields to reduce padding,
shrinking it from 28 to 4 bytes.
Reviewed by Antti Koivisto.
* loader/ResourceLoaderOptions.h:
2014-01-14 Andreas Kling <akling@apple.com>
Pack ResourceError harder.
<https://webkit.org/b/126969>
Re-arrange the members of ResourceError to reduce padding,
shrinking it by 8 bytes.
Reviewed by Antti Koivisto.
* platform/network/ResourceErrorBase.h:
(WebCore::ResourceErrorBase::ResourceErrorBase):
2014-01-14 Andreas Kling <akling@apple.com>
Pack RenderLayer harder.
<https://webkit.org/b/126967>
Re-arrange the members of ScrollableArea a bit so that RenderLayer
can combine its bitfields with the ones in ScrollableArea.
This makes RenderLayer fit into a snugger size class, saving 32 bytes
per layer.
296 kB progression on Membuster3.
Reviewed by Antti Koivisto.
* platform/ScrollableArea.cpp:
* platform/ScrollableArea.h:
Put bitfield members at the end of ScrollableArea so inheriting
classes can synergize with the padding.
* rendering/RenderLayer.h:
Make m_blendMode a bitfield to avoid bloating the class.
2014-01-13 Tim Horton <timothy_horton@apple.com>
iOS WebCore build fixes
Add WebKit and WebKit2 as allowable clients of WebCore.
* Configurations/WebCore.xcconfig:
2014-01-13 Tim Horton <timothy_horton@apple.com>
iOS WebKit2 build fixes, part 1
* WebCore.xcodeproj/project.pbxproj:
Move some headers to 'private', from 'project'.
2014-01-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161907.
http://trac.webkit.org/changeset/161907
https://bugs.webkit.org/show_bug.cgi?id=126963
fast/canvas/webgl/webgl-compressed-texture-size-limit.html
fails on many bots (Requested by ap on #webkit).
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncLevel):
2014-01-13 David Kilzer <ddkilzer@apple.com>
Fix typedef of DragDataRef from id back to id<NSDraggingInfo>
<http://webkit.org/b/126958>
<rdar://problem/14814649>
Reviewed by Mark Rowe.
* WebCore.exp.in: Export different symbols based on
__has_feature(objc_protocol_qualifier_mangling) since clang
mangles the type differently with that change.
* platform/DragData.h:
* platform/mac/DragDataMac.mm:
(WebCore::DragData::DragData):
- Revert r154493 by switching back to id<NSDraggingInfo>.
2014-01-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161939.
http://trac.webkit.org/changeset/161939
https://bugs.webkit.org/show_bug.cgi?id=126956
didn't work with mac, of course (Requested by thorton on
#webkit).
* WebCore.xcodeproj/project.pbxproj:
2014-01-13 Tim Horton <timothy_horton@apple.com>
iOS WebKit2 build fixes
* WebCore.xcodeproj/project.pbxproj:
Make some headers private instead of project for WK2's use.
2014-01-13 Simon Fraser <simon.fraser@apple.com>
Make NetworkStateNotifier.h a private header, needed by iOS.
* WebCore.xcodeproj/project.pbxproj:
2014-01-13 Simon Fraser <simon.fraser@apple.com>
More work towards getting iOS WK1 building.
Some more Private headers for iOS.
* WebCore.xcodeproj/project.pbxproj:
2014-01-13 Myles C. Maxfield <mmaxfield@apple.com>
Highlighting password field then making a Sticky Note via Safari Services exposes password
https://bugs.webkit.org/show_bug.cgi?id=126946
Reviewed by Enrica Casucci.
Using the Services menu has a slightly different codepath than Editor::copy() does. This
patch duplicates the canCopy() check that Editor::copy() does.
Testing is not possible because the Services menu is not accessible to our tests.
* editing/mac/EditorMac.mm:
(WebCore::Editor::stringSelectionForPasteboard):
(WebCore::Editor::stringSelectionForPasteboardWithImageAltText):
(WebCore::Editor::dataSelectionForPasteboard):
2014-01-13 Brent Fulgham <bfulgham@apple.com>
[WebGL] Crash due to forceLostContext
https://bugs.webkit.org/show_bug.cgi?id=126947
Reviewed by Dean Jackson.
Covered by webgl/conformance/textures/origin-clean-conformance.html.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::isContextLost): Make const.
(WebCore::WebGLRenderingContext::platformLayer): Don't attempt to use
a lost context.
* html/canvas/WebGLRenderingContext.h: isContextLost should be const.
2014-01-13 Martin Robinson <mrobinson@igalia.com>
[GTK][CMake] WebCorePlatform build can sometimes fail due to missing generated headers
https://bugs.webkit.org/show_bug.cgi?id=126911
Reviewed by Daniel Bates.
* PlatformGTK.cmake: Add an explicit dependency from WebCorePlatform to WebCore.
2014-01-13 Benjamin Poulain <benjamin@webkit.org>
Use the Selector Code Generator for resolving style
https://bugs.webkit.org/show_bug.cgi?id=126199
Reviewed by Ryosuke Niwa.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
* css/RuleSet.h:
2014-01-13 Benjamin Poulain <benjamin@webkit.org>
Update the SelectorQuery code using compiled selector after r161196
https://bugs.webkit.org/show_bug.cgi?id=126860
Reviewed by Andreas Kling.
Update tree traversal code to the current traversal functions.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::executeCompiledSelectorCheckerWithContext):
2014-01-13 Simon Fraser <simon.fraser@apple.com>
Various iOS WebKit1 build fixes.
* WebCore.xcodeproj/project.pbxproj: iOS WebKit1 needs various
headers to be Private.
2014-01-13 Andreas Kling <akling@apple.com>
Map RootInlineBox to containing region via bit+hashmap.
<https://webkit.org/b/126917>
The vas majority of RootInlineBox objects don't have a containing
RenderRegion, so let's store that in a bit+hashmap configuration
instead of having a dedicated pointer member for it.
148 kB progression on Membuster3.
Reviewed by Antti Koivisto.
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
Added m_hasContainingRegion bit.
(WebCore::containingRegionMap):
Global map between RootInlineBox and RenderRegion.
(WebCore::RootInlineBox::~RootInlineBox):
Remove self from aforementioned global map if needed.
(WebCore::RootInlineBox::paint):
Tweak a condition to avoid double hash lookup.
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::clearContainingRegion):
(WebCore::RootInlineBox::setContainingRegion):
Store the containing region in a bit+hashmap.
2014-01-13 Brent Fulgham <bfulgham@apple.com>
[WebGL] Invalid range checking in WebGLRenderingContext::validateTexFuncLevel
https://bugs.webkit.org/show_bug.cgi?id=126925
Reviewed by Dean Jackson.
Added fast/canvas/webgl/webgl-compressed-texture-size-limit.html.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncLevel): Avoid off-by-one error
2014-01-13 Daniel Bates <dabates@apple.com>
Add uint8_t specialization for WebCore::writeLittleEndian()
https://bugs.webkit.org/show_bug.cgi?id=126924
Reviewed by Darin Adler.
Specialize WebCore::writeLittleEndian() for datatype uint8_t so as to avoid
a compiler warning when right shifting a uint8_t by 8 because the result of
such a computation is undefined.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::writeLittleEndian<uint8_t>): Added.
2014-01-13 Daniel Bates <dabates@apple.com>
r161638 broke the Windows build
https://bugs.webkit.org/show_bug.cgi?id=126916
* DerivedSources.make:
2014-01-13 Eric Carlson <eric.carlson@apple.com>
Allow MediaSessionManager to restrict media playback
https://bugs.webkit.org/show_bug.cgi?id=126780
Reviewed by Jer Noble.
Test: media/video-concurrent-playback.html
* WebCore.exp.in: Export functions needed by Internals.
Add HTMLMediaSession.
* WebCore.xcodeproj/project.pbxproj:
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Add a media session object to manage HTMLMediaElement restrictions.
* html/HTMLMediaSession.cpp: Added.
* html/HTMLMediaSession.h: Added.
Move media restriction management to a MediaSession.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Use the media session to manage restrictions.
(WebCore::HTMLMediaElement::parseAttribute): Ditto.
(WebCore::HTMLMediaElement::insertedInto): Ditto.
(WebCore::HTMLMediaElement::parseAttribute): Ditto.
(WebCore::HTMLMediaElement::loadInternal): Ditto.
(WebCore::HTMLMediaElement::loadResource): Ditto.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
(WebCore::HTMLMediaElement::autoplay): Ditto.
(WebCore::HTMLMediaElement::play): Ditto.
(WebCore::HTMLMediaElement::pause): Ditto
(WebCore::HTMLMediaElement::pauseInternal): Ditto
(WebCore::HTMLMediaElement::suspend): Ditto
(WebCore::HTMLMediaElement::resume): Ditto.
(WebCore::HTMLMediaElement::updatePlayState): Tell media session playback is about to start.
(WebCore::HTMLMediaElement::deliverNotification): Ditto.
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted): Ditto.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Ditto.
(WebCore::HTMLMediaElement::pausePlayback): New, allows the media session to pause playback.
* html/HTMLMediaElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitEnterFullscreen): Use the media session to manage restrictions.
* platform/audio/MediaSession.cpp:
(WebCore::MediaSession::beginInterruption): Add logging.
(WebCore::MediaSession::endInterruption): Ditto.
(WebCore::MediaSession::pauseSession): New, allows the session manager to pause playback.
* platform/audio/MediaSession.h:
Add per-media type restrictions.
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager): Initialize restrictions.
(WebCore::MediaSessionManager::addRestriction): New.
(WebCore::MediaSessionManager::removeRestriction): New.
(WebCore::MediaSessionManager::restrictions): New.
(WebCore::MediaSessionManager::sessionWillBeginPlayback): New. If only one session if the same
type is allowed to play, pause all others.
* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.h: Added.
* platform/audio/ios/MediaSessionManagerIOS.mm: Added.
(WebCore::MediaSessionManager::sharedManager):
(WebCore::m_objcObserver):
(-[WebAVAudioSessionHelper initWithCallback:]):
(-[WebAVAudioSessionHelper dealloc]):
(-[WebAVAudioSessionHelper interruption:]):
* platform/audio/mac/AudioDestinationMac.h: Add pausePlayback.
Allow tests to set media session restrictions.
* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:
2014-01-13 Alexey Proskuryakov <ap@apple.com>
Fix the build more.
* xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):
2014-01-13 Alexey Proskuryakov <ap@apple.com>
Fix the build.
* xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):
2014-01-13 Simon Fraser <simon.fraser@apple.com>
Fix copy of SystemMemory.h in iOS WebKit build.
Move SystemMemory.h from platform/SystemMemory.h to platform/ios/SystemMemory.h.
Add it to the project file.
Make it a Private header.
Add PLATFORM(IOS) #idfefs around its contents.
* WebCore.xcodeproj/project.pbxproj:
* platform/ios/SystemMemory.h: Renamed from Source/WebCore/platform/SystemMemory.h.
2014-01-13 Youenn Fablet <youennf@gmail.com>
Dispatch a progress event before dispatching abort, error or timeout event
https://bugs.webkit.org/show_bug.cgi?id=126575
Reviewed by Alexey Proskuryakov.
Added sending of progress event after readystatechange event (switching to DONE state) in case of abort, error or timeout.
Fixed assertions in XMLHttpRequestProgressEventThrottle and XMLHttpRequestUpload.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::dispatchErrorEvents): added sending of progress event before the specific error event
* xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent): fixed assertion
* xml/XMLHttpRequestUpload.cpp:
(WebCore::XMLHttpRequestUpload::dispatchProgressEvent): fixed assertion
2014-01-13 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Add SoupNetworkSession class to wrap a SoupSession
https://bugs.webkit.org/show_bug.cgi?id=126813
Reviewed by Gustavo Noronha Silva.
Add SoupNetworkSession class that wraps a SoupSession and move all
the code related to the SoupSession from ResourceHandle to
SoupNetworkSession, including the static methods to get the
default session and create testing and private sessions.
* GNUmakefile.list.am: Add new files to compilation.
* PlatformEfl.cmake: Ditto.
* PlatformGTK.cmake: Ditto.
* platform/network/NetworkStorageSession.h: Use SoupNetworkSession
instead of SoupSession.
* platform/network/ResourceHandle.h:
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::cookieJarForSession): Use SoupNetworkSession to get the
SoupSession.
* platform/network/soup/DNSSoup.cpp:
(WebCore::DNSResolveQueue::platformResolve): Ditto.
* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession): Use
SoupNetworkSession instead of SoupSession.
(WebCore::NetworkStorageSession::~NetworkStorageSession):
(WebCore::NetworkStorageSession::defaultStorageSession): Create a
NetworkStorageSession with a NULL SoupNetworkSession which means
that the default SoupNetworkSession will be used.
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
Call SoupNetworkSession::createPrivateBrowsingSession() to create
the private session.
(WebCore::NetworkStorageSession::switchToNewTestingSession): Call
SoupNetworkSession::createTestingSession() to create the testing
session.
(WebCore::NetworkStorageSession::soupNetworkSession): Return the
SoupNetworkSession or the default one.
(WebCore::NetworkStorageSession::setSoupNetworkSession): Set a new
SoupNetworkSession.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::sessionFromContext): Use SoupNetworkSession to get the
SoupSession.
(WebCore::ResourceHandleInternal::soupSession): Simply call
sessionFromContext(), since ensureSessionIsInitialized() is no
longer needed, because the SoupSession are now initialized in the
SoupNetworkSession constructor.
(WebCore::ResourceHandle::didStartRequest): Function to notify the
ResourceHandle that current request has just started for web timing.
* platform/network/soup/SoupNetworkSession.cpp: Added.
(WebCore::soupLogPrinter): Logger callback.
(WebCore::SoupNetworkSession::defaultSession): Return a reference
to the default SoupNetworkSession.
(WebCore::SoupNetworkSession::createPrivateBrowsingSession):
Create a new private session.
(WebCore::SoupNetworkSession::createTestingSession): Create a new
testing session.
(WebCore::SoupNetworkSession::createForSoupSession): Create a new
SoupNetworkSession for the given SoupSession.
(WebCore::authenticateCallback): Callback emitted by the
SoupSession when the request needs authentication.
(WebCore::requestStartedCallback): Callback emitted by the
SoupSession when as request has just started.
(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::~SoupNetworkSession):
(WebCore::SoupNetworkSession::setupLogger): Helper private
function to setup the logger.
(WebCore::SoupNetworkSession::setCookieJar): Set a new CookieJar
in the session replacing the existing one.
(WebCore::SoupNetworkSession::cookieJar): Return the current
CookieJar of the session.
(WebCore::SoupNetworkSession::setCache): Set a disk cache.
(WebCore::SoupNetworkSession::cache): Return the current disk cache.
(WebCore::SoupNetworkSession::setSSLPolicy): Set the SSL policy.
(WebCore::SoupNetworkSession::sslPolicy): Get the current SSL policy.
(WebCore::SoupNetworkSession::setHTTPProxy): Set the HTTP proxy.
(WebCore::SoupNetworkSession::httpProxy): Get the current HTTP proxy.
(WebCore::SoupNetworkSession::setupHTTPProxyFromEnvironment): Set
the HTTP proxy using the environment variables.
(WebCore::buildAcceptLanguages): Helper function build the accept
language string in the format expected by soup (RFC 2616).
(WebCore::SoupNetworkSession::setAcceptLanguages): Set the accept
language for the given list of languages.
* platform/network/soup/SoupNetworkSession.h: Added.
(WebCore::SoupNetworkSession::soupSession): Return the SoupSession.
2014-01-13 Brent Fulgham <bfulgham@apple.com>
[WebGL] Error messages should use source code labels, not internal mangled symbols.
https://bugs.webkit.org/show_bug.cgi?id=126832
Reviewed by Dean Jackson.
Revised fast/canvas/webgl/glsl-conformance.html.
* platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::getSymbolInfo): Correct missing 'break'.
(WebCore::ANGLEWebKitBridge::compileShaderSource): Call 'getSymbolInfo'
for SH_VARYINGS.
* platform/graphics/GraphicsContext3D.h: Add new declarations.
* platform/graphics/filters/CustomFilterValidatedProgram.cpp: Add case
for SHADER_SYMBOL_TYPE_VARYING. This is a no-op to match existing
behavior.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::compileShader): Demangle log output.
(WebCore::GraphicsContext3D::mappedSymbolName): Added.
(WebCore::GraphicsContext3D::getUnmangledInfoLog): Added.
(WebCore::GraphicsContext3D::getProgramInfoLog): Demangle log output.
(WebCore::GraphicsContext3D::getShaderInfoLog): Demangle log output.
2014-01-13 David Kilzer <ddkilzer@apple.com>
[iOS] Include RenderElement.h to fix BaseChooserOnlyDateAndTimeInputType.cpp
Fixes the following build failure:
Undefined symbols for architecture x86_64:
"__ZNK7WebCore13ContainerNode8rendererEv", referenced from:
__ZN7WebCore35BaseChooserOnlyDateAndTimeInputType22handleDOMActivateEventEPNS_5EventE in BaseChooserOnlyDateAndTimeInputType.o
* html/BaseChooserOnlyDateAndTimeInputType.cpp: Include
RenderElement.h.
2014-01-13 Andy Estes <aestes@apple.com>
[iOS] Build Fix: copy iOS-specific generated headers
* Configurations/WebCore.xcconfig: Excluded DOMTouch* and DOMGesture* headers on Mac.
* WebCore.xcodeproj/project.pbxproj:
2014-01-13 Zalan Bujtas <zalan@apple.com>
Enable SUBPIXEL_LAYOUT on Mac
<https://webkit.org/b/126283>
Reviewed by Simon Fraser.
* Configurations/FeatureDefines.xcconfig:
2014-01-13 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com>
REGRESSION(r161715): Use of uninitialized value $ENV{"PLATFORM_NAME"}
https://bugs.webkit.org/show_bug.cgi?id=126873
Reviewed by Csaba Osztrogonác.
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2014-01-13 Andreas Kling <akling@apple.com>
CTTE: Autoscroll renderer is always a RenderBox.
<https://webkit.org/b/126884>
Reviewed by Antti Koivisto.
* page/EventHandler.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::autoscrollRenderer):
Make autoscrollRenderer() return a RenderBox*.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::willBeDestroyed):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::willBeDestroyed):
Only check if the autoscroll renderer is being torn down
in RenderBox::willBeDestroyed() since it's not relevant for
other renderer types.
2014-01-13 László Langó <llango.u-szeged@partner.samsung.com>
Text should be constructable.
https://bugs.webkit.org/show_bug.cgi?id=115640
Reviewed by Csaba Osztrogonác.
http://dom.spec.whatwg.org/#interface-text
Make Text constructable so that one can do "new Text('abc')"
instead of "document.createTexte('abc')".
Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/cdd5a914daf3862379a5ce4596149bd690d0fa08
Test: fast/dom/Text/text-constructor.html
* dom/Text.cpp:
(WebCore::Text::create):
* dom/Text.h:
* dom/Text.idl:
2014-01-13 Zan Dobersek <zdobersek@igalia.com>
Avoid unnecessary copies of AccessibilityObject::AccessibilityChildrenVector
https://bugs.webkit.org/show_bug.cgi?id=126876
Reviewed by Andreas Kling.
AccessibilityObject::children() returns a reference to the Vector of that AccessibilityObject's children.
The majority of callsites stores the return value in a temporary value instead of a reference, causing
a copy each time. A reference to the return value should be used instead.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedImageMapUIElement):
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addRowDescendant):
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::rowIndexRange):
(WebCore::AccessibilityARIAGridCell::columnIndexRange):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::headerObject):
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::setSelectedChildren):
* accessibility/AccessibilityListBox.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::insertChild):
(WebCore::AccessibilityNodeObject::selectedRadioButton):
(WebCore::AccessibilityNodeObject::selectedTabItem):
* accessibility/AccessibilityObject.cpp:
(WebCore::appendChildrenToArray):
(WebCore::AccessibilityObject::ariaTreeRows):
(WebCore::AccessibilityObject::ariaTreeItemContent):
(WebCore::AccessibilityObject::ariaTreeItemDisclosedRows):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
(WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
(WebCore::AccessibilityRenderObject::addHiddenChildren):
(WebCore::AccessibilityRenderObject::ariaListboxSelectedChildren):
(WebCore::AccessibilityRenderObject::ariaListboxVisibleChildren):
(WebCore::AccessibilityRenderObject::tabChildren):
(WebCore::AccessibilityRenderObject::mathRadicandObject):
(WebCore::AccessibilityRenderObject::mathRootIndexObject):
(WebCore::AccessibilityRenderObject::mathNumeratorObject):
(WebCore::AccessibilityRenderObject::mathDenominatorObject):
(WebCore::AccessibilityRenderObject::mathUnderObject):
(WebCore::AccessibilityRenderObject::mathOverObject):
(WebCore::AccessibilityRenderObject::mathBaseObject):
(WebCore::AccessibilityRenderObject::mathSubscriptObject):
(WebCore::AccessibilityRenderObject::mathSuperscriptObject):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::cellForColumnAndRow):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObject):
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::headerObject):
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::getListObject):
(WebCore::notifyChildrenSelectionChange):
* accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
(webkitAccessibleHypertextGetLink):
(webkitAccessibleHypertextGetNLinks):
* accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
(listObjectForSelection):
(optionFromList):
(webkitAccessibleSelectionSelectAllSelection):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(getNChildrenForTable):
(getChildForTable):
(webkitAccessibleRefChild):
(getIndexInParentForCellInRow):
(getInterfaceMaskFromObject):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
(-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):
(-[WebAccessibilityObjectWrapper containsUnnaturallySegmentedChildren]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2014-01-13 László Langó <llango.u-szeged@partner.samsung.com>
Comment should be consructable.
https://bugs.webkit.org/show_bug.cgi?id=115642
Reviewed by Andreas Kling.
http://dom.spec.whatwg.org/#comment
This allows us to do `new Comment('abc')` instead of `document.createComment('abc')`.
Backported from Blink: https://chromium.googlesource.com/chromium/blink/+/06e4a37f6b11348606de5405edac1ada97499d2a%5E%21
Test: fast/dom/Comment/comment-constructor.html
* dom/Comment.cpp:
(WebCore::Comment::create):
* dom/Comment.h:
* dom/Comment.idl:
2014-01-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161808.
http://trac.webkit.org/changeset/161808
https://bugs.webkit.org/show_bug.cgi?id=126874
This patch make several files to be always regenerated on
every make (Requested by KaL on #webkit).
* GNUmakefile.am:
* bindings/gobject/GNUmakefile.am:
2014-01-12 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161843.
http://trac.webkit.org/changeset/161843
https://bugs.webkit.org/show_bug.cgi?id=126871
Caused CSS custom filter tests to assert (Requested by smfr on
#webkit).
* platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::getSymbolInfo):
(WebCore::ANGLEWebKitBridge::compileShaderSource):
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::getProgramInfoLog):
(WebCore::GraphicsContext3D::getShaderInfoLog):
2014-01-12 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161840.
http://trac.webkit.org/changeset/161840
https://bugs.webkit.org/show_bug.cgi?id=126870
Caused jsscore and layout test failures (Requested by smfr on
#webkit).
* 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/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::createSearchRegexSource):
* 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):
* xml/XPathNodeSet.h:
2014-01-12 Jinwoo Song <jinwoo7.song@samsung.com>
Fix build warnings by unused parameter
https://bugs.webkit.org/show_bug.cgi?id=126867
Reviewed by Gyuyoung Kim.
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion): Remove unused parameter 'operation'.
2014-01-12 Brent Fulgham <bfulgham@apple.com>
Unreviewed build fix for WinCairo.
* WebCore.vcxproj/WebCoreCairo.props: Add missing include path
to locate SelectorCompiler.h.
2014-01-12 Maciej Stachowiak <mjs@apple.com>
Fix iOS build breakage from http://trac.webkit.org/changeset/161844
https://bugs.webkit.org/show_bug.cgi?id=126866
Reviewed by Simon Fraser.
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::cursorMovementIterator): Use initializeIterator instead of createSharedIterator,
which does not exist.
2014-01-12 Darin Adler <darin@apple.com>
Add PLATFORM(COCOA) and USE(FOUNDATION)
https://bugs.webkit.org/show_bug.cgi?id=126859
Reviewed by Anders Carlsson.
* config.h: Use PLATFORM(COCOA) instead of PLATFORM(MAC) || PLATFORM(IOS)
to set USE(FILE_LOCK). Would be nice to use OS(DARWIN), but that would be
a change in behavior that might be incorrect. Removed bogus comments in
the USE(NEW_THEME) setting code. Removed redundant code to set USE(CA),
which exactly duplicates code that already exists in Platform.h.
2014-01-12 Darin Adler <darin@apple.com>
Add deprecatedCharacters as a synonym for characters and convert most call sites
https://bugs.webkit.org/show_bug.cgi?id=126858
Reviewed by Anders Carlsson.
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPathLexer::IDBKeyPathLexer):
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol):
(WebCore::ThreadableWebSocketChannelClientWrapper::setExtensions):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasMisspelling):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::write):
* dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
* dom/Document.cpp:
(WebCore::Document::parseQualifiedName):
* editing/Editor.cpp:
(WebCore::Editor::misspelledWordAtCaretOrRange):
(WebCore::Editor::misspelledSelectionString):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::findFirstBadGrammar):
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange):
* editing/TextCheckingHelper.h:
(WebCore::TextCheckingParagraph::textDeprecatedCharacters):
* editing/TextIterator.cpp:
(WebCore::collapsedSpaceLength):
(WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
(WebCore::containsKanaLetters):
(WebCore::SearchBuffer::SearchBuffer):
* editing/TextIterator.h:
(WebCore::TextIterator::characters):
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::characterAfter):
* editing/VisibleUnits.cpp:
(WebCore::wordBreakIteratorForMinOffsetBoundary):
(WebCore::wordBreakIteratorForMaxOffsetBoundary):
(WebCore::visualWordPosition):
(WebCore::previousBoundary):
(WebCore::nextBoundary):
* fileapi/WebKitBlobBuilder.cpp:
(WebCore::BlobBuilder::append):
* html/FormDataList.cpp:
(WebCore::FormDataList::appendString):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::normalizeSpaces):
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
* loader/appcache/ManifestParser.cpp:
(WebCore::parseManifest):
* page/ContentSecurityPolicy.cpp:
(WebCore::isSourceListNone):
(WebCore::CSPSourceList::parse):
(WebCore::NonceDirective::parse):
(WebCore::MediaListDirective::parse):
(WebCore::CSPDirectiveList::parse):
(WebCore::CSPDirectiveList::parseReportURI):
(WebCore::CSPDirectiveList::parseReflectedXSS):
(WebCore::ContentSecurityPolicy::didReceiveHeader):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
(WebCore::PageSerializer::serializeCSSStyleSheet):
* platform/Length.cpp:
(WebCore::newCoordsArray):
(WebCore::newLengthArray):
* platform/LinkHash.cpp:
(WebCore::visitedURL):
(WebCore::visitedLinkHash):
* platform/SharedBuffer.cpp:
(WebCore::utf8Buffer):
* platform/URL.cpp:
(WebCore::URL::port):
(WebCore::encodeHostnames):
* platform/graphics/StringTruncator.cpp:
(WebCore::centerTruncateToBuffer):
(WebCore::rightTruncateToBuffer):
(WebCore::rightClipToCharacterBuffer):
(WebCore::rightClipToWordBuffer):
(WebCore::leftTruncateToBuffer):
(WebCore::truncateString):
(WebCore::StringTruncator::width):
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::addFilenameToMultiPartHeader):
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::bindBlob):
(WebCore::SQLiteStatement::bindText):
* platform/text/DecodeEscapeSequences.h:
(WebCore::decodeEscapeSequences):
* platform/text/TextBreakIterator.cpp:
(WebCore::numGraphemeClusters):
(WebCore::numCharactersInGraphemeClusters):
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::setUpIteratorWithRules):
* platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::encode):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
* rendering/RenderText.cpp:
(WebCore::maxWordFragmentWidth):
(WebCore::RenderText::computePreferredLogicalWidths):
(WebCore::RenderText::computeCanUseSimpleFontCodePath):
* rendering/RenderText.h:
(WebCore::RenderText::characters):
(WebCore::RenderText::deprecatedCharacters):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::tryHyphenating):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::constructTextRun):
* rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
(WebCore::processRenderSVGInlineText):
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::measureCharacterRange):
(WebCore::SVGTextMetrics::SVGTextMetrics):
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
* svg/SVGAngle.cpp:
(WebCore::SVGAngle::setValueAsString):
* svg/SVGAnimateMotionElement.cpp:
(WebCore::parsePoint):
* svg/SVGAnimationElement.cpp:
(WebCore::parseKeySplines):
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::parseViewBox):
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection):
* svg/SVGGlyphMap.h:
(WebCore::SVGGlyphMap::addGlyph):
(WebCore::SVGGlyphMap::collectGlyphsForString):
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::parseAttribute):
* svg/SVGLength.cpp:
(WebCore::SVGLength::setValueAsString):
* svg/SVGLengthList.cpp:
(WebCore::SVGLengthList::parse):
* svg/SVGNumberList.cpp:
(WebCore::SVGNumberList::parse):
* svg/SVGParserUtilities.cpp:
(WebCore::parseNumberFromString):
(WebCore::parseNumberOptionalNumber):
(WebCore::parseRect):
(WebCore::pointsListFromSVGData):
(WebCore::parseGlyphName):
(WebCore::parseKerningUnicodeString):
(WebCore::parseDelimitedString):
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::parse):
* svg/SVGStringList.cpp:
(WebCore::SVGStringList::parse):
* svg/SVGTransformList.cpp:
(WebCore::SVGTransformList::parse):
* svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformType):
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::parseViewSpec):
* svg/SVGZoomAndPan.h:
(WebCore::SVGZoomAndPan::parseAttribute):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::parseString):
* xml/XSLTUnicodeSort.cpp:
(WebCore::xsltUnicodeSortFunction):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doWrite):
(WebCore::parseAttributes):
Use deprecatedCharacters instead of characters.
2014-01-12 Darin Adler <darin@apple.com>
Add type checking to isEqual methods
https://bugs.webkit.org/show_bug.cgi?id=126862
Reviewed by Anders Carlsson.
* page/ios/WebEventRegion.mm:
(-[WebEventRegion isEqual:]): Add type checking on the argument.
Add a FIXME about the lack of a hash method override. Formatted to match
the usual WebKit coding style.
2014-01-12 Anders Carlsson <andersca@apple.com>
Try to fix the 32-bit build.
* platform/text/icu/UTextProviderLatin1.cpp:
(WebCore::uTextLatin1Clone):
(WebCore::uTextLatin1Extract):
(WebCore::uTextLatin1MapNativeIndexToUTF16):
2014-01-12 Anders Carlsson <andersca@apple.com>
Remove all uses of AtomicallyInitializedStatic from WebCore
https://bugs.webkit.org/show_bug.cgi?id=126861
Reviewed by Darin Adler.
* Modules/indexeddb/IDBPendingTransactionMonitor.cpp:
(WebCore::transactions):
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::originMap):
* platform/text/TextEncodingRegistry.cpp:
(WebCore::encodingRegistryMutex):
(WebCore::newTextCodec):
(WebCore::atomicCanonicalTextEncodingName):
(WebCore::dumpTextEncodingNameMap):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::DefaultSharedWorkerRepository::instance):
2014-01-12 Anders Carlsson <andersca@apple.com>
Use an std::atomic<uint32_t> when computing IDBDatabase transaction IDs
https://bugs.webkit.org/show_bug.cgi?id=126853
Reviewed by Sam Weinig.
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::nextTransactionId):
2014-01-12 Sam Weinig <sam@webkit.org>
TextBreakIterator's should support Latin-1 for all iterator types (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=126856
Reviewed by Darin Adler.
- Do some initial cleanup before adding complete Latin-1 support.
* platform/text/TextBreakIterator.cpp:
Remove non-ICU acquireLineBreakIterator() implementation.
* platform/text/TextBreakIterator.h:
- Changes acquireLineBreakIterator() to take a StringView.
* platform/text/TextBreakIteratorICU.cpp:
- Refactor iterator initialization and setting of text on the iterator.
- Add support for using a Latin-1 provider (this is not currently used).
* platform/text/icu/UTextProviderLatin1.cpp:
* platform/text/icu/UTextProviderLatin1.h:
- Add back non-context aware Latin-1 provider (from r129662).
- Rename context aware provider.
* platform/text/icu/UTextProviderUTF16.cpp:
* platform/text/icu/UTextProviderUTF16.h:
- Rename context aware provider.
2014-01-12 Brent Fulgham <bfulgham@apple.com>
[WebGL] Error messages should use source code labels, not internal mangled symbols.
https://bugs.webkit.org/show_bug.cgi?id=126832
Reviewed by Dean Jackson.
Revised fast/canvas/webgl/glsl-conformance.html.
* platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::getSymbolInfo): Correct missing 'break'.
(WebCore::ANGLEWebKitBridge::compileShaderSource): Call 'getSymbolInfo'
for SH_VARYINGS.
* platform/graphics/GraphicsContext3D.h: Add new declarations.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::compileShader): Demangle log output.
(WebCore::GraphicsContext3D::mappedSymbolName): Added.
(WebCore::GraphicsContext3D::getUnmangledInfoLog): Added.
(WebCore::GraphicsContext3D::getProgramInfoLog): Demangle log output.
(WebCore::GraphicsContext3D::getShaderInfoLog): Demangle log output.
2014-01-12 Dan Bernstein <mitz@apple.com>
Try to fix the Windows build after r161839.
* WebCore.vcxproj/WebCoreCommon.props:
2014-01-12 Darin Adler <darin@apple.com>
Reduce use of String::characters
https://bugs.webkit.org/show_bug.cgi?id=126854
Reviewed by Sam Weinig.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
Get rid of unneeded code to turn a WTF::String into an NSString, since that's
built into the WTF::String class.
* editing/CompositeEditCommand.cpp:
(WebCore::containsOnlyWhitespace): Use WTF::String's [] operator instead of
an explicit call to the characters function. Small performance cost.
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText): Ditto.
* editing/VisibleUnits.cpp:
(WebCore::startOfParagraph): Use reverseFind instead of writing our own loop.
(WebCore::endOfParagraph): Use find instead of writing our own loop.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::stripLeadingAndTrailingHTMLSpaces): Use characters16 instead of
characters since we have already checked is8Bit.
(WebCore::parseHTMLNonNegativeInteger): Ditto. Replace the length check with
a check of isNull since a zero length string could be 8 bit, but it's not
safe to call is8Bit on a null WTF::String. (That should probably be fixed.)
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::createSearchRegexSource): Use StringBuilder
instead of String in code that builds up a string one character at a time.
The old way was ridiculously slow because it allocated a new string for every
character; the new way still isn't all that efficient, but it's better. Also
changed to use strchr instead of WTF::String::find for special characters.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Use WTF::String's
[] operator instead of an explicit call to the characters function.
* inspector/InspectorStyleTextEditor.cpp:
(WebCore::InspectorStyleTextEditor::insertProperty): Ditto.
(WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
* platform/Length.cpp:
(WebCore::newCoordsArray): Ditto.
* platform/LinkHash.cpp:
(WebCore::visitedLinkHash): Use characters16 instead of characters since
we have already checked is8Bit. Replace the length check with a check of
isNull (as above in parseHTMLNonNegativeInteger).
* platform/graphics/Color.cpp:
(WebCore::Color::parseHexColor): Use characters16 since we already checked is8Bit.
(WebCore::Color::Color): Ditto.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun): Use characters16 instead of characters since
we have already checked is8Bit. Replace the length check with a check of
isNull (as above in parseHTMLNonNegativeInteger).
* platform/text/TextEncodingRegistry.cpp:
(WebCore::atomicCanonicalTextEncodingName): Use characters16 instead of
characters since we already checked is8Bit. Also use isEmpty instead of !length.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun): Use characters16 instead of characters
since we have already checked is8Bit. Replace the length check with a check of
isNull (as above in parseHTMLNonNegativeInteger).
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::width): Check for zero length instead of checking
for null characters.
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::registerLigaturesInGlyphCache): Rewrite ligatures
for loop and give local variables a better name. Construct the substring with
the substring function. Still a really inefficient approach -- allocating a new
string for every character is absurdly expensive.
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunId::evaluate): Use String instead of StringBuilder. Still
not all that efficient, but better than before. Use substring to construct the
substring.
* xml/XPathNodeSet.h: Added begin and end functions so we can use a C++11 for
loop with this class.
2014-01-12 Benjamin Poulain <benjamin@webkit.org>
Use the Selector Code Generator for matching in SelectorQuery
https://bugs.webkit.org/show_bug.cgi?id=126185
Reviewed by Ryosuke Niwa.
Compile selectors on demand and use the generated binary to perform
element matching in SelectorQuery.
Tests: fast/selectors/querySelector-long-adjacent-backtracking.html
fast/selectors/querySelector-long-child-backtracking.html
fast/selectors/querySelector-mixed-child-adjacent-backtracking.html
fast/selectors/querySelector-multiple-simple-child-backtracking.html
fast/selectors/querySelector-simple-adjacent-backtracking.html
fast/selectors/querySelector-simple-child-backtracking.html
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::executeCompiledSelectorCheckerWithContext):
(WebCore::SelectorDataList::execute):
* dom/SelectorQuery.h:
2014-01-12 Anders Carlsson <andersca@apple.com>
Simplify creation of XMLHttpRequestStaticData
https://bugs.webkit.org/show_bug.cgi?id=126852
Reviewed by Sam Weinig.
Add a staticData() getter that does the initialization and get rid of the explicit
calls to initializeXMLHttpRequestStaticData().
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData):
(WebCore::staticData):
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::isAllowedHTTPHeader):
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Final WebCore link error: update a symbol in WebCoreSystemInterfaceIOS.mm.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
2014-01-12 Anders Carlsson <andersca@apple.com>
Use std::call_once instead of AtomicallyInitializedStatic in DatabaseBackendBase
https://bugs.webkit.org/show_bug.cgi?id=126851
Reviewed by Sam Weinig.
* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::guidMutex):
(WebCore::guidToVersionMap):
(WebCore::updateGuidVersionMap):
(WebCore::guidToDatabaseMap):
(WebCore::guidForOriginAndName):
(WebCore::DatabaseBackendBase::DatabaseBackendBase):
(WebCore::DatabaseBackendBase::closeDatabase):
(WebCore::DatabaseBackendBase::performOpenAndVerify):
(WebCore::DatabaseBackendBase::getCachedVersion):
(WebCore::DatabaseBackendBase::setCachedVersion):
2014-01-12 Dan Bernstein <mitz@apple.com>
Try to fix the Windows build after r161830.
* platform/network/NetworkStateNotifier.h:
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Don't build JSTouch* and JSGesture* files on Mac.
* Configurations/WebCore.xcconfig:
2014-01-12 Anders Carlsson <andersca@apple.com>
Clean up NetworkStateNotifier class
https://bugs.webkit.org/show_bug.cgi?id=126850
Reviewed by Andreas Kling.
Use std::call_once instead of AtomicallyInitializedStatic and a std::function
instead of a custom function pointer typedef.
* platform/network/NetworkStateNotifier.cpp:
(WebCore::networkStateNotifier):
(WebCore::NetworkStateNotifier::addNetworkStateChangeListener):
(WebCore::NetworkStateNotifier::notifyNetworkStateChange):
* platform/network/NetworkStateNotifier.h:
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Add implementations of Frame::viewportArguments() and
Frame::setViewportArguments().
* page/ios/FrameIOS.mm:
(WebCore::Frame::viewportArguments):
(WebCore::Frame::setViewportArguments):
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Add JSWebKitPlaybackTargetAvailabilityEvent.* to the project.
* WebCore.xcodeproj/project.pbxproj:
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Stub out some DragImage functions for iOS.
* WebCore.xcodeproj/project.pbxproj:
* platform/ios/DragImageIOS.mm: Added.
(WebCore::dragImageSize):
(WebCore::scaleDragImage):
(WebCore::createDragImageFromImage):
2014-01-12 Simon Fraser <simon.fraser@apple.com>
We need DragImage.cpp code even when ENABLE_DRAG_SUPPORT is
not defined, because these are actually generic snapshotting
functions.
* platform/DragImage.cpp:
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Fix linker errors: add DateTimeFormat.cpp to the project,
and make DateInputType::DateInputType not inline.
* WebCore.xcodeproj/project.pbxproj:
* html/DateInputType.cpp:
(WebCore::DateInputType::DateInputType):
* platform/DragImage.cpp:
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Fix a bunch of linker errors related to exported functions.
I removed some iOS symbols from the .exp.in file; we may have
to add some back.
* WebCore.exp.in:
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Add generated JSTouch* and JSGestureEvent.* files to the project.
* WebCore.xcodeproj/project.pbxproj:
2014-01-12 David Kilzer <ddkilzer@apple.com>
Move implementation of AuthenticationChallenge::setAuthenticationClient() to source file for USE(CFNETWORK)
<http://webkit.org/b/126848>
Reviewed by Simon Fraser.
* platform/network/cf/AuthenticationCF.cpp:
(WebCore::AuthenticationChallenge::setAuthenticationClient):
Move implementation to here...
* platform/network/cf/AuthenticationChallenge.h: ...from here.
Remove duplicate header definitions inside USE(CFNETWORK).
2014-01-12 Sam Weinig <sam@webkit.org>
Fix windows.
* WebCore.vcxproj/WebCore.vcxproj:
2014-01-12 Anders Carlsson <andersca@apple.com>
Replace more uses of AtomicallyInitializedStatic with std::call_once
https://bugs.webkit.org/show_bug.cgi?id=126847
Reviewed by Sam Weinig.
* crypto/CryptoAlgorithmRegistry.cpp:
(WebCore::CryptoAlgorithmRegistry::shared):
(WebCore::registryMutex):
(WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
(WebCore::CryptoAlgorithmRegistry::nameForIdentifier):
(WebCore::CryptoAlgorithmRegistry::create):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
* crypto/CryptoAlgorithmRegistry.h:
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::~WorkerDebuggerAgent):
(WebCore::WorkerDebuggerAgent::interruptAndDispatchInspectorCommands):
* workers/WorkerThread.cpp:
(WebCore::threadSetMutex):
(WebCore::workerThreads):
(WebCore::WorkerThread::workerThreadCount):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::~WorkerThread):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
2014-01-11 Sam Weinig <sam@webkit.org>
Split ICU UText providers out into their own files
https://bugs.webkit.org/show_bug.cgi?id=126834
Reviewed by Anders Carlsson.
Moves the implementation of our custom UText providers out into
their own files.
- UTextProviderLatin1.h/cpp contains the Latin-1 provider.
- UTextProviderUTF16.h/cpp contains the UTF-16 provider.
- UTextProvider.h/cpp contains code common to all the providers.
* CMakeLists.txt:
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* WebCore.vcxproj/WebCoreCommon.props:
* WebCore.vcxproj/copyForwardingHeaders.cmd:
* WebCore.xcodeproj/project.pbxproj:
* platform/text/TextAllInOne.cpp:
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::setUpIterator):
(WebCore::wordBreakIterator):
(WebCore::acquireLineBreakIterator):
(WebCore::sentenceBreakIterator):
(WebCore::setUpIteratorWithRules):
* platform/text/icu: Added.
* platform/text/icu/UTextProvider.cpp: Added.
(WebCore::fixPointer):
(WebCore::uTextCloneImpl):
* platform/text/icu/UTextProvider.h: Added.
(WebCore::uTextProviderContext):
(WebCore::uTextInitialize):
(WebCore::uTextAccessPinIndex):
(WebCore::uTextAccessInChunkOrOutOfRange):
* platform/text/icu/UTextProviderLatin1.cpp: Added.
* platform/text/icu/UTextProviderLatin1.h: Added.
* platform/text/icu/UTextProviderUTF16.cpp: Added.
* platform/text/icu/UTextProviderUTF16.h: Added.
2014-01-12 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.list.am: Add missing files.
2014-01-12 Simon Fraser <simon.fraser@apple.com>
Fix some CoreVideo linker errors on iOS by softlinking with more CoreVideo
symbols.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2014-01-12 Andreas Kling <akling@apple.com>
REGRESSION(r160806): line-height is not applied when only present in :link style.
<http://webkit.org/b/126839>
<rdar://problem/15799899>
Reviewed by Antti Koivisto.
Test: fast/css/line-height-link-style.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::CascadedProperties::Property::apply):
Use the CSSValue for SelectorChecker::MatchLink when applying
style inside a link.
2014-01-12 David Kilzer <ddkilzer@apple.com>
[iOS] Fix link errors for iOS: Part 3
* WebCore.exp.in:
- Move some Mac-only symbols to Mac-only section.
* WebCore.xcodeproj/project.pbxproj:
- Add missing references to AuthenticationCF.cpp and
CookieJarCFNet.cpp.
2014-01-11 Anders Carlsson <andersca@apple.com>
Remove unsafe uses of AtomicallyInitializedStatic
https://bugs.webkit.org/show_bug.cgi?id=126838
Reviewed by Andreas Kling.
AtomicStrings are per thread so any static initialization of them is potentially dangerous
unless it's certain that they're only ever used from the same thread.
This goes against using them with AtomicallyInitializedStatic, so just create AtomicStrings where needed.
(This is highly unlikely to have any real negative performance impact since these two functions
aren't called very frequently).
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck):
* page/PerformanceResourceTiming.cpp:
(WebCore::passesTimingAllowCheck):
2014-01-12 David Kilzer <ddkilzer@apple.com>
[iOS] Fix link errors for iOS: Part 2
* WebCore.exp.in:
- Move some Mac-only symbols to Mac-only section.
2014-01-12 David Kilzer <ddkilzer@apple.com>
[iOS] First of many iOS fixes to WebCore.exp.in
* WebCore.exp.in:
- Move some Mac-only symbols to Mac-only section.
- Upstream some changes to iOS-only section.
2014-01-12 David Kilzer <ddkilzer@apple.com>
[iOS] Don't link to Mac-only frameworks when building iOS
<http://webkit.org/b/126841>
* Configurations/WebCore.xcconfig:
(OTHER_LDFLAGS_iphonesimulator): Remove common frameworks that
are already in the Xcode project.
(OTHER_LDFLAGS_macosx): Add Mac-only frameworks removed from the
Xcode project.
* Configurations/WebCoreTestShim.xcconfig:
(OTHER_LDFLAGS[sdk=macosx*]): Link to Carbon.framework for Mac
since it was removed from the Xcode project.
* WebCore.xcodeproj/project.pbxproj: Remove Mac-only frameworks.
2014-01-12 Tobias Mueller <tobiasmue@gnome.org>
--disable-dependency-tracking causes build failure due to missing directories
https://bugs.webkit.org/show_bug.cgi?id=94488
Reviewed by Gustavo Noronha Silva.
Ensure output directory existing
before generating DerivedSources. This allows for
--disable-dependency-tracking to be run.
* GNUmakefile.am: Added new target DerivedSources/ANGLE which is a directory to be created
* bindings/gobject/GNUmakefile.am: Added new target DerivedSources/webkitdom which is a directory to be created
2014-01-12 David Kilzer <ddkilzer@apple.com>
[iOS] WebFontCache is Mac-only
* WebCore.exp.in: Move export to Mac-only section.
2014-01-12 David Kilzer <ddkilzer@apple.com>
[iOS] Upstream WebEventRegion.{h|mm} to fix the build
* WebCore.xcodeproj/project.pbxproj: Add to project.
* page/ios/WebEventRegion.h: Added.
* page/ios/WebEventRegion.mm: Added.
(-[WebEventRegion initWithPoints::::]):
(-[WebEventRegion copyWithZone:]):
(-[WebEventRegion description]):
(-[WebEventRegion hitTest:]):
(-[WebEventRegion isEqual:]):
(-[WebEventRegion quad]):
2014-01-11 Anders Carlsson <andersca@apple.com>
Use std::call_once instead of AtomicallyInitializedStatic when creating a HTTP header set
https://bugs.webkit.org/show_bug.cgi?id=126837
Reviewed by Sam Weinig.
Use std::call_once when constructing the HTTPHeaderSet.
* loader/CrossOriginAccessControl.cpp:
(WebCore::isOnAccessControlResponseHeaderWhitelist):
2014-01-11 David Kilzer <ddkilzer@apple.com>
[iOS] Do not link to ApplicationServices.framework for iOS
<http://webkit.org/b/126835>
Reviewed by Dan Bernstein.
* Configurations/WebCore.xcconfig:
(OTHER_LDFLAGS_macosx): Add -framework ApplicationServices.
* WebCore.xcodeproj/project.pbxproj: Remove reference to
ApplicationServices.framework.
2014-01-11 David Kilzer <ddkilzer@apple.com>
[iOS] Build fix for StyleResolver.cpp
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setCompositionFillColor): Added.
2014-01-11 David Kilzer <ddkilzer@apple.com>
[iOS] Fix build of RenderLayerCompositor::registerAllViewportConstrainedLayers()
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
Fix use of std::make_unique<>() and add an adoptPtr() call.
2014-01-11 Alexey Proskuryakov <ap@apple.com>
[Mac] [Windows] Stop scheduling network requests in WebCore
https://bugs.webkit.org/show_bug.cgi?id=126789
<rdar://problem/15114727>
Reviewed by Sam Weinig.
We'll just send all requests to CFNetwork now, along with associated priorities.
* WebCore.exp.in: WebKitSystemInterface functions are changing to support priorities
for more than just pipelining.
* loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::scheduleLoad):
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/network/ResourceHandle.h: For syncronous requests, make it so that they
don't count against HTTP connection limit, to avoid the possibility of hanging the process.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::initializeMaximumHTTPConnectionCountPerHost):
(WebCore::initializeHTTPConnectionSettingsOnStartup):
* platform/network/cf/ResourceRequestCFNet.h:
(WebCore::toPlatformRequestPriority):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::doUpdatePlatformRequest):
2014-01-11 David Kilzer <ddkilzer@apple.com>
[iOS] Fix build failure in WebCore::findEndWordBoundary()
Filed Bug 126830 for the proper fix:
<http://webkit.org/b/126830>
* editing/VisibleUnits.cpp:
(WebCore::endWordBoundary): Switch back to using
WebCore::findWordBoundary() on iOS.
* platform/text/mac/TextBoundaries.mm:
(WebCore::findEndWordBoundary): Add FIXME for iOS implementation
that doesn't use NSAttributedString.
2014-01-11 Andy Estes <aestes@apple.com>
[iOS] Move text autosizing code from RenderBlock to RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=126829
Reviewed by Sam Weinig.
Some newly-upstreamed iOS text autosizing code needs to move to
RenderBlockFlow in order to build.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::RenderBlockFlow):
(WebCore::isVisibleRenderText):
(WebCore::resizeTextPermitted):
(WebCore::RenderBlockFlow::immediateLineCount):
(WebCore::isNonBlocksOrNonFixedHeightListItems):
(WebCore::oneLineTextMultiplier):
(WebCore::textMultiplier):
(WebCore::RenderBlockFlow::adjustComputedFontSizes):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::resetComputedFontSize):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::adjustComputedFontSizesOnBlocks):
(WebCore::RenderObject::resetTextAutosizing):
2014-01-11 Daniel Bates <dabates@apple.com>
[iOS] Fix the build
Only call CGContextFlush() when building for OS X < 10.9.
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
(WebCore::ImageBufferBackingStoreCache::deallocate):
2014-01-11 Anders Carlsson <andersca@apple.com>
InspectorAgentRegistry should use std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=126826
Reviewed by Sam Weinig.
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::create):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
* inspector/InspectorWorkerAgent.h:
* inspector/PageConsoleAgent.h:
* inspector/PageDebuggerAgent.cpp:
* inspector/PageDebuggerAgent.h:
* inspector/PageRuntimeAgent.h:
* inspector/WorkerConsoleAgent.h:
* inspector/WorkerDebuggerAgent.cpp:
* inspector/WorkerDebuggerAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/WorkerRuntimeAgent.h:
2014-01-11 Sam Weinig <sam@webkit.org>
Extract the FormatConverter class out of GraphicsContext3D.cpp and into its own file
https://bugs.webkit.org/show_bug.cgi?id=126820
Reviewed by Anders Carlsson.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/FormatConverter.cpp: Copied from Source/WebCore/platform/graphics/GraphicsContext3D.cpp.
(WebCore::convertFloatToHalfFloat):
(WebCore::FormatConverter::convert):
* platform/graphics/FormatConverter.h: Copied from Source/WebCore/platform/graphics/GraphicsContext3D.cpp.
(WebCore::FormatConverter::FormatConverter):
(WebCore::FormatConverter::success):
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
(WebCore::GraphicsContext3D::computeImageSizeInBytes):
(WebCore::GraphicsContext3D::packImageData):
(WebCore::GraphicsContext3D::extractImageData):
(WebCore::GraphicsContext3D::extractTextureData):
(WebCore::GraphicsContext3D::packPixels):
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::hasAlpha):
(WebCore::GraphicsContext3D::hasColor):
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Fix updateScrollingLayerWithClient() for iOS.
* rendering/RenderLayerCompositor.cpp:
(WebCore::updateScrollingLayerWithClient):
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Unfork GraphicsContext::drawNativeImage for iOS
https://bugs.webkit.org/show_bug.cgi?id=126824
Reviewed by Dean Jackson.
GraphicsContext::drawNativeImage had a different signature for iOS,
which required #ifdefs at all the call sites. Unfork by passing the "scale"
parameter everywhere (it's only used on iOS).
* WebCore.exp.in:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
* platform/graphics/GraphicsContext.h:
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::paintToCanvas):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::draw):
* platform/graphics/ios/IconIOS.mm:
(WebCore::Icon::paint):
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Work around USE(CFNETWORK) build failure on iOS.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForResponseToAuthenticationChallenge):
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Fix LegacyWebArchive.cpp:567:91: error: calling 'utf8' with incomplete return type 'WTF::CString'
* loader/archive/cf/LegacyWebArchive.cpp:
2014-01-11 David Kilzer <ddkilzer@apple.com>
[iOS] Fix the easy half of the build errors in RenderBlock.cpp
* rendering/RenderBlock.cpp:
(WebCore::isNonBlocksOrNonFixedHeightListItems):
(WebCore::oneLineTextMultiplier):
(WebCore::textMultiplier):
(WebCore::RenderBlock::adjustComputedFontSizes):
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Change touch-related headers to include WebKitAdditions headers,
which have been renamed to have IOS suffixes.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ios/TouchConstructors.cpp:
* dom/Touch.h:
* dom/TouchEvent.h:
* dom/TouchList.h:
* dom/ios/TouchEvents.cpp:
2014-01-11 Anders Carlsson <andersca@apple.com>
ScriptDebugServer should use a separate member function for its timer handler
https://bugs.webkit.org/show_bug.cgi?id=126819
Reviewed by Sam Weinig.
It's weird to have subclasses override a timer handler and sometimes invoke
the timer handler directly so make it a separate member function instead.
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
* bindings/js/PageScriptDebugServer.h:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::recompileAllJSFunctionsTimerFired):
* bindings/js/ScriptDebugServer.h:
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::addListener):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
* bindings/js/WorkerScriptDebugServer.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::start):
2014-01-11 Anders Carlsson <andersca@apple.com>
Simplify Timer and DeferrableOneShotTimer using std::function
https://bugs.webkit.org/show_bug.cgi?id=126816
Reviewed by Sam Weinig.
* platform/Timer.h:
(WebCore::Timer::Timer):
2014-01-11 Anders Carlsson <andersca@apple.com>
CTTE Timer and DeferrableOneShotTimer
https://bugs.webkit.org/show_bug.cgi?id=126814
Reviewed by Antti Koivisto.
Add new Timer and DeferrableOneShotTimer constructors whose member function pointers
take a reference instead of a pointer.
Also, convert a bunch of classes over to using these new constructors.
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::keyRequestTimerFired):
(WebCore::MediaKeySession::addKeyTimerFired):
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::GeoNotifier::timerFired):
(WebCore::Geolocation::resumeTimerFired):
* Modules/geolocation/Geolocation.h:
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::taskTimerFired):
* Modules/indexeddb/IDBTransactionBackend.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferTimerFired):
* Modules/mediasource/SourceBuffer.h:
* Modules/notifications/Notification.cpp:
(WebCore::Notification::taskTimerFired):
* Modules/notifications/Notification.h:
* Modules/notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::NotificationRequestCallback::timerFired):
* Modules/notifications/NotificationCenter.h:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::notificationPostTimerFired):
* accessibility/AXObjectCache.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::beginLoadTimerFired):
* css/CSSFontSelector.h:
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::CachedGeneratedImage::evictionTimerFired):
* css/CSSImageGeneratorValue.h:
* dom/Document.cpp:
(WebCore::Document::visualUpdatesSuppressionTimerFired):
(WebCore::Document::styleRecalcTimerFired):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::sharedObjectPoolClearTimerFired):
(WebCore::Document::styleResolverThrowawayTimerFired):
(WebCore::Document::updateFocusAppearanceTimerFired):
(WebCore::Document::resetHiddenFocusElementTimer):
(WebCore::Document::pendingTasksTimerFired):
(WebCore::Document::fullScreenChangeDelayTimerFired):
(WebCore::Document::loadEventDelayTimerFired):
(WebCore::Document::didAssociateFormControlsTimerFired):
* dom/Document.h:
* dom/EventSender.h:
(WebCore::EventSender::timerFired):
* dom/GenericEventQueue.cpp:
(WebCore::GenericEventQueue::timerFired):
* dom/GenericEventQueue.h:
* dom/ScriptRunner.cpp:
(WebCore::ScriptRunner::timerFired):
* dom/ScriptRunner.h:
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::animationTimerFired):
* dom/ScriptedAnimationController.h:
* editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::timerFired):
* editing/AlternativeTextController.h:
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::caretBlinkTimerFired):
* editing/FrameSelection.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::swapRendererTimerFired):
* html/HTMLPlugInElement.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::removeSnapshotTimerFired):
(WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired):
* html/HTMLPlugInImageElement.h:
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::errorEventTimerFired):
* html/HTMLSourceElement.h:
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::loadTimerFired):
* html/HTMLTrackElement.h:
* html/MediaController.cpp:
(MediaController::asyncEventTimerFired):
(MediaController::clearPositionTimerFired):
(MediaController::timeupdateTimerFired):
* html/MediaController.h:
* html/MediaDocument.cpp:
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/MediaDocument.h:
* html/parser/HTMLParserScheduler.cpp:
(WebCore::HTMLParserScheduler::continueNextChunkTimerFired):
* html/parser/HTMLParserScheduler.h:
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlSeekButtonElement::seekTimerFired):
* html/shadow/MediaControlElementTypes.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::transitionTimerFired):
(WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::hideFullscreenControlsTimerFired):
* html/shadow/MediaControls.h:
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::loadTimerFired):
* html/track/LoadableTextTrack.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask):
(WebCore::UpdateRegionLayoutTask::timerFired):
(WebCore::ChangeRegionOversetTask::ChangeRegionOversetTask):
(WebCore::ChangeRegionOversetTask::timerFired):
* inspector/InspectorDOMAgent.cpp:
(WebCore::RevalidateStyleAttributeTask::RevalidateStyleAttributeTask):
(WebCore::RevalidateStyleAttributeTask::timerFired):
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorBackendDispatchTask::InspectorBackendDispatchTask):
(WebCore::InspectorBackendDispatchTask::timerFired):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkTimerFired):
* loader/FrameLoader.h:
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::timerFired):
* loader/ImageLoader.h:
* loader/LinkLoader.cpp:
(WebCore::LinkLoader::linkLoadTimerFired):
(WebCore::LinkLoader::linkLoadingErrorTimerFired):
* loader/LinkLoader.h:
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::timerFired):
* loader/NavigationScheduler.h:
* loader/PingLoader.cpp:
(WebCore::PingLoader::PingLoader):
* loader/PingLoader.h:
(WebCore::PingLoader::timeoutTimerFired):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressHeartbeatTimerFired):
* loader/ProgressTracker.h:
* loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::requestTimerFired):
* loader/ResourceLoadScheduler.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::decodedDataDeletionTimerFired):
(WebCore::CachedResource::CachedResourceCallback::timerFired):
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::garbageCollectDocumentResourcesTimerFired):
* loader/cache/CachedResourceLoader.h:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::syncTimerFired):
* loader/icon/IconDatabase.h:
* page/AutoscrollController.cpp:
(WebCore::AutoscrollController::autoscrollTimerFired):
* page/AutoscrollController.h:
* page/CaptionUserPreferences.cpp:
(WebCore::CaptionUserPreferences::timerFired):
* page/CaptionUserPreferences.h:
* page/DeviceController.cpp:
(WebCore::DeviceController::fireDeviceEvent):
* page/DeviceController.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::cursorUpdateTimerFired):
(WebCore::EventHandler::autoHideCursorTimerFired):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
(WebCore::EventHandler::hoverTimerFired):
* page/EventHandler.h:
* page/EventSource.cpp:
(WebCore::EventSource::connectTimerFired):
* page/EventSource.h:
* page/FrameView.cpp:
(WebCore::FrameView::deferredRepaintTimerFired):
(WebCore::FrameView::layoutTimerFired):
(WebCore::FrameView::postLayoutTimerFired):
* page/FrameView.h:
* page/PageThrottler.cpp:
(WebCore::PageThrottler::throttleHysteresisTimerFired):
* page/PageThrottler.h:
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
(WebCore::AnimationControllerPrivate::animationTimerFired):
* page/animation/AnimationControllerPrivate.h:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::autoscrollTimerFired):
* platform/Scrollbar.h:
* platform/Timer.h:
(WebCore::Timer::Timer):
(WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::advanceAnimation):
* platform/graphics/BitmapImage.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::reloadTimerFired):
* platform/graphics/MediaPlayer.h:
* platform/graphics/ca/mac/LayerPool.h:
* platform/graphics/ca/mac/LayerPool.mm:
(WebCore::LayerPool::pruneTimerFired):
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
(WebCore::ImageBufferBackingStoreCache::timerFired):
* platform/graphics/cg/ImageBufferBackingStoreCache.h:
* platform/graphics/cg/SubimageCacheWithTimer.cpp:
(WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired):
* platform/graphics/cg/SubimageCacheWithTimer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::seekTimerFired):
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
(WebCore::ScrollAnimatorMac::initialScrollbarPaintTimerFired):
(WebCore::ScrollAnimatorMac::sendContentAreaScrolledTimerFired):
* platform/mock/DeviceOrientationClientMock.cpp:
(WebCore::DeviceOrientationClientMock::timerFired):
* platform/mock/DeviceOrientationClientMock.h:
* platform/network/NetworkStateNotifier.h:
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::failureTimerFired):
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/mac/NetworkStateNotifierMac.cpp:
(WebCore::NetworkStateNotifier::networkStateChangeTimerFired):
* rendering/ImageQualityController.cpp:
(WebCore::ImageQualityController::highQualityRepaintTimerFired):
* rendering/ImageQualityController.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::timerFired):
* rendering/RenderButton.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayersTimerFired):
(WebCore::RenderLayerCompositor::layerFlushTimerFired):
(WebCore::RenderLayerCompositor::paintRelatedMilestonesTimerFired):
* rendering/RenderLayerCompositor.h:
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::timerFired):
* rendering/RenderMarquee.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired):
(WebCore::RenderNamedFlowThread::regionOversetChangeEventTimerFired):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::animationTimerFired):
* rendering/RenderProgress.h:
2014-01-11 Simon Fraser <simon.fraser@apple.com>
#ifdef out the contents of Touch* files for iOS.
* dom/Touch.h:
* dom/TouchEvent.h:
* dom/TouchList.h:
2014-01-11 Simon Fraser <simon.fraser@apple.com>
No need to include <ApplicationServices/ApplicationServices.h> in
the header. Can use <CoreGraphics/CoreGraphics.h> in the .cpp file.
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
* platform/graphics/cg/ImageBufferBackingStoreCache.h:
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Fix DOM headers: TARGET_OS_EMBEDDED -> TARGET_OS_IPHONE
and a drive-by cleanup of DOMUIKitExtensions.mm #includes.
* bindings/objc/DOMPrivate.h:
* bindings/objc/DOMUIKitExtensions.h:
* bindings/objc/DOMUIKitExtensions.mm:
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Fix use of GL_HALF_FLOAT_ARB on iOS.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::texSubImage2D):
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Fix build of SourceBufferPrivateAVFObjC.mm on iOS.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2014-01-11 Simon Fraser <simon.fraser@apple.com>
Fix use of nonexistent kCGColorSpaceSRGB on iOS.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::sRGBColorSpaceRef):
2014-01-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Some ScriptDebugServer Cleanup
https://bugs.webkit.org/show_bug.cgi?id=126793
Reviewed by Timothy Hatcher.
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::didContinue):
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
Move the special iOS WebThread EventLoop nesting handling here.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::handlePause):
* bindings/js/ScriptDebugServer.h:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorDebuggerAgent.h:
Remove unused headers and functions.
2014-01-11 David Kilzer <ddkilzer@apple.com>
[iOS] Add USE(IOSURFACE_CANVAS_BACKING_STORE) to fix build
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::ImageBuffer): The 'width' and 'height'
variables are only used by code protected by
USE(IOSURFACE_CANVAS_BACKING_STORE).
2014-01-11 David Kilzer <ddkilzer@apple.com>
[iOS] Multisampling is not available on iOS
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):
2014-01-10 David Kilzer <ddkilzer@apple.com>
[iOS] Fix build for HTMLImageElement::willRespondToMouseClickEvents()
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::willRespondToMouseClickEvents):
2014-01-10 Anders Carlsson <andersca@apple.com>
Fix test crashes.
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::~ProgressTracker):
Comment out the call to progressTrackerDestroyed for now.
2014-01-10 David Kilzer <ddkilzer@apple.com>
[iOS] Fix build for RenderEmbeddedObject::canHaveChildren()
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::canHaveChildren):
2014-01-10 Anders Carlsson <andersca@apple.com>
Tweak ProgressTrackerClient functions
https://bugs.webkit.org/show_bug.cgi?id=126808
Reviewed by Sam Weinig.
Rename the three progress state related member functions since it's up to the various
WebKit implementations to decide what to do - not everyone wants to post a notification.
Also add an originating progress frame parameter since WebKit2 doesn't report progress for
subframe navigation and we need to be able to keep track of that.
Finally, tweak ProgressTracker::completeProgress to get rid of an unnecessary hash lookup.
* loader/EmptyClients.h:
* loader/ProgressTracker.cpp:
(WebCore::ProgressItem::ProgressItem):
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::incrementProgress):
(WebCore::ProgressTracker::completeProgress):
* loader/ProgressTrackerClient.h:
2014-01-10 David Kilzer <ddkilzer@apple.com>
[iOS] Fix COMPILE_ASSERT by updating struct SameSizeAsStyleRareInheritedData
* rendering/style/StyleRareInheritedData.cpp:
2014-01-10 David Kilzer <ddkilzer@apple.com>
[iOS] Fix build of SubframeLoader.cpp
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
(WebCore::SubframeLoader::loadPlugin):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix Mac after r161747. One part of that is iOS specific.
Unreviewed build fix.
* bindings/js/GCController.cpp:
(WebCore::GCController::releaseExecutableMemory):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Fix GCController::releaseExecutableMemory
https://bugs.webkit.org/show_bug.cgi?id=126805
Reviewed by Sam Weinig and Mark Lam.
VM::dynamicGlobalObject has since been replaced by VMEntryScope.
Update to check entryScope instead of the dynamicGlobalObject.
Also, make this non-iOS only.
* bindings/js/GCController.h:
* bindings/js/GCController.cpp:
(WebCore::GCController::releaseExecutableMemory):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix HTMLMediaElement.o for iOS. Unreviewed build fix.
There is now local variable mediaElement. Just call the
functions since they are methods on this class.
Fix RequireUserGestureToShowPlaybackTargetPickerRestriction typos.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2014-01-10 Anders Carlsson <andersca@apple.com>
Move progress tracking functions from FrameLoaderClient to a new ProgressTrackerClient
https://bugs.webkit.org/show_bug.cgi?id=126801
Reviewed by Sam Weinig.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients):
* loader/EmptyClients.h:
* loader/FrameLoaderClient.h:
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::ProgressTracker):
(WebCore::ProgressTracker::~ProgressTracker):
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::progressCompleted):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::incrementProgress):
* loader/ProgressTracker.h:
* loader/ProgressTrackerClient.h: Added.
(WebCore::ProgressTrackerClient::~ProgressTrackerClient):
(WebCore::ProgressTrackerClient::progressTrackerDestroyed):
(WebCore::ProgressTrackerClient::willChangeEstimatedProgress):
(WebCore::ProgressTrackerClient::didChangeEstimatedProgress):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::PageClients::PageClients):
* page/Page.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix RenderObject.o for iOS. Unreviewed build fix.
r156285 renamed firstChild() to firstChildSlow(), so update
occurances in IOS_TEXT_AUTOSIZING code. Also account for a
RenderObject::style reference / pointer change.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::traverseNext):
(WebCore::includeNonFixedHeight):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix MediaPlayerPrivateMediaSourceAVFObjC.o for iOS. Unreviewed build fix.
Import CALayer, which Mac must have been getting some other way.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix TileGrid.o for iOS. Unreviewed build fix.
Explicitly use namespace std in std::pair.
* platform/ios/TileGrid.mm:
(WebCore::isFartherAway):
(WebCore::TileGrid::dropDistantTiles):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix RenderImage.o for iOS. Unreviewed build fix.
inlineBoxWrapper() returns an InlineElementBox type, which is an InlineBox but
without including InlineElementBox.h, iOS didn't know what an InlineElementBox was!
* rendering/RenderImage.cpp:
2014-01-10 David Kilzer <ddkilzer@apple.com>
[iOS] Fix macros in Scrollbar::supportsUpdateOnSecondaryThread()
Fixes the following build error:
WebCore/platform/Scrollbar.cpp:552:22: error: '__MAC_OS_X_VERSION_MIN_REQUIRED' is not defined, evaluates to 0 [-Werror,-Wundef]
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000 && ENABLE(ASYNC_SCROLLING)
^
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix RenderFileUploadControl.o for iOS. Unreviewed build fix.
WebCore::theme() returns a reference now, not a pointer.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix HTMLPlugInImageElement.o for iOS. Unreviewed build fix.
Forgot to upstream YouTubeEmbedShadowElement.*. Do so and
add the files to the Xcode project so they build.
* WebCore.xcodeproj/project.pbxproj:
* html/shadow/YouTubeEmbedShadowElement.cpp: Added.
(WebCore::YouTubeEmbedShadowElement::create):
(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
(WebCore::YouTubeEmbedShadowElement::pluginElement):
(WebCore::YouTubeEmbedShadowElement::shadowPseudoId):
* html/shadow/YouTubeEmbedShadowElement.h: Added.
2014-01-10 David Kilzer <ddkilzer@apple.com>
[iOS] Update EditorIOS.mm to switch from pointers to references
* editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
(WebCore::Editor::insertParagraphSeparatorInQuotedContent):
(WebCore::styleForSelectionStart):
(WebCore::Editor::selectionInWebArchiveFormat):
(WebCore::Editor::writeImageToPasteboard):
(WebCore::Editor::WebContentReader::readWebArchive):
(WebCore::Editor::WebContentReader::readRTFD):
(WebCore::Editor::WebContentReader::readRTF):
(WebCore::uniqueURLWithRelativePart):
(WebCore::Editor::WebContentReader::readPlainText):
(WebCore::Editor::webContentFromPasteboard):
(WebCore::Editor::createFragmentAndAddResources):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Push InspectorAgent down into JSC, give JSC an InspectorController
https://bugs.webkit.org/show_bug.cgi?id=126763
Reviewed by Timothy Hatcher.
No new tests, no observable change in functionality.
* CMakeLists.txt:
* ForwardingHeaders/inspector/agent/InspectorAgent.h: Added.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
InspectorAgent moved to JavaScriptCore. Include forwarding header.
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::PageConsoleAgent):
(WebCore::PageConsoleAgent::~PageConsoleAgent):
* inspector/PageConsoleAgent.h:
(WebCore::PageConsoleAgent::create):
* inspector/InspectorApplicationCacheAgent.cpp:
* inspector/InspectorApplicationCacheAgent.h:
InspectorAgent was not used by these files, remove it.
* inspector/CommandLineAPIHost.cpp:
* inspector/CommandLineAPIHost.h:
(WebCore::CommandLineAPIHost::init):
* inspector/InspectorInstrumentation.cpp:
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::inspectorAgent):
(WebCore::InstrumentingAgents::setInspectorAgent):
Switch to Inspector::InspectorAgent where applicable.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
Manually add InspectorAgent to the InstrumentingAgents. It is one
of the agents that is always available in InstrumentingAgents.
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Add TextAutoSizing.* for iOS, and fix DeviceOrientationController creation.
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::Document):
* rendering/TextAutoSizing.cpp: Added.
(WebCore::cloneRenderStyleWithState):
(WebCore::TextAutoSizingKey::TextAutoSizingKey):
(WebCore::TextAutoSizingKey::~TextAutoSizingKey):
(WebCore::TextAutoSizingKey::operator=):
(WebCore::TextAutoSizingKey::ref):
(WebCore::TextAutoSizingKey::deref):
(WebCore::TextAutoSizingValue::numNodes):
(WebCore::TextAutoSizingValue::addNode):
(WebCore::TextAutoSizingValue::adjustNodeSizes):
(WebCore::TextAutoSizingValue::reset):
* rendering/TextAutoSizing.h: Added.
(WebCore::TextAutoSizingKey::doc):
(WebCore::TextAutoSizingKey::style):
(WebCore::TextAutoSizingKey::isValidDoc):
(WebCore::TextAutoSizingKey::isValidStyle):
(WebCore::TextAutoSizingKey::deletedKeyDoc):
(WebCore::TextAutoSizingKey::deletedKeyStyle):
(WebCore::operator==):
(WebCore::TextAutoSizingHash::hash):
(WebCore::TextAutoSizingHash::equal):
(WebCore::TextAutoSizingValue::create):
(WebCore::TextAutoSizingValue::TextAutoSizingValue):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix GraphicsLayerCA.o for iOS. Unreviewed build fix.
Use of systemMemoryLevel was missing include of SystemMemory.h.
* platform/graphics/ca/GraphicsLayerCA.cpp:
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix iOS build.
* bindings/objc/DOM.mm:
(-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
* bindings/objc/DOMExtensions.h:
* platform/DragImage.h:
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix iOS build.
Generated DOMTouch* and DOMGesture* files need to be in the project.
Exclude them on Mac via EXCLUDED_SOURCE_FILE_NAMES_macosx.
Use TARGET_OS_IPHONE instead of TARGET_OS_EMBEDDED in DOMPrivate.h
* Configurations/WebCore.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOMPrivate.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix RenderThemeIOS.o for iOS. Unreviewed build fix.
Typo referring to generated name. Should be "iOS" not "IOS".
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsScript):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix WebAccessibilityObjectWrapperIOS.o for iOS. Unreviewed build fix.
The upstreamed WebAccessibilityObjectWrapperIOS.mm was out of date, e.g.
it was using GSFonts. Just upstream a newer version of the file. Also
explicitly namespace qualify std::pair.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(AXAttributeStringSetStyle):
2014-01-10 Jinwoo Song <jinwoo7.song@samsung.com>
Remove willRespondToTouchEvents() which was used by chromium port
https://bugs.webkit.org/show_bug.cgi?id=126739
Reviewed by Alexey Proskuryakov.
willRespondToTouchEvents() was added to check if a node listens to touch events in r126945.
However, it is not used anywhere after chromium port is removed.
* dom/Node.cpp:
* dom/Node.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix SystemVersionMac.o for iOS. Unreviewed build fix.
Add missing expected function. Maybe we can avoid including
this file entirely on iOS, there was already a FIXME.
* platform/mac/SystemVersionMac.mm:
(WebCore::systemMarketingVersion):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix JSDOMWindowBase.o for iOS. Unreviewed build fix.
Add missing iOS method declarations.
* bindings/js/JSDOMWindowBase.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix InputType.o for iOS. Unreviewed build fix.
The RuntimeEnabledFeatures function pointer type should have a
const qualifier, because the implementations are all const.
* html/InputType.cpp:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix MediaPlayerPrivateIOS.o for iOS. Unreviewed build fix.
Add missing MediaPlayerProxy Objective C methods and forward declarations.
* platform/graphics/mac/MediaPlayerProxy.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix FrameSelection.o for iOS. Unreviewed build fix.
r160966 renamed rendererIsEditable to hasEditableStyle.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionFromNone):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix DragData.o for iOS. Unreviewed build fix.
String m_pasteboardName is unused on iOS, so ifdef it out.
* platform/DragData.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix FrameIOS.o for iOS. Unreviewed build fix.
Remove stale include to file that no longer exists. It was not needed.
* page/ios/FrameIOS.mm:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix MonthInputType.o for iOS. Unreviewed build fix.
When ENABLE_INPUT_MULTIPLE_FIELDS_UI was removed in r150876,
the wrong class name lingered. Fix it to be the base class.
* html/TimeInputType.cpp:
(WebCore::TimeInputType::TimeInputType):
2014-01-10 Andy Estes <aestes@apple.com>
[iOS] Build fix: make sure WTF_PLATFORM_IOS is defined when preprocessing
* DerivedSources.make:
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Use TARGET_OS_IPHONE in this API file, and #if TARGET_OS_MAC
for a non-iOS function.
* bindings/objc/DOMExtensions.h:
2014-01-10 David Kilzer <ddkilzer@apple.com>
Clean up architectures in xcconfig files
<http://webkit.org/b/126794>
Reviewed by Andy Estes.
* Configurations/Base.xcconfig:
* Configurations/WebCore.xcconfig: Remove armv6.
* DerivedSources.make: Remove armv6, armv7f. Sort.
- Add new arch.
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix iOS build
* Configurations/WebCore.xcconfig:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix iOS build.
* html/DateTimeLocalInputType.h:
(WebCore::DateTimeLocalInputType::DateTimeLocalInputType):
* loader/ios/DiskImageCacheIOS.h:
2014-01-10 Simon Fraser <simon.fraser@apple.com>
iOS build fix: add StyleRareInheritedData::compositionFillColor
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix MonthInputType.o for iOS. Unreviewed build fix.
When ENABLE_INPUT_MULTIPLE_FIELDS_UI was removed in r150876, the
BaseMonthInputType typedef was removed. However a use of it lingered.
Changing to match the base class name.
* html/MonthInputType.h:
(WebCore::MonthInputType::MonthInputType):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix RenderButton.o for iOS. Unreviewed build fix.
Missing prototype in header for override of the layout method.
* rendering/RenderButton.h:
2014-01-10 Simon Fraser <simon.fraser@apple.com>
A couple of iOS build fixes.
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Fix PlatformScreenIOS.mm for iOS. Unreviewed build fix.
PlatformScreen.h removed screenVerticalDPI and screenHorizontalDPI in r132419,
so remove the stale implementations on iOS. Also, add a notImplemented version
of screenColorProfile, which matches Mac and is unused in WebCore for this port.
* platform/ios/PlatformScreenIOS.mm:
(WebCore::screenColorProfile):
2014-01-10 Anders Carlsson <andersca@apple.com>
CTTE FrameTree
https://bugs.webkit.org/show_bug.cgi?id=126795
Reviewed by Tim Horton.
* page/Frame.cpp:
(WebCore::Frame::Frame):
* page/FrameTree.cpp:
(WebCore::FrameTree::transferChild):
(WebCore::FrameTree::appendChild):
(WebCore::FrameTree::actuallyAppendChild):
(WebCore::FrameTree::uniqueChildName):
(WebCore::FrameTree::scopedChild):
(WebCore::FrameTree::scopedChildCount):
(WebCore::FrameTree::child):
(WebCore::FrameTree::find):
(WebCore::FrameTree::isDescendantOf):
(WebCore::FrameTree::traverseNext):
(WebCore::FrameTree::traverseNextWithWrap):
(WebCore::FrameTree::traversePreviousWithWrap):
(WebCore::FrameTree::deepLastChild):
(WebCore::FrameTree::top):
* page/FrameTree.h:
(WebCore::FrameTree::FrameTree):
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix iOS build.
* loader/ResourceLoader.h:
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix iOS build.
* platform/graphics/ImageSource.h:
(WebCore::ImageSource::acceleratedImageDecodingEnabled):
(WebCore::ImageSource::setAcceleratedImageDecodingEnabled):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed EFL build fix after r161678.
static_cast a size_t to unsigned long for %lu format string.
* page/Console.cpp:
(WebCore::internalAddMessage):
2014-01-10 Benjamin Poulain <bpoulain@apple.com>
Remove the BlackBerry port from trunk
https://bugs.webkit.org/show_bug.cgi?id=126715
Reviewed by Anders Carlsson.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::readPixels):
* platform/graphics/ImageBuffer.cpp:
* platform/graphics/ImageBufferData.h:
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/NativeImagePtr.h:
* platform/graphics/OpenGLESShims.h:
* platform/graphics/Path.cpp:
(WebCore::Path::addPathForRoundedRect):
* platform/graphics/Path.h:
* platform/graphics/PlatformLayer.h:
* platform/graphics/filters/CustomFilterValidatedProgram.cpp:
* platform/graphics/filters/CustomFilterValidatedProgram.h:
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/gpu/DrawingBuffer.cpp:
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
* platform/graphics/opengl/Extensions3DOpenGLES.cpp:
(WebCore::Extensions3DOpenGLES::getGraphicsResetStatusARB):
* platform/graphics/opengl/Extensions3DOpenGLES.h:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
(WebCore::GraphicsContext3D::prepareTexture):
(WebCore::GraphicsContext3D::bindFramebuffer):
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::copyTexImage2D):
(WebCore::GraphicsContext3D::copyTexSubImage2D):
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::readPixels):
(WebCore::GraphicsContext3D::readPixelsAndConvertToBGRAIfNecessary):
(WebCore::GraphicsContext3D::reshapeFBOs):
* platform/network/NetworkStateNotifier.h:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
* platform/network/ResourceRequestBase.cpp:
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix CharsetData.cpp build for iOS
https://bugs.webkit.org/show_bug.cgi?id=126792
Reviewed by Mark Rowe.
CharsetData.cpp should have an empty CharsetTable list for iOS.
Achieve this with an iOS-specific encodings.txt file.
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* platform/text/mac/ios-encodings.txt: Added.
2014-01-10 Anders Carlsson <andersca@apple.com>
CTTE in NavigationScheduler
https://bugs.webkit.org/show_bug.cgi?id=126788
Reviewed by Tim Horton.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameScheduledNavigationImpl):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigationImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::frameScheduledNavigation):
(WebCore::InspectorInstrumentation::frameClearedScheduledNavigation):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::frameScheduledNavigation):
(WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
* inspector/InspectorPageAgent.h:
* loader/NavigationScheduler.cpp:
(WebCore::ScheduledNavigation::shouldStartTimer):
(WebCore::ScheduledNavigation::didStartTimer):
(WebCore::ScheduledNavigation::didStopTimer):
(WebCore::NavigationScheduler::NavigationScheduler):
(WebCore::NavigationScheduler::clear):
(WebCore::NavigationScheduler::shouldScheduleNavigation):
(WebCore::NavigationScheduler::scheduleRedirect):
(WebCore::NavigationScheduler::mustLockBackForwardList):
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::scheduleFormSubmission):
(WebCore::NavigationScheduler::scheduleRefresh):
(WebCore::NavigationScheduler::scheduleHistoryNavigation):
(WebCore::NavigationScheduler::timerFired):
(WebCore::NavigationScheduler::schedule):
(WebCore::NavigationScheduler::startTimer):
(WebCore::NavigationScheduler::cancel):
* loader/NavigationScheduler.h:
* page/Frame.cpp:
(WebCore::Frame::Frame):
2014-01-10 Myles C. Maxfield <mmaxfield@apple.com>
CSS word-spacing property does not obey percentages
https://bugs.webkit.org/show_bug.cgi?id=126674
Reviewed by Simon Fraser.
One change between CSS2.1 and CSS3 is that the word-spacing CSS property can
take percentages (of the width of the space character) in CSS3. In order to
implement this, the datatype must be changed from a float to a Length, which
can hold percentage values. Then, during layout, we can query the width of
the space character and update the Font's word-spacing value appropriately.
However, the RenderStyle still holds on to the Length (as a rare inherited
value).
Tests: fast/css3-text/css3-word-spacing-percentage/word-spacing-change-font.html
fast/css3-text/css3-word-spacing-percentage/word-spacing-percentage-parse.html
fast/css3-text/css3-word-spacing-percentage/word-spacing-percentage.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Use Font's computed value instead
of style's Length value.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): word-spacing and letter-spacing no longer are
parsed the same way.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyWordSpacing::applyValue): Construct a length from a given
CSSValue and set the style's word spacing with it.
(WebCore::ApplyPropertyWordSpacing::createHandler):
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Use ApplyPropertyWordSpacing.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::setLogicalWidthForTextRun): Use Font's computed value instead
of style's Length value.
* rendering/RenderText.cpp:
(WebCore::RenderText::computePreferredLogicalWidths): Ditto.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor): Opt-out of the SimpleLineLayout
if either the percentage or the length is nonzero.
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleText): Use Font's computed value instead
of style's Length value.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::wordSpacing):
(WebCore::RenderStyle::setWordSpacing): Consult the Font's space with to compute
percentage values, but hold on to the original Length.
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
* rendering/style/StyleRareInheritedData.h: Hold on to the specified Length
2014-01-10 Simon Fraser <simon.fraser@apple.com>
Fix the iOS build.
* platform/audio/mac/MediaSessionManagerMac.cpp:
2014-01-10 Simon Fraser <simon.fraser@apple.com>
iOS doesn't have <OpenGL/gl.h>; fix iOS build.
* platform/graphics/opengl/TemporaryOpenGLSetting.cpp:
2014-01-10 Andy Estes <aestes@apple.com>
[iOS] Build Fix: Properly add $SDKROOT/usr/local/include/ to the search path when building PublicDOMInterfaces.h
* bindings/scripts/CodeGeneratorObjC.pm:
(ReadPublicInterfaces):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unimplemented or static ScriptDebugServer features
https://bugs.webkit.org/show_bug.cgi?id=126784
Reviewed by Timothy Hatcher.
These features are unimplemented in the backend, and unused by the
current frontend. Most deal with features that were supported by v8
and are as yet unimplemented by JSC. If we decide to add such features
we can reimplement without conforming to an old implementation.
* bindings/js/ScriptDebugServer.cpp:
* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptProfiler.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::disable):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::reload):
(WebCore::InspectorPageAgent::frameNavigated):
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::didClearMainFrameWindowObject):
* inspector/protocol/Page.json:
* inspector/protocol/Profiler.json:
2014-01-10 David Kilzer <ddkilzer@apple.com>
[iOS] Remove unused variable from TileGrid::dropTilesBetweenRects()
Fixes the following build error:
WebCore/platform/ios/TileGrid.mm:88:23: error: unused variable 'end' [-Werror,-Wunused-variable]
TileMap::iterator end = m_tiles.end();
^
* platform/ios/TileGrid.mm:
(WebCore::TileGrid::dropTilesBetweenRects): Remove unused
variable now that the for loop uses an auto iterator.
2014-01-10 Dean Jackson <dino@apple.com>
Implement OES texture half float linear
https://bugs.webkit.org/show_bug.cgi?id=125060
Reviewed by Brent Fulgham.
Test: fast/canvas/webgl/oes-texture-half-float-linear.html
* CMakeLists.txt: Add new files.
* DerivedSources.cpp: Ditto.
* DerivedSources.make: Generate new file from IDL.
* GNUmakefile.list.am: Add new files.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: New files for OESTextureHalfFloatLinear.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS): Map from extension name to native object.
* html/canvas/OESTextureHalfFloatLinear.cpp: Added. New files. These are boiler-plate.
* html/canvas/OESTextureHalfFloatLinear.h: Added.
* html/canvas/OESTextureHalfFloatLinear.idl: Added.
* html/canvas/WebGLExtension.h: Add new enum for the new extension.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getExtension): Create the extension object if the
context is asked for one.
(WebCore::WebGLRenderingContext::getSupportedExtensions): Add the new extension to the
list of supported extensions. Actually remember to do it this time :)
(WebCore::WebGLRenderingContext::checkTextureCompleteness): Need to check for the half-float
extension as well, and update the log message.
* html/canvas/WebGLRenderingContext.h: New extension object.
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::WebGLTexture):
(WebCore::WebGLTexture::needToUseBlackTexture): Check for half-float type.
(WebCore::WebGLTexture::update): Mark a texture as half-float if necessary.
* html/canvas/WebGLTexture.h:
* platform/graphics/Extensions3D.h: Add a comment about the new extension.
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension): This extension is available
when GL_ARB_texture_float is supported, so add the name to the translation.
2014-01-10 Brent Fulgham <bfulgham@apple.com>
[WebGL] Correct uniform input validation for texture sampler uniform
https://bugs.webkit.org/show_bug.cgi?id=126775
Reviewed by Dean Jackson.
Added fast/canvas/webgl/uniform-samplers-test.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::uniform1iv): Access Int32Array data properly.
2014-01-10 Manuel Rego Casasnovas <rego@igalia.com>
[GTK] Unreviewed build fix after r161644.
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::setFormat):
2014-01-10 Anders Carlsson <andersca@apple.com>
Remove an unused FrameLoader function
https://bugs.webkit.org/show_bug.cgi?id=126785
Reviewed by Beth Dakin.
* WebCore.exp.in:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::setState):
* loader/FrameLoader.h:
2014-01-10 Benjamin Poulain <bpoulain@apple.com>
Remove the BlackBerry port from trunk
https://bugs.webkit.org/show_bug.cgi?id=126715
Reviewed by Anders Carlsson.
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypesForEncoding):
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
* platform/PlatformMouseEvent.h:
* platform/PlatformTouchEvent.h:
(WebCore::PlatformTouchEvent::PlatformTouchEvent):
* platform/PlatformTouchPoint.h:
* platform/ScrollAnimatorNone.cpp:
(WebCore::ScrollAnimator::create):
* platform/URL.cpp:
(WebCore::URL::parse):
(WebCore::portAllowed):
* platform/Widget.h:
* platform/graphics/ANGLEWebKitBridge.h:
* platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
* platform/graphics/DisplayRefreshMonitor.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatRect.h:
* platform/graphics/FloatSize.h:
* platform/graphics/FontCache.h:
* platform/graphics/FontPlatformData.h:
* platform/graphics/GlyphBuffer.h:
* platform/graphics/Gradient.cpp:
* platform/graphics/Gradient.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContext3D.h:
2014-01-10 Timothy Hatcher <timothy@apple.com>
Clean up and fix some issues with stdout formatting of console messages.
* Fix URLs not printing line numbers unless column number is > 0.
* Change "CONSOLEAPI" to "CONSOLE" for the source.
* Clean up how console.trace outputs and print URL, line and column for each frame.
* Print "(unknown)" for anonymous and native code call frames.
https://bugs.webkit.org/show_bug.cgi?id=126767
Reviewed by Joseph Pecoraro.
* page/Console.cpp:
(WebCore::internalAddMessage):
* page/PageConsole.cpp:
(WebCore::PageConsole::printSourceURLAndPosition):
(WebCore::PageConsole::printMessageSourceAndLevelPrefix):
* page/PageConsole.h:
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Fill in missing WebCoreThread function pointers
https://bugs.webkit.org/show_bug.cgi?id=126776
Reviewed by Timothy Hatcher.
* platform/ios/wak/WebCoreThreadSystemInterface.cpp:
(InitWebCoreThreadSystemInterface):
2014-01-10 Yongjun Zhang <yongjun_zhang@apple.com>
Clear unparented tiled layers on memory pressure.
https://bugs.webkit.org/show_bug.cgi?id=126737
Reviewed by Simon Fraser.
TileController hold unparented tiles for a short period of time (1 -3 sec); we should clear these unparented
tiles immediately if we are under memory pressure.
The patch does 3 things to improve the behavior:
1) When the system free memory is low (<35%), reduce the tiling threshold. This could reduce
the peak memory usage when system is under low memory since we will convert more web layers into
tiled backing.
2) Under memory pressure, immediately clear all unparented tiles.
3) Add a cap (16 tiles) to limit the total number of unparented tiles in TileController's.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj: Add a new class TileControllerMemoryHandler.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::requiresTiledLayer): Use a smaller tiling threshold if the system free memory is low.
* platform/graphics/ca/mac/TileController.h:
(WebCore::TileController::numberOfUnparentedTiles):
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::startedNewCohort):
(WebCore::TileController::removeUnparentedTilesNow): Remove all unparentd tiles.
* platform/ios/MemoryPressureHandlerIOS.mm:
* platform/ios/TileControllerMemoryHandlerIOS.cpp: Added.
(WebCore::TileControllerMemoryHandler::removeTileController):
(WebCore::TileControllerMemoryHandler::totalUnparentedTiledLayers):
(WebCore::TileControllerMemoryHandler::tileControllerGainUnparentedTiles):
(WebCore::TileControllerMemoryHandler::trimUnparentedTilesToTarget): Trims the number of unparented tiles until
it reaches the target.
(WebCore::tileControllerMemoryHandler):
* platform/ios/TileControllerMemoryHandlerIOS.h: Added.
(WebCore::TileControllerMemoryHandler::TileControllerMemoryHandler):
2014-01-10 Joseph Pecoraro <pecoraro@apple.com>
[CSS Blending] Log blending as a layer creation reason in the WI
https://bugs.webkit.org/show_bug.cgi?id=126159
Reviewed by Timothy Hatcher.
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
* inspector/protocol/LayerTree.json:
2014-01-10 Andy Estes <aestes@apple.com>
Fix some iOS build errors during bindings generation.
* bindings/objc/PublicDOMInterfaces.h: Included
WebKitAdditions/PublicDOMInterfacesIOS.h and change
-[DOMRGBColor color] to return a CGColorRef on iOS.
2014-01-10 Timothy Hatcher <timothy@apple.com>
Prevent some resources from showing up in Web Inspector as years in duration.
No WebKit port passed a monotonic time to InspectorInstrumentation::didFinishLoading -- except Chromium.
https://bugs.webkit.org/show_bug.cgi?id=126760
Reviewed by Joseph Pecoraro.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didFinishLoadingImpl):
Revert part of r102961 to use finishTime as-is and not expect a monotonic time.
2014-01-10 Dirk Schulze <krit@webkit.org>
Make clipping path from basic-shapes relative to <box> value
https://bugs.webkit.org/show_bug.cgi?id=126206
Reviewed by Simon Fraser.
Tests: css3/masking/clip-path-circle-border-box.html
css3/masking/clip-path-circle-bounding-box.html
css3/masking/clip-path-circle-content-box.html
css3/masking/clip-path-circle-margin-box.html
css3/masking/clip-path-circle-padding-box.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath): Add switch to differ between boxes
and use different reference boxes to size the clipping path.
2014-01-10 Youenn Fablet <youennf@gmail.com>
Correctly set XHR loadend attributes (loaded and total).
https://bugs.webkit.org/show_bug.cgi?id=120828
Reviewed by Alexey Proskuryakov.
Added correct initialization of lengthComputable, loaded and total attributes
to XHR ProgressEvent events (load, loadstart, loadend, abort, error and timeout).
XMLHttpRequestProgressEventThrottle and XMLHttpRequestUpload now keep persistent knowledge
of m_loaded and m_total values with this patch.
Code refactoring to handle event dispatching in case of error in a single manner.
XMLHttpRequestProgressEventThrottle::dispatchProgressEvent is renamed as dispatchThrottledProgressEvent
XMLHttpRequestProgressEventThrottle::dispatchEventAndLoadend is replaced by dispatchProgressEvent(const AtomicString&)
Fixed assertion issues over bug 120828 patch
Tests: http/tests/xmlhttprequest/loadstart-event-init.html
http/tests/xmlhttprequest/onabort-progressevent-attributes.html
http/tests/xmlhttprequest/onload-progressevent-attributes.html
http/tests/xmlhttprequest/upload-onabort-progressevent-attributes.html
http/tests/xmlhttprequest/upload-onload-progressevent-attributes.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::callReadyStateChangeListener): changed readystatechange event from ProgressEvent to Event (not cancellable, not bubblable) to better match the spec
(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::abort): code refactoring to handle error event dispatching in a single way
(WebCore::XMLHttpRequest::networkError): code refactoring to handle error event dispatching in a single way
(WebCore::XMLHttpRequest::abortError): code refactoring to handle error event dispatching in a single way
(WebCore::XMLHttpRequest::didSendData):
(WebCore::XMLHttpRequest::didReceiveData):
(WebCore::XMLHttpRequest::dispatchErrorEvents): dispatch progress events in case of error
(WebCore::XMLHttpRequest::didTimeout): code refactoring to handle error event dispatching in a single way
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestProgressEventThrottle.cpp: before the patch, the fact that a progress event is being throttled is stored indirectly (m_loaded or m_total not equal to zero). With the patch, this information is stored in m_hasThrottledProgressEvent. The m_loaded and m_total values are no longer set back to zero after a progress event is dispatched. This allows using these values to correctly initialize other ProgressEvent events (in particular loadend, abort, timeout...)
(WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEvent): always update the new m_loaded and m_total values. If progress event is not sent as part of the function call, store the fact that a progress event is being throttled through m_hasThrottledProgressEvent.
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent): used to send any ProgressEvent event that is not be throttled
(WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent): after the call, no progress event is throttled anymore
(WebCore::XMLHttpRequestProgressEventThrottle::fired): after the call, no progress event is throttled anymore
(WebCore::XMLHttpRequestProgressEventThrottle::hasEventToDispatch):
(WebCore::XMLHttpRequestProgressEventThrottle::suspend):
* xml/XMLHttpRequestProgressEventThrottle.h: introduced m_hasThrottledProgressEvent which stores whether a progress event is being throttled and m_computableLength which is used to initialize ProgressEvent computableLength
* xml/XMLHttpRequestUpload.cpp:
(WebCore::XMLHttpRequestUpload::XMLHttpRequestUpload):
(WebCore::XMLHttpRequestUpload::dispatchProgressEvent):
* xml/XMLHttpRequestUpload.h: introduced m_loaded, m_total and m_lengthComputable, similarly to XMLHttpRequestProgressEventThrottle
2014-01-10 Bear Travis <betravis@adobe.com>
[CSS Shapes] Change parseBasicShape to return a CSSPrimitiveValue
https://bugs.webkit.org/show_bug.cgi?id=126713
Reviewed by Dirk Schulze.
Avoid the duplicated code wrapping the CSSBasicShape in a CSSPrimitiveValue
by having parseBasicShape return a CSSPrimitiveValue reference.
Refactoring, no new tests.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShapeProperty):
(WebCore::CSSParser::parseClipPath):
(WebCore::CSSParser::parseBasicShape):
* css/CSSParser.h:
2014-01-10 Piotr Grad <p.grad@samsung.com>
Possible crash in ApplicationCache::removeResource.
https://bugs.webkit.org/show_bug.cgi?id=126695
Reviewed by Alexey Proskuryakov.
No new tests.
Iterator variable was used after it was removed.
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::removeResource):
2014-01-10 Daniel Bates <dabates@apple.com>
Another build fix for the Production Mac build following <http://trac.webkit.org/changeset/161638>
(https://bugs.webkit.org/show_bug.cgi?id=126698)
Move the logic for appending the port-specific IDL files {Touch, TouchEvent, TouchList}.idl to the
list of binding IDLs (BINDING_IDLS) before the definition of variables DOM_CLASSES and JS_DOM_HEADERS
so that we generate the DOM and JS bindings for these IDLs.
* DerivedSources.make:
2014-01-10 Anders Carlsson <andersca@apple.com>
Remove supportMultipleWindows setting
https://bugs.webkit.org/show_bug.cgi?id=126772
Reviewed by Beth Dakin.
This setting was added in https://bugs.webkit.org/show_bug.cgi?id=99716 for the Chromium port
and is unused by everyone else so get rid of it.
* loader/FrameLoader.cpp:
(WebCore::createWindow):
* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
* page/Settings.in:
2014-01-10 Benjamin Poulain <bpoulain@apple.com>
Remove the BlackBerry port from trunk
https://bugs.webkit.org/show_bug.cgi?id=126715
Reviewed by Anders Carlsson.
* dom/TouchEvent.cpp:
(WebCore::TouchEvent::TouchEvent):
(WebCore::TouchEvent::initTouchEvent):
* dom/TouchEvent.h:
* dom/ViewportArguments.cpp:
* dom/ViewportArguments.h:
* history/HistoryItem.h:
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::createResourceHandle):
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::startLoading):
* page/NavigatorBase.cpp:
* page/Settings.cpp:
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create):
* platform/Cursor.cpp:
* platform/Cursor.h:
(WebCore::Cursor::Cursor):
* platform/DragData.h:
* platform/DragImage.h:
* plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::defaultPluginDirectories):
(WebCore::PluginDatabase::isPreferredPluginDirectory):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintsIntoWindow):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::shouldRespectImageOrientation):
* testing/Internals.cpp:
(WebCore::Internals::getCurrentCursorInfo):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerScriptLoader::load):
* workers/Worker.cpp:
(WebCore::Worker::create):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::createResourceRequest):
* workers/WorkerScriptLoader.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
2014-01-10 Benjamin Poulain <bpoulain@apple.com>
Remove the BlackBerry port from trunk
https://bugs.webkit.org/show_bug.cgi?id=126715
Reviewed by Anders Carlsson.
* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::initProtocolHandlerWhitelist):
* UseJSC.cmake:
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/js/GCController.cpp:
(WebCore::GCController::GCController):
(WebCore::GCController::garbageCollectSoon):
* bindings/js/GCController.h:
2014-01-10 Daniel Bates <dabates@apple.com>
Fix the WebCore, WebKit build targets following <http://trac.webkit.org/changeset/161638>
(https://bugs.webkit.org/show_bug.cgi?id=126698)
Tell Xcode that the supported platforms for all WebKit targets are iOS and OS X.
* Configurations/Base.xcconfig:
2014-01-09 Andy Estes <aestes@apple.com>
[iOS] Upstream iOS changes to MigrateHeaders.make
https://bugs.webkit.org/show_bug.cgi?id=126731
Reviewed by David Kilzer.
* WebCore.xcodeproj/project.pbxproj: Mark an iOS-specific header at
Private that will later be migrated by WebKit.
2014-01-10 Daniel Bates <dabates@apple.com>
Fix the Production Mac build following <http://trac.webkit.org/changeset/161638>
(https://bugs.webkit.org/show_bug.cgi?id=126698)
Substitute JAVASCRIPTCORE_PRIVATE_HEADERS_DIR_Production_ for JAVASCRIPTCORE_PRIVATE_HEADERS_Production_.
* Configurations/WebCore.xcconfig:
2014-01-10 Anders Carlsson <andersca@apple.com>
Add a missing include.
* Modules/webdatabase/DatabaseManager.h:
2014-01-10 Anders Carlsson <andersca@apple.com>
Use STL threading primitives in DatabaseDetails and DatabaseManager
https://bugs.webkit.org/show_bug.cgi?id=126759
Reviewed by Geoffrey Garen.
* Modules/webdatabase/DatabaseDetails.h:
(WebCore::DatabaseDetails::DatabaseDetails):
(WebCore::DatabaseDetails::threadID):
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::registerDatabaseContext):
(WebCore::DatabaseManager::unregisterDatabaseContext):
(WebCore::DatabaseManager::didConstructDatabaseContext):
(WebCore::DatabaseManager::didDestructDatabaseContext):
(WebCore::DatabaseManager::addProposedDatabase):
(WebCore::DatabaseManager::removeProposedDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
* Modules/webdatabase/DatabaseManager.h:
2014-01-10 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161629.
http://trac.webkit.org/changeset/161629
https://bugs.webkit.org/show_bug.cgi?id=126762
Fails svg/custom/conditional-processing-2.html (Requested by
ap on #webkit).
* svg/SVGSwitchElement.cpp:
(WebCore::SVGSwitchElement::childShouldCreateRenderer):
* svg/SVGTests.cpp:
(WebCore::SVGTests::hasExtension):
(WebCore::SVGTests::isValid):
2014-01-10 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix since r161589.
The changeset causes a compile failure with --no-svg.
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::drawGlyphBuffer):
2014-01-10 Przemyslaw Szymanski <p.szymanski3@samsung.com>
[WebGL] Removing unnecessary pointer checks
https://bugs.webkit.org/show_bug.cgi?id=124046
Reviewed by Brent Fulgham.
We do not need to check for a null array three times in
the same call. Let's just do it once!
No new tests. Covered by existing ones.
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::associateBufferData):
2014-01-10 Daniel Bates <dabates@apple.com>
Speculative build fix for Windows following <http://trac.webkit.org/changeset/161638>
(https://bugs.webkit.org/show_bug.cgi?id=126698)
Reviewed by David Kilzer.
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
2014-01-10 Przemyslaw Szymanski <p.szymanski3@samsung.com>
[WebGL] Wrong condition order in the if statement
https://bugs.webkit.org/show_bug.cgi?id=125000
Reviewed by Brent Fulgham.
We should only pay the cost of string comparison once. The
current logic requires a string comparison every time we
pass through the function. Instead, by reordering the statements
we can short-circuit through the boolean test after the initial
setup is complete.
No new tests. No behaviour changes.
* platform/graphics/opengl/Extensions3DOpenGLES.cpp:
(WebCore::Extensions3DOpenGLES::supportsExtension):
2014-01-10 Anders Carlsson <andersca@apple.com>
CTTE in AudioContext::AutoLocker
https://bugs.webkit.org/show_bug.cgi?id=126758
Reviewed by Antti Koivisto.
* Modules/webaudio/AudioBasicInspectorNode.cpp:
(WebCore::AudioBasicInspectorNode::connect):
(WebCore::AudioBasicInspectorNode::disconnect):
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::setBuffer):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::refNode):
(WebCore::AudioContext::deleteMarkedNodes):
(WebCore::AudioContext::removeMarkedSummingJunction):
* Modules/webaudio/AudioContext.h:
(WebCore::AudioContext::AutoLocker::AutoLocker):
(WebCore::AudioContext::AutoLocker::~AutoLocker):
* Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::enableOutputsIfNecessary):
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
* Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::setOversample):
2014-01-10 Antti Koivisto <antti@apple.com>
Use element iterators more
https://bugs.webkit.org/show_bug.cgi?id=126756
Reviewed by Anders Carlsson.
* dom/VisitedLinkState.cpp:
(WebCore::VisitedLinkState::invalidateStyleForAllLinks):
(WebCore::VisitedLinkState::invalidateStyleForLink):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::renderMeter):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::renderProgress):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::ensureInsertionPointList):
* style/StyleResolveTree.cpp:
2014-01-10 Daniel Bates <dabates@apple.com>
Attempt to fix the iOS build after <http://trac.webkit.org/changeset/161589>
(https://bugs.webkit.org/show_bug.cgi?id=126654)
* platform/audio/ios/AudioSessionIOS.mm: Import header PassOwnPtr.h so that we can use adoptPtr().
2014-01-10 Daniel Bates <dabates@apple.com>
Attempt to fix the build after <http://trac.webkit.org/changeset/161638>
(https://bugs.webkit.org/show_bug.cgi?id=126698)
Substitute tab characters for space characters.
* DerivedSources.make:
2014-01-10 Anders Carlsson <andersca@apple.com>
DOMWindow::showModalDialog should use std::function
https://bugs.webkit.org/show_bug.cgi?id=126753
Reviewed by Antti Koivisto.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::DialogHandler::dialogCreated):
(WebCore::JSDOMWindow::showModalDialog):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::showModalDialog):
* page/DOMWindow.h:
2014-01-10 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore and Tools miscellaneous changes
https://bugs.webkit.org/show_bug.cgi?id=126698
Reviewed by David Kilzer.
* Configurations/Base.xcconfig:
* Configurations/WebCore.xcconfig:
* Configurations/WebCoreTestSupport.xcconfig:
* Configurations/iOS.xcconfig: Added.
* DerivedSources.make:
* English.lproj/Localizable.strings:
* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp: Copied from Source/WebCore/editing/TextAffinity.h.
(WebCore::stringForPlaybackTargetAvailability):
(WebCore::WebKitPlaybackTargetAvailabilityEvent::WebKitPlaybackTargetAvailabilityEvent):
* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h: Added.
(WebCore::WebKitPlaybackTargetAvailabilityEventInit::WebKitPlaybackTargetAvailabilityEventInit):
(WebCore::WebKitPlaybackTargetAvailabilityEvent::~WebKitPlaybackTargetAvailabilityEvent):
(WebCore::WebKitPlaybackTargetAvailabilityEvent::create):
(WebCore::WebKitPlaybackTargetAvailabilityEvent::availability):
* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl: Copied from Source/WebCore/editing/DeleteButton.h.
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::Geolocation):
(WebCore::Geolocation::canSuspend):
(WebCore::Geolocation::suspend):
(WebCore::Geolocation::resume):
(WebCore::Geolocation::resumeTimerFired):
(WebCore::Geolocation::resetAllGeolocationPermission):
(WebCore::Geolocation::stop):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::positionChanged):
(WebCore::Geolocation::setError):
* Modules/geolocation/Geolocation.h:
* Modules/geolocation/NavigatorGeolocation.cpp:
(WebCore::NavigatorGeolocation::resetAllGeolocationPermission):
* Modules/geolocation/NavigatorGeolocation.h:
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::SpeechSynthesis):
(WebCore::SpeechSynthesis::speak):
* Modules/speech/SpeechSynthesis.h:
(WebCore::SpeechSynthesis::userGestureRequiredForSpeechStart):
(WebCore::SpeechSynthesis::removeBehaviorRestriction):
* Modules/webaudio/AudioContext.cpp:
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/AudioScheduledSourceNode.cpp:
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/DatabaseBackendBase.cpp:
(WebCore::DatabaseBackendBase::performOpenAndVerify):
(WebCore::DatabaseBackendBase::incrementalVacuumIfNeeded):
* Modules/webdatabase/DatabaseContext.cpp:
(WebCore::DatabaseContext::DatabaseContext):
(WebCore::DatabaseContext::databaseThread):
(WebCore::DatabaseContext::setPaused):
* Modules/webdatabase/DatabaseContext.h:
* Modules/webdatabase/DatabaseManagerClient.h:
* Modules/webdatabase/DatabaseTask.cpp:
(WebCore::DatabaseTask::performTask):
(WebCore::Database::DatabaseTransactionTask::shouldPerformWhilePaused):
* Modules/webdatabase/DatabaseTask.h:
* Modules/webdatabase/DatabaseThread.cpp:
(WebCore::DatabaseThread::DatabaseThread):
(WebCore::DatabaseThread::requestTermination):
(WebCore::DatabaseUnpauseTask::create):
(WebCore::DatabaseUnpauseTask::shouldPerformWhilePaused):
(WebCore::DatabaseUnpauseTask::DatabaseUnpauseTask):
(WebCore::DatabaseUnpauseTask::doPerformTask):
(WebCore::DatabaseUnpauseTask::debugTaskName):
(WebCore::DatabaseThread::setPaused):
(WebCore::DatabaseThread::handlePausedQueue):
(WebCore::DatabaseThread::databaseThread):
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFile):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::isZeroByteFile):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):
(WebCore::DatabaseTracker::openDatabaseMutex):
(WebCore::DatabaseTracker::emptyDatabaseFilesRemovalTaskWillBeScheduled):
(WebCore::DatabaseTracker::emptyDatabaseFilesRemovalTaskDidFinish):
(WebCore::DatabaseTracker::setDatabasesPaused):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/SQLTransactionBackend.cpp:
(WebCore::SQLTransactionBackend::shouldPerformWhilePaused):
* Modules/webdatabase/SQLTransactionBackend.h:
* Resources/DictationPhraseWithAlternativesDot.png: Added.
* Resources/DictationPhraseWithAlternativesDot@2x.png: Added.
* Resources/SpellingDot.png: Added.
* Resources/SpellingDot@2x.png: Added.
* Resources/decrementArrow.tiff: Added.
* Resources/hScrollControl_left.png: Added.
* Resources/hScrollControl_middle.png: Added.
* Resources/hScrollControl_right.png: Added.
* Resources/incrementArrow.tiff: Added.
* Resources/markedLeft.png: Added.
* Resources/markedMiddle.png: Added.
* Resources/markedRight.png: Added.
* Resources/vScrollControl_bottom.png: Added.
* Resources/vScrollControl_middle.png: Added.
* Resources/vScrollControl_top.png: Added.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/GCController.cpp:
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::releaseExecutableMemory):
* bindings/js/GCController.h:
* bindings/js/JSCallbackData.h:
(WebCore::JSCallbackData::~JSCallbackData):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::supportsProfiling):
(WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
(WebCore::JSDOMWindowBase::commonVM):
(WebCore::JSDOMWindowBase::commonVMExists):
(WebCore::JSDOMWindowBase::commonVMInternal):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::touch):
(WebCore::JSDOMWindow::touchList):
* bindings/js/JSDeviceOrientationEventCustom.cpp:
(WebCore::JSDeviceOrientationEvent::webkitCompassHeading):
(WebCore::JSDeviceOrientationEvent::webkitCompassAccuracy):
(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
* bindings/js/JSMainThreadExecState.h:
* bindings/js/JSTouchCustom.cpp:
* bindings/js/JSTouchListCustom.cpp:
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::didContinue):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::initializeThreading):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::handlePause):
* bindings/js/ios/TouchConstructors.cpp: Added.
* bindings/objc/DOM.mm:
(WebCore::wkQuadFromFloatQuad):
(WebCore::kit):
(WebCore::min4):
(WebCore::max4):
(WebCore::emptyQuad):
(-[WKQuadObject initWithQuad:]):
(-[WKQuadObject quad]):
(-[WKQuadObject boundingBox]):
(-[DOMNode boundingBox]):
(-[DOMNode absoluteQuad]):
(-[DOMNode absoluteQuadAndInsideFixedPosition:]):
(-[DOMNode boundingBoxUsingTransforms]):
(-[DOMNode lineBoxQuads]):
(-[DOMNode _linkElement]):
(-[DOMNode hrefURL]):
(-[DOMNode hrefTarget]):
(-[DOMNode hrefFrame]):
(-[DOMNode hrefLabel]):
(-[DOMNode hrefTitle]):
(-[DOMNode boundingFrame]):
(-[DOMNode innerFrameQuad]):
(-[DOMNode computedFontSize]):
(-[DOMNode nextFocusNode]):
(-[DOMNode previousFocusNode]):
(-[DOMRange boundingBox]):
(-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
(-[DOMElement _font]):
(-[DOMHTMLLinkElement _mediaQueryMatchesForOrientation:]):
(-[DOMHTMLLinkElement _mediaQueryMatches]):
* bindings/objc/DOMEvents.h:
* bindings/objc/DOMEvents.mm:
(kitClass):
* bindings/objc/DOMExtensions.h:
* bindings/objc/DOMHTML.mm:
(-[DOMHTMLElement scrollYOffset]):
(-[DOMHTMLElement setScrollXOffset:scrollYOffset:]):
(-[DOMHTMLElement setScrollXOffset:scrollYOffset:adjustForIOSCaret:]):
(-[DOMHTMLElement absolutePosition::::]):
(-[DOMHTMLInputElement _autocapitalizeType]):
(-[DOMHTMLTextAreaElement _autocapitalizeType]):
(-[DOMHTMLInputElement setValueWithChangeEvent:]):
(-[DOMHTMLInputElement setValueAsNumberWithChangeEvent:]):
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMInternal.mm:
(wrapperCacheLock):
(getDOMWrapper):
(addDOMWrapper):
(removeDOMWrapper):
* bindings/objc/DOMPrivate.h:
* bindings/objc/DOMUIKitExtensions.h: Added.
* bindings/objc/DOMUIKitExtensions.mm: Added.
* bindings/objc/PublicDOMInterfaces.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeaderContentHeader):
(GenerateImplementationContentHeader):
(GenerateHeader):
(GenerateImplementation):
(GenerateCallbackImplementation):
* bindings/scripts/CodeGeneratorObjC.pm:
(ReadPublicInterfaces):
(GetClassName):
(IsCoreFoundationType):
(GetObjCType):
(AddIncludesForType):
(GenerateHeader):
(GenerateImplementation):
(WriteData):
* bindings/scripts/IDLAttributes.txt:
* bindings/scripts/preprocessor.pm:
(applyPreprocessor):
* bridge/objc/objc_class.mm:
(JSC::Bindings::ObjcClass::fieldNamed):
* bridge/objc/objc_instance.mm:
* config.h:
* dom/Document.cpp:
(WebCore::Document::addAutoSizingNode):
* dom/Document.h:
* dom/Document.idl:
* dom/ios/TouchEvents.cpp: Added.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle):
* editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::inputText):
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
(WebCore::CompositeEditCommand::moveParagraphs):
* editing/CompositeEditCommand.h:
* editing/DeleteButton.h:
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::enable):
(WebCore::DeleteButtonController::disable):
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::doApply):
* editing/DeleteSelectionCommand.h:
* editing/EditAction.h:
* editing/EditCommand.h:
(WebCore::EditCommand::isInsertTextCommand):
* editing/EditingStyle.cpp:
* editing/Editor.cpp:
(WebCore::ClearTextCommand::ClearTextCommand):
(WebCore::ClearTextCommand::editingAction):
(WebCore::ClearTextCommand::CreateAndApply):
(WebCore::Editor::handleTextEvent):
(WebCore::Editor::clearText):
(WebCore::Editor::insertDictationPhrases):
(WebCore::Editor::setDictationPhrasesAsChildOfElement):
(WebCore::Editor::confirmMarkedText):
(WebCore::Editor::setTextAsChildOfElement):
(WebCore::Editor::notifyComponentsOnChangedSelection):
(WebCore::Editor::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):
(WebCore::Editor::copy):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::setComposition):
(WebCore::Editor::showSpellingGuessPanel):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::markMisspellingsOrBadGrammar):
(WebCore::Editor::changeBackToReplacedString):
(WebCore::Editor::updateMarkersForWordsAffectedByEditing):
(WebCore::Editor::setIgnoreCompositionSelectionChange):
(WebCore::Editor::changeSelectionAfterCommand):
(WebCore::Editor::shouldChangeSelection):
(WebCore::Editor::respondToChangedSelection):
(WebCore::Editor::resolveTextCheckingTypeMask):
* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::executeClearText):
(WebCore::enabledCopy):
(WebCore::enabledCut):
(WebCore::enabledClearText):
(WebCore::createCommandMap):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::modifyExtendingRight):
(WebCore::FrameSelection::modifyExtendingForward):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingForward):
(WebCore::FrameSelection::modifyExtendingLeft):
(WebCore::FrameSelection::modifyExtendingBackward):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::modifyMovingBackward):
(WebCore::FrameSelection::setSelectedRange):
(WebCore::FrameSelection::focusedOrActiveStateChanged):
(WebCore::FrameSelection::updateAppearance):
(WebCore::FrameSelection::shouldDeleteSelection):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::setSelectionFromNone):
(WebCore::FrameSelection::shouldChangeSelection):
(WebCore::FrameSelection::expandSelectionToElementContainingCaretSelection):
(WebCore::FrameSelection::elementRangeContainingCaretSelection):
(WebCore::FrameSelection::expandSelectionToWordContainingCaretSelection):
(WebCore::FrameSelection::wordRangeContainingCaretSelection):
(WebCore::FrameSelection::expandSelectionToStartOfWordContainingCaretSelection):
(WebCore::FrameSelection::characterInRelationToCaretSelection):
(WebCore::FrameSelection::characterBeforeCaretSelection):
(WebCore::FrameSelection::characterAfterCaretSelection):
(WebCore::FrameSelection::wordOffsetInRange):
(WebCore::FrameSelection::spaceFollowsWordInRange):
(WebCore::FrameSelection::selectionAtDocumentStart):
(WebCore::FrameSelection::selectionAtSentenceStart):
(WebCore::FrameSelection::selectionAtWordStart):
(WebCore::FrameSelection::rangeByMovingCurrentSelection):
(WebCore::FrameSelection::rangeByExtendingCurrentSelection):
(WebCore::FrameSelection::selectRangeOnElement):
(WebCore::FrameSelection::wordSelectionContainingCaretSelection):
(WebCore::FrameSelection::actualSelectionAtSentenceStart):
(WebCore::FrameSelection::rangeByAlteringCurrentSelection):
(WebCore::FrameSelection::clearCurrentSelection):
(WebCore::FrameSelection::setCaretBlinks):
(WebCore::FrameSelection::setCaretColor):
* editing/FrameSelection.h:
(WebCore::FrameSelection::suppressCloseTyping):
(WebCore::FrameSelection::restoreCloseTyping):
(WebCore::FrameSelection::setUpdateAppearanceEnabled):
(WebCore::FrameSelection::suppressScrolling):
(WebCore::FrameSelection::restoreScrolling):
* editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doReapply):
* editing/InsertIntoTextNodeCommand.h:
* editing/InsertTextCommand.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
* editing/TextAffinity.h:
* editing/TextCheckingHelper.cpp:
* editing/TextGranularity.h:
* editing/TextIterator.cpp:
(WebCore::isRendererReplacedElement):
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):
(WebCore::TypingCommand::markMisspellingsAfterTyping):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::FriendlyEditCommand::setEndingSelection):
(WebCore::TypingCommand::setEndingSelectionOnLastInsertCommand):
* editing/TypingCommand.h:
* editing/VisiblePosition.h:
(WebCore::operator<):
(WebCore::operator>):
(WebCore::operator<=):
(WebCore::operator>=):
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
* editing/VisibleUnits.cpp:
(WebCore::previousBoundary):
(WebCore::nextBoundary):
(WebCore::startOfDocument):
(WebCore::endOfDocument):
(WebCore::directionIsDownstream):
(WebCore::atBoundaryOfGranularity):
(WebCore::withinTextUnitOfGranularity):
(WebCore::nextCharacterBoundaryInDirection):
(WebCore::nextWordBoundaryInDirection):
(WebCore::nextSentenceBoundaryInDirection):
(WebCore::nextLineBoundaryInDirection):
(WebCore::nextParagraphBoundaryInDirection):
(WebCore::nextDocumentBoundaryInDirection):
(WebCore::positionOfNextBoundaryOfGranularity):
(WebCore::enclosingTextUnitOfGranularity):
(WebCore::distanceBetweenPositions):
(WebCore::wordRangeFromPosition):
(WebCore::closestWordBoundaryForPosition):
* editing/VisibleUnits.h:
* editing/ios/DictationCommandIOS.cpp: Added.
* editing/ios/DictationCommandIOS.h: Added.
(WebCore::DictationCommandIOS::create):
(WebCore::DictationCommandIOS::editingAction):
* editing/mac/FrameSelectionMac.mm:
(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
* fileapi/AsyncFileStream.cpp:
* generate-export-file: Added.
* inspector/InspectorCounters.h:
* inspector/InspectorFrontendHost.h:
* make-export-file-generator:
* plugins/PluginPackage.h:
* plugins/PluginViewBase.h:
(WebCore::PluginViewBase::willProvidePluginLayer):
(WebCore::PluginViewBase::attachPluginLayer):
(WebCore::PluginViewBase::detachPluginLayer):
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
* style/StyleResolveTree.cpp:
(WebCore::Style::elementImplicitVisibility):
* testing/Internals.cpp:
(WebCore::Internals::getCurrentCursorInfo):
(WebCore::Internals::isSelectPopupVisible):
* workers/WorkerThread.cpp:
(WebCore::WorkerThread::workerThread):
2014-01-10 Daniel Bates <dabates@apple.com>
Fix the iOS build after <http://trac.webkit.org/changeset/161589>
(https://bugs.webkit.org/show_bug.cgi?id=126654)
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
(WebCore::MediaPlayerPrivateIOS::engineDescription): Adding missing return keyword.
2014-01-10 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Remove unused CSSParser::parseFlowThread
https://bugs.webkit.org/show_bug.cgi?id=126749
Reviewed by Antti Koivisto.
There are two versions of CSSParser::parseFlowThread. Remove the unused one:
bool parseFlowThread(const String& flowName);
Tests: No tests, code cleanup.
* css/CSSParser.cpp:
* css/CSSParser.h:
2014-01-10 Alex Christensen <achristensen@webkit.org>
[WinCairo] Build fix after r161589.
https://bugs.webkit.org/show_bug.cgi?id=126747
Reviewed by Anders Carlsson.
* platform/network/ResourceHandle.cpp:
Include NotImplemented.h for all platforms.
2014-01-10 Anders Carlsson <andersca@apple.com>
Convert some for loops over to range-based for
https://bugs.webkit.org/show_bug.cgi?id=126752
Reviewed by Antti Koivisto.
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::clearStorageID):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
(WebCore::ApplicationCacheGroup::clearStorageID):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::fillResourceList):
* loader/appcache/ApplicationCacheResource.cpp:
(WebCore::ApplicationCacheResource::estimatedSizeInStorage):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
* loader/archive/ArchiveFactory.cpp:
(WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::styleAvailable):
(WebCore::AnimationControllerPrivate::startTimeResponse):
2014-01-10 Anders Carlsson <andersca@apple.com>
Tighten up two functions in the inspector code
https://bugs.webkit.org/show_bug.cgi?id=126751
Reviewed by Antti Koivisto.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
(WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::frameStartedLoading):
(WebCore::InspectorInstrumentation::frameStoppedLoading):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::frameStartedLoading):
(WebCore::InspectorPageAgent::frameStoppedLoading):
* inspector/InspectorPageAgent.h:
2014-01-10 Antti Koivisto <antti@apple.com>
Crash when mutating SVG text with transform
https://bugs.webkit.org/show_bug.cgi?id=126744
Reviewed by Dirk Schulze.
Test: svg/custom/mutation-text-transform-crash.html
Text-transform property triggers subtreeTextDidChange when an SVG text renderer is
being added to the render tree. The function assumes the child is already fully in the tree
but in this case we are still in middle of adding it.
* rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::subtreeTextDidChange):
Bail out if the changed RenderSVGInlineText can't be found from m_layoutAttributes.
This means that subtreeChildWasAdded hasn't been invoked yet for it and there is nothing
to update. The required updates will happen in subtreeChildWasAdded.
2014-01-10 Frédéric Wang <fred.wang@free.fr>
[SVG] Accept HTML and MathML namespaces as valid requiredExtensions
https://bugs.webkit.org/show_bug.cgi?id=88188
Reviewed by Dirk Schulze.
When HTML and MathML are used as foreign objects of an SVG image, it is
important for Web authors to be able to specify a fallback content for
SVG-only readers or browsers without MathML support. We rely on the
requiredExtensions for that purpose and we use the XHTML/MathML
namespaces as suggested in SVG Tiny 1.2 and implemented in Gecko.
Tests: svg/custom/conditional-processing-1.svg
svg/custom/conditional-processing-2.html
svg/dom/SVGTests.html
* svg/SVGSwitchElement.cpp: Remove an incorrect FIXME comment and replace it with a reference to bug 74749.
(WebCore::SVGSwitchElement::childShouldCreateRenderer):
* svg/SVGTests.cpp: Check if the list of required extensions contains only the XHTML/MathML namespaces.
(WebCore::SVGTests::hasExtension):
(WebCore::SVGTests::isValid):
2014-01-10 Mihai Tica <mitica@adobe.com>
Add support for blendmode to Core Animation layer.
Patch by Rik Cabanier, Dean Jackson and Mihai Tica.
https://bugs.webkit.org/show_bug.cgi?id=99200
Reviewed by Dirk Schulze.
Tests: css3/compositing/blend-mode-layers.html
css3/compositing/blend-mode-overflow.html
css3/compositing/blend-mode-reflection.html
css3/compositing/blend-mode-should-not-have-compositing-layer.html
css3/compositing/blend-mode-simple.html
* WebCore.exp.in: export PlatformCALayer::setBlendMode for WebKit::PlatformCALayerRemote
* WebCore.xcodeproj/project.pbxproj: Add PlatformCAFiltersMac.h
* platform/graphics/GraphicsLayer.cpp: add blendMode member
(WebCore::GraphicsLayer::GraphicsLayer):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::blendMode):
(WebCore::GraphicsLayer::setBlendMode):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setBlendMode):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): add call to updateBlendMode()
(WebCore::GraphicsLayerCA::updateBlendMode):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCAFilters.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCAFiltersMac.h: Added.
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
(PlatformCAFilters::setBlendingFiltersOnLayer): set a compositing CAFilter on CALayer
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::setBlendMode): call to PlatformCAFilters::setBlendingFiltersOnLayer
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::updateBlendMode):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::setBlendMode):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::CompositingState::CompositingState): add m_subtreeHasBlending member
(WebCore::RenderLayerCompositor::computeCompositingRequirements): promote layer if subtree has blending
(WebCore::RenderLayerCompositor::reasonsForCompositing):
(WebCore::RenderLayerCompositor::logReasonsForCompositing): log blending reason
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason): add blending reason
* rendering/RenderLayerCompositor.h:
2014-01-10 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Implement visual overflow computation for inline elements
https://bugs.webkit.org/show_bug.cgi?id=125291
Reviewed by David Hyatt.
The patch implements visual overflow computation for inline elements per region. The algorithm
uses the container region of each root line box to determine the lines in a region generated by
a RenderInline. The overflow of a RenderInline inside a region is the smallest rectangle that fits
all the line boxes belonging to that region.
The patch also correctly flips for writing mode the overflow of a renderer before clipping with it.
Tests: fast/regions/overflow-in-variable-width-regions-inline-bt.html
fast/regions/overflow-in-variable-width-regions-inline-continuation.html
fast/regions/overflow-in-variable-width-regions-inline-lr.html
fast/regions/overflow-in-variable-width-regions-inline-rl.html
fast/regions/overflow-in-variable-width-regions-inline.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::updateAlwaysCreateLineBoxes): Always create line boxes for RenderInline
(WebCore::RenderInline::linesVisualOverflowBoundingBoxInRegion):
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::visualOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
* rendering/RenderRegion.h:
2014-01-09 Jer Noble <jer.noble@apple.com>
[Mac] .mp3 media document controls missing their background
https://bugs.webkit.org/show_bug.cgi?id=126683
Reviewed by Eric Carlson.
Test: media/media-document-audio-controls-visible.html
<video> elements in a media document are created with an intrinsic size of 300x1,
with the expectation that either the size will be updated if the media has a video
track, or the controls will visibly overflow if the media is audio-only. Since the
shadow root is a flex-box, the panel was being collapsed to 1px high, so give the panel
a minimum height to prevent that. Also, disable "fading out" the controls in a
media document for an audio-only file by adding a "no-video" class to the panel
and adding a media document-only rule to force the controls to always be visible.
* Modules/mediacontrols/mediaControlsApple.css:
(video:-webkit-full-page-media::-webkit-media-controls-panel.no-video):
(audio::-webkit-media-controls-panel):
* Modules/mediacontrols/mediaControlsApple.js:
(Controller): Call updateHasVideo().
(Controller.prototype.addVideoListeners): Add video track listeners.
(Controller.prototype.removeVideoListeners): Remove same.
(Controller.prototype.updateHasVideo): Add a 'no-video' class to the panel if
the video element has no video tracks.
2014-01-09 Anders Carlsson <andersca@apple.com>
Clean up ProgressTracker a little
https://bugs.webkit.org/show_bug.cgi?id=126738
Reviewed by Dan Bernstein.
Use Frame& where the frame can never be null, avoid an extra hash lookup and
switch the m_progressItems map over to std::unique_ptr.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::frameStartedLoading):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):
(WebCore::FrameLoader::FrameProgressTracker::progressStarted):
(WebCore::FrameLoader::FrameProgressTracker::progressCompleted):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::progressCompleted):
(WebCore::ProgressTracker::incrementProgress):
* loader/ProgressTracker.h:
* loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didReceiveData):
2014-01-09 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Fix a build break on EFL debug build
https://bugs.webkit.org/show_bug.cgi?id=126735
Reviewed by Anders Carlsson.
No new tests, just build fix.
* platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::sharedTimerFiredInternal): Add parentheses.
2014-01-09 Anders Carlsson <andersca@apple.com>
Remove unused FrameLoader member functions
https://bugs.webkit.org/show_bug.cgi?id=126734
Reviewed by Andreas Kling.
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
2014-01-09 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Windows build fix for r161563.
Remove stale forward declaration causing namespace ambiguity
later on in a Windows AllInOne file that picked it up. Also
remove a few stale functions that are not used and accidentally
got added back in when the file changed names.
* bindings/js/ScriptGlobalObject.h:
2014-01-09 Dean Jackson <dino@apple.com>
[WebGL] Expose texture_float_linear and texture_half_float to getSupportedExtensions
https://bugs.webkit.org/show_bug.cgi?id=126732
Reviewed by Tim Horton.
When I added support for these two extensions, I forgot to add their
names to the list in getSupportedExtensions.
Covered by the Khronos test: conformance/extensions/get-extension.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getSupportedExtensions): Add OES_texture_float_linear
and OES_texture_half_float if the WebGL context supports them.
2014-01-09 Joseph Pecoraro <pecoraro@apple.com>
Revert r161611, incorrect fix, will fix better.
* bindings/js/ScriptGlobalObject.h:
2014-01-09 Jer Noble <jer.noble@apple.com>
[Mac] Scrubbing performance of HD content with software decoding is poor.
https://bugs.webkit.org/show_bug.cgi?id=126705
Reviewed by Eric Carlson.
Instead of issuing a new seek before the previous one completes, wait until that seek's
completion handler is called, and then issue the new seek. This has the added benefit of
coalescing multiple incoming seeks so that only the last one is acted upon.
Save the parameters passed into seekToTime and bind them together in a std::function
to be replayed once the in-flight seek completes. To handle the case where a completion
handler fires after the media player is destroyed, add a weakPtrFactory and pass a
WeakPtr into the completion handler.
Clean up some ivars which are no longer necessary: remove m_seekCount and m_seekTime.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): Initialize the
WeakPtrFactory.
(WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance):
(WebCore::MediaPlayerPrivateAVFoundation::seeking): m_seekTime -> m_seeking.
(WebCore::MediaPlayerPrivateAVFoundation::seekCompleted):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createWeakPtr):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::finishSeek):
2014-01-08 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Report the intrinsic size of the media element
https://bugs.webkit.org/show_bug.cgi?id=125156
Reviewed by Eric Carlson.
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::naturalSize): Pass to MediaSourcePrivateAVFObjC.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::sizeChanged): Added; Pass to MediaPlayer.
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::naturalSize): Return the union of the naturalSizes of all active buffers.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset): Notify the media player that the size changed.
(WebCore::SourceBufferPrivateAVFObjC::naturalSize): Return the size of the selected video track.
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm: Renamed from Source/WebCore/platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.cpp.
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::assetTrack): Made const.
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::naturalSize): Return the size of the AVAssetTrack.
2014-01-09 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Windows build fix for r161563.
Remove stale forward declaration causing namespace ambiguity
later on in a Windows AllInOne file that picked it up.
* bindings/js/ScriptGlobalObject.h:
2014-01-09 Simon Fraser <simon.fraser@apple.com>
Enable async scrolling for iOS
https://bugs.webkit.org/show_bug.cgi?id=126730
Reviewed by Tim Horton.
Turn on ENABLE_ASYNC_SCROLLING for iOS.
Disable rubber-banding and scrollbar-related Mac code for PLATFORM(IOS),
provide stubs for scrolling nodes and scrolling state nodes, and an
iOS scrolling tree, and scrolling coordinator.
Move crollingCoordinator::create() into the platform implementation file.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::isScrollingTreeIOS):
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/ios/ScrollingCoordinatorIOS.h: Copied from Source/WebKit2/UIProcess/Scrolling/RemoteScrollingTree.h.
* page/scrolling/ios/ScrollingCoordinatorIOS.mm: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm.
(WebCore::ScrollingCoordinator::create):
(WebCore::ScrollingCoordinatorIOS::ScrollingCoordinatorIOS):
(WebCore::ScrollingCoordinatorIOS::~ScrollingCoordinatorIOS):
(WebCore::ScrollingCoordinatorIOS::pageDestroyed):
(WebCore::ScrollingCoordinatorIOS::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorIOS::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorIOS::scrollingStateTreeCommitterTimerFired):
(WebCore::ScrollingCoordinatorIOS::commitTreeState):
(WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
* page/scrolling/ios/ScrollingTreeIOS.cpp: Added.
(WebCore::ScrollingTreeIOS::create):
(WebCore::ScrollingTreeIOS::ScrollingTreeIOS):
(WebCore::ScrollingTreeIOS::~ScrollingTreeIOS):
(WebCore::derefScrollingCoordinator):
(WebCore::ScrollingTreeIOS::invalidate):
(WebCore::ScrollingTreeIOS::commitNewTreeState):
(WebCore::ScrollingTreeIOS::updateMainFrameScrollPosition):
(WebCore::ScrollingTreeIOS::createNode):
* page/scrolling/ios/ScrollingTreeIOS.h: Copied from Source/WebCore/page/scrolling/ThreadedScrollingTree.h.
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h: Added.
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm: Added.
(WebCore::ScrollingTreeScrollingNodeIOS::create):
(WebCore::ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS):
(WebCore::ScrollingTreeScrollingNodeIOS::~ScrollingTreeScrollingNodeIOS):
(WebCore::ScrollingTreeScrollingNodeIOS::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNodeIOS::updateAfterChildren):
(WebCore::ScrollingTreeScrollingNodeIOS::scrollPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::minimumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::maximumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::scrollBy):
(WebCore::ScrollingTreeScrollingNodeIOS::scrollByWithoutContentEdgeConstraints):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinator::create):
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
2014-01-09 Myles C. Maxfield <mmaxfield@apple.com>
text-decoration-skip: ink does not work with line wraps
https://bugs.webkit.org/show_bug.cgi?id=126729
Reviewed by Simon Fraser.
InlineTextBox's m_start and m_length fields are offsets into the renderer's string,
not the generated TextRun. Because of this distinction, when multiple InlineTextBoxes
were constructed for the same element, all the subsequent elements would use incorrect
indices and therefore not have skipping decorations.
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-multiline.html
* platform/graphics/Font.h:
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::dashesForIntersectionsWithRect):
* rendering/InlineTextBox.cpp:
(WebCore::drawSkipInkUnderline):
(WebCore::InlineTextBox::paintDecoration):
* rendering/TextPainter.cpp:
(WebCore::TextPainter::dashesForIntersectionsWithRect):
* rendering/TextPainter.h:
2014-01-09 Benjamin Poulain <bpoulain@apple.com>
Remove remaining blackberry files I could find in WebCore
https://bugs.webkit.org/show_bug.cgi?id=126715
Reviewed by Anders Carlsson.
* PlatformBlackBerry.cmake: Removed.
* Resources/blackberry: Removed.
* css/mediaControlsBlackBerry.css: Removed.
* css/mediaControlsBlackBerryFullscreen.css: Removed.
* css/themeBlackBerry.css: Removed.
* editing/blackberry: Removed.
* history/blackberry: Removed.
* html/shadow/MediaControlsBlackBerry.cpp: Removed.
* html/shadow/MediaControlsBlackBerry.h: Removed.
* page/blackberry: Removed.
* page/scrolling/blackberry: Removed.
* plugins/blackberry: Removed.
2014-01-09 Brent Fulgham <bfulgham@apple.com>
[WebGL] Return filtered results for getProgramParameter for ACTIVE_ATTRIBUTES and ACTIVE_UNIFORMS
https://bugs.webkit.org/show_bug.cgi?id=126718
<rdar://problem/15202048>
Reviewed by Dean Jackson.
Covered by webgl/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002.html and
webgl/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003.html.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getActiveAttrib): Added loging.
(WebCore::WebGLRenderingContext::getActiveUniform): Added logging.
(WebCore::WebGLRenderingContext::getAttribLocation): Drive-by-fix. Return
-1 on link failure (an invalid location) rather than 0 (a valid
location) when link fails.
(WebCore::WebGLRenderingContext::getProgramParameter): Use new
method to return filtered count.
(WebCore::WebGLRenderingContext::getUniformLocation): Use nullptr
rather than returning 0.
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::ActiveShaderSymbolCounts::ActiveShaderSymbolCounts):
(WebCore::GraphicsContext3D::ActiveShaderSymbolCounts::countForType):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::precisionsMatch): Drive-by-fix. Don't
copy giant objects to read a single value.
(WebCore::GraphicsContext3D::compileShader): Release filtered count
when we change shader source code.
(WebCore::GraphicsContext3D::getActiveAttribImpl): Renamed from getActiveAttrib.
(WebCore::GraphicsContext3D::getActiveAttrib): Maps filtered indices to
real OpenGL indices.
(WebCore::GraphicsContext3D::getActiveUniformImpl): Renamed from getActiveUniform.
(WebCore::GraphicsContext3D::getActiveUniform): Maps filtered indices to
real OpenGL indices.
(WebCore::GraphicsContext3D::originalSymbolName): Use C++11 loop.
(WebCore::GraphicsContext3D::getAttribLocation): Added logging.
(WebCore::GraphicsContext3D::getNonBuiltinActiveSymbolCount): Added.
(WebCore::GraphicsContext3D::getShaderiv): Const correctness.
(WebCore::GraphicsContext3D::getShaderInfoLog): Ditto.
(WebCore::GraphicsContext3D::getShaderSource): Ditto.
2014-01-09 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] First line gets incorrectly adjusted in shape-inside due to rounding
https://bugs.webkit.org/show_bug.cgi?id=126601
Reviewed by Bem Jones-Bey.
In order to get consistent results of the first fit position of the content in shapes,
firstIncludedIntervalLogicalTop should take a FloatSize rather than LayoutSize for
minLogicalIntervalSize, because LayoutSize clamps the float value to int, when subpixel-layout
is disabled, thus firstIncludedIntervalLogicalTop could end up calculating with an unprecize
value. This change modifies firstIncludedIntervalLogicalTop to take FloatSize consistently.
Test: fast/shapes/shape-inside/shape-inside-polygon-rounded-first-fit.html
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::firstIncludedIntervalLogicalTop):
* rendering/shapes/BoxShape.h:
* rendering/shapes/PolygonShape.cpp:
(WebCore::PolygonShape::firstIncludedIntervalLogicalTop):
* rendering/shapes/PolygonShape.h:
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShape::firstIncludedIntervalLogicalTop):
* rendering/shapes/RasterShape.h:
* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
* rendering/shapes/RectangleShape.h:
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::adjustLogicalLineTop):
(WebCore::ShapeInsideInfo::computeFirstFitPositionForFloat):
2014-01-09 Andy Estes <aestes@apple.com>
[iOS] Upstream WAK
https://bugs.webkit.org/show_bug.cgi?id=126724
Reviewed by David Kilzer.
* Configurations/WebCore.xcconfig: Excluded new iOS-specific Private
headers on the Mac build.
* WebCore.xcodeproj/project.pbxproj: Added new files to the project.
* platform/ios/wak/WAKAppKitStubs.h: Added.
* platform/ios/wak/WAKAppKitStubs.m: Added.
* platform/ios/wak/WAKClipView.h: Added.
* platform/ios/wak/WAKClipView.m: Added.
* platform/ios/wak/WAKResponder.h: Added.
* platform/ios/wak/WAKResponder.m: Added.
* platform/ios/wak/WAKScrollView.h: Added.
* platform/ios/wak/WAKScrollView.mm: Added.
* platform/ios/wak/WAKView.h: Added.
* platform/ios/wak/WAKView.mm: Added.
* platform/ios/wak/WAKViewPrivate.h: Added.
* platform/ios/wak/WAKWindow.h: Added.
* platform/ios/wak/WAKWindow.mm: Added.
* platform/ios/wak/WKContentObservation.cpp: Added.
* platform/ios/wak/WKContentObservation.h: Added.
* platform/ios/wak/WKGraphics.h: Added.
* platform/ios/wak/WKGraphics.mm: Added.
* platform/ios/wak/WKTypes.h: Added.
* platform/ios/wak/WKUtilities.c: Added.
* platform/ios/wak/WKUtilities.h: Added.
* platform/ios/wak/WKView.h: Added.
* platform/ios/wak/WKView.mm: Added.
* platform/ios/wak/WKViewPrivate.h: Added.
* platform/ios/wak/WebCoreThread.h: Added.
* platform/ios/wak/WebCoreThread.mm: Added.
* platform/ios/wak/WebCoreThreadInternal.h: Added.
* platform/ios/wak/WebCoreThreadMessage.h: Added.
* platform/ios/wak/WebCoreThreadRun.cpp: Added.
* platform/ios/wak/WebCoreThreadRun.h: Added.
* platform/ios/wak/WebCoreThreadSafe.h: Added.
* platform/ios/wak/WebCoreThreadSystemInterface.cpp: Added.
* platform/ios/wak/WebCoreThreadSystemInterface.h: Added.
2014-01-09 Daniel Bates <dabates@apple.com>
Another attempt to fix the Windows build following <http://trac.webkit.org/changeset/161589>
(https://bugs.webkit.org/show_bug.cgi?id=126654)
* platform/network/cf/ResourceRequest.h: Always declare ResourceRequest::updateFromDelegatePreservingOldHTTPBody()
instead of only declaring it when building without CFNetwork.
2014-01-09 Daniel Bates <dabates@apple.com>
Attempt to fix the Windows build following <http://trac.webkit.org/changeset/161589>
(https://bugs.webkit.org/show_bug.cgi?id=126654)
For some reason, the Windows build is unhappy that NeverDestroyed<FontCache> calls the private constructor
FontCache::FontCache() despite being a friend class of FontCache. Use DEFINE_STATIC_LOCAL instead of
NeverDestroyed<> for now. I'll look to investigate this issue offline.
* platform/graphics/FontCache.cpp:
(WebCore::fontCache):
* platform/graphics/FontCache.h:
2014-01-09 Benjamin Poulain <bpoulain@apple.com>
Remove blackberry from WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=126715
Reviewed by Anders Carlsson.
* platform/blackberry: Removed.
* platform/graphics/blackberry: Removed.
* platform/graphics/filters/blackberry: Removed.
* platform/image-decoders/blackberry: Removed.
* platform/mediastream/blackberry: Removed.
* platform/network/blackberry: Removed.
* platform/text/blackberry: Removed.
2014-01-09 Alexey Proskuryakov <ap@apple.com>
Fix a copy-paste mistake in an include guard.
Rubber-stamped by Sam Weinig.
* crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h:
2014-01-09 Anders Carlsson <andersca@apple.com>
History::StateObjectType should be a strong enum
https://bugs.webkit.org/show_bug.cgi?id=126725
Reviewed by Beth Dakin.
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
* loader/HistoryController.cpp:
(WebCore::HistoryController::pushState):
* page/History.cpp:
(WebCore::History::stateObjectAdded):
* page/History.h:
2014-01-09 Daniel Bates <dabates@apple.com>
Attempt to fix the Mountain Lion Release (32-bit) build following <http://trac.webkit.org/changeset/161589>
(https://bugs.webkit.org/show_bug.cgi?id=126654)
* platform/ios/WebEvent.h:
* platform/ios/WebEvent.mm:
2014-01-09 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/platform changes
https://bugs.webkit.org/show_bug.cgi?id=126654
Rubber-stamped by David Kilzer.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/ContentFilter.h:
* platform/DragData.h:
* platform/FileChooser.cpp:
(WebCore::FileChooser::chooseMediaFiles):
* platform/FileChooser.h:
* platform/FileSystem.cpp:
(WebCore::setMetadataURL):
* platform/FileSystem.h:
* platform/KillRingNone.cpp:
* platform/LocalizedStrings.cpp:
(WebCore::fileButtonChooseMediaFileLabel):
(WebCore::fileButtonChooseMultipleMediaFilesLabel):
(WebCore::fileButtonNoMediaFileSelectedLabel):
(WebCore::fileButtonNoMediaFilesSelectedLabel):
* platform/LocalizedStrings.h:
* platform/Logging.h:
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes):
(WebCore::initializeSupportedNonImageMimeTypes):
(WebCore::initializeUnsupportedTextMIMETypes):
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::MemoryPressureHandler):
* platform/MemoryPressureHandler.h:
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::event):
* platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
* platform/PlatformScreen.h:
* platform/RuntimeApplicationChecks.cpp:
(WebCore::mainBundleIsEqualTo):
* platform/RuntimeApplicationChecksIOS.h: Copied from Source/WebCore/platform/graphics/StringTruncator.h.
* platform/RuntimeApplicationChecksIOS.mm: Added.
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleTouchEvent):
* platform/ScrollAnimator.h:
* platform/ScrollTypes.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSize):
(WebCore::ScrollView::visibleContentRect):
* platform/ScrollView.h:
(WebCore::ScrollView::actualScrollX):
(WebCore::ScrollView::actualScrollY):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::handleTouchEvent):
(WebCore::ScrollableArea::isPinnedInBothDirections):
(WebCore::ScrollableArea::isPinnedHorizontallyInDirection):
(WebCore::ScrollableArea::isPinnedVerticallyInDirection):
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::isTouchScrollable):
(WebCore::ScrollableArea::isOverflowScroll):
(WebCore::ScrollableArea::didStartScroll):
(WebCore::ScrollableArea::didEndScroll):
(WebCore::ScrollableArea::didUpdateScroll):
(WebCore::ScrollableArea::setIsUserScroll):
(WebCore::ScrollableArea::isHorizontalScrollerPinnedToMinimumPosition):
(WebCore::ScrollableArea::isHorizontalScrollerPinnedToMaximumPosition):
(WebCore::ScrollableArea::isVerticalScrollerPinnedToMinimumPosition):
(WebCore::ScrollableArea::isVerticalScrollerPinnedToMaximumPosition):
* platform/Scrollbar.cpp:
* platform/Scrollbar.h:
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::createPurgeableBuffer):
(WebCore::SharedBuffer::data):
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::shouldUsePurgeableMemory):
* platform/SuddenTermination.h:
* platform/Supplementable.h:
(WebCore::Supplementable::provideSupplement):
(WebCore::Supplementable::removeSupplement):
(WebCore::Supplementable::requireSupplement):
* platform/SystemMemory.h: Copied from Source/WebCore/platform/graphics/StringTruncator.h.
* platform/ThreadCheck.h:
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):
(WebCore::ThreadGlobalData::setWebCoreThreadData):
(WebCore::threadGlobalData):
* platform/ThreadGlobalData.h:
* platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::ThreadTimers):
(WebCore::ThreadTimers::sharedTimerFiredInternal):
* platform/Timer.cpp:
(WebCore::TimerBase::start):
(WebCore::TimerBase::stop):
(WebCore::TimerBase::setNextFireTime):
* platform/Timer.h:
(WebCore::TimerBase::isActive):
* platform/URL.cpp:
(WebCore::enableURLSchemeCanonicalization):
(WebCore::equal):
(WebCore::URL::parse):
* platform/URL.h:
* platform/Widget.h:
* platform/audio/ios/AudioDestinationIOS.cpp:
* platform/audio/ios/AudioDestinationIOS.h:
* platform/audio/ios/AudioFileReaderIOS.cpp: Copied from Source/WebCore/platform/audio/mac/AudioFileReaderMac.cpp.
(WebCore::createAudioBufferList):
(WebCore::destroyAudioBufferList):
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::AudioFileReader::~AudioFileReader):
(WebCore::AudioFileReader::readProc):
(WebCore::AudioFileReader::getSizeProc):
(WebCore::AudioFileReader::createBus):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
* platform/audio/ios/AudioFileReaderIOS.h: Copied from Source/WebCore/platform/graphics/StringTruncator.h.
(WebCore::AudioFileReader::data):
(WebCore::AudioFileReader::dataSize):
* platform/audio/ios/AudioSessionIOS.mm:
(SOFT_LINK_POINTER):
(-[WebAudioSessionHelper initWithCallback:WebCore::]):
(-[WebAudioSessionHelper dealloc]):
(-[WebAudioSessionHelper interruption:]):
(WebCore::AudioSession::setCategory):
* platform/audio/mac/AudioDestinationMac.cpp:
* platform/audio/mac/AudioFileReaderMac.cpp:
(WebCore::AudioFileReader::AudioFileReader):
(WebCore::createBusFromAudioFile):
(WebCore::createBusFromInMemoryAudioFile):
* platform/audio/mac/AudioSessionMac.cpp:
* platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState):
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::SharedBuffer):
* platform/cf/URLCF.cpp:
* platform/cocoa/KeyEventCocoa.mm:
(WebCore::windowsKeyCodeForCharCode):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
(WebCore::BitmapImage::cacheFrame):
(WebCore::BitmapImage::cacheFrameInfo):
(WebCore::BitmapImage::updateSize):
(WebCore::BitmapImage::originalSize):
(WebCore::BitmapImage::originalSizeRespectingOrientation):
(WebCore::BitmapImage::dataChanged):
(WebCore::BitmapImage::ensureFrameInfoIsCached):
(WebCore::BitmapImage::frameAtIndex):
(WebCore::BitmapImage::frameIsCompleteAtIndex):
(WebCore::BitmapImage::frameDurationAtIndex):
(WebCore::BitmapImage::frameHasAlphaAtIndex):
(WebCore::BitmapImage::frameOrientationAtIndex):
(WebCore::BitmapImage::startAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation):
* platform/graphics/BitmapImage.h:
(WebCore::FrameData::FrameData):
* platform/graphics/Color.cpp:
(WebCore::Color::isDark):
* platform/graphics/Color.h:
* platform/graphics/DisplayRefreshMonitor.h:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatRect.h:
* platform/graphics/FloatSize.h:
* platform/graphics/Font.cpp:
(WebCore::Font::drawText):
(WebCore::Font::width):
* platform/graphics/Font.h:
* platform/graphics/FontCache.cpp:
(initFontCacheLockOnce):
(FontLocker::FontLocker):
(FontLocker::~FontLocker):
(WebCore::fontCache):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::getCachedFontData):
(WebCore::FontCache::releaseFontData):
(WebCore::FontCache::purgeInactiveFontDataIfNeeded):
(WebCore::FontCache::purgeInactiveFontData):
* platform/graphics/FontCache.h:
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawGlyphBuffer):
* platform/graphics/FontGlyphs.h:
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::font):
(WebCore::FontPlatformData::roundsGlyphAdvances):
(WebCore::FontPlatformData::hash):
(WebCore::FontPlatformData::hashTableDeletedFontValue):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::drawRaisedEllipse):
(WebCore::GraphicsContext::drawText):
(WebCore::GraphicsContext::drawBidiText):
(WebCore::GraphicsContext::clipRoundedRect):
(WebCore::GraphicsContext::emojiDrawingEnabled):
(WebCore::GraphicsContext::setEmojiDrawingEnabled):
* platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContextState::GraphicsContextState):
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::willBeDestroyed):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::contentsLayerForMedia):
(WebCore::GraphicsLayer::pixelAlignmentOffset):
(WebCore::GraphicsLayer::hasFlattenedPerspectiveTransform):
* platform/graphics/Icon.h:
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/ImageSource.h:
(WebCore::ImageSource::isSubsampled):
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines):
(WebCore::MediaPlayer::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayer::showPlaybackTargetPicker):
(WebCore::MediaPlayer::hasWirelessPlaybackTargets):
(WebCore::MediaPlayer::wirelessVideoPlaybackDisabled):
(WebCore::MediaPlayer::setWirelessVideoPlaybackDisabled):
(WebCore::MediaPlayer::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaPlayer::currentPlaybackTargetIsWirelessChanged):
(WebCore::MediaPlayer::playbackTargetAvailabilityChanged):
(WebCore::MediaPlayer::attributeChanged):
(WebCore::MediaPlayer::readyForPlayback):
(WebCore::MediaPlayer::volumeChanged):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerCurrentPlaybackTargetIsWirelessChanged):
(WebCore::MediaPlayerClient::mediaPlayerPlaybackTargetAvailabilityChanged):
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::volume):
(WebCore::MediaPlayerPrivateInterface::isCurrentPlaybackTargetWireless):
(WebCore::MediaPlayerPrivateInterface::showPlaybackTargetPicker):
(WebCore::MediaPlayerPrivateInterface::hasWirelessPlaybackTargets):
(WebCore::MediaPlayerPrivateInterface::wirelessVideoPlaybackDisabled):
(WebCore::MediaPlayerPrivateInterface::setWirelessVideoPlaybackDisabled):
(WebCore::MediaPlayerPrivateInterface::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaPlayerPrivateInterface::attributeChanged):
(WebCore::MediaPlayerPrivateInterface::readyForPlayback):
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
* platform/graphics/SimpleFontData.h:
* platform/graphics/StringTruncator.cpp:
(WebCore::centerTruncateToBuffer):
(WebCore::rightTruncateToBuffer):
(WebCore::rightClipToCharacterBuffer):
(WebCore::rightClipToWordBuffer):
(WebCore::leftTruncateToBuffer):
(WebCore::truncateString):
(WebCore::StringTruncator::centerTruncate):
(WebCore::StringTruncator::rightTruncate):
(WebCore::StringTruncator::leftTruncate):
(WebCore::StringTruncator::rightClipToCharacter):
(WebCore::StringTruncator::rightClipToWord):
* platform/graphics/StringTruncator.h:
* platform/graphics/TextTrackRepresentation.cpp:
* platform/graphics/WidthIterator.h:
(WebCore::WidthIterator::supportsTypesettingFeatures):
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
(WebCore::AVTrackPrivateAVFObjCImpl::label):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded):
(WebCore::wkAVAssetResolvedURL):
* platform/graphics/blackberry/FontBlackBerry.cpp:
(WebCore::Font::drawComplexText):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::supportsAcceleratedFilterAnimations):
(WebCore::GraphicsLayerCA::setContentsToImage):
(WebCore::GraphicsLayerCA::contentsLayerForMedia):
(WebCore::GraphicsLayerCA::computeVisibleRect):
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setupContentsLayer):
(WebCore::GraphicsLayerCA::mediaLayerMustBeUpdatedOnMainThread):
(WebCore::GraphicsLayerCA::computePixelAlignment):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCAFilters.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
(WebCore::currentRunLoop):
(WebCore::LayerFlushScheduler::schedule):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(-[WebAnimationDelegate animationDidStart:]):
(PlatformCALayerMac::setContentsScale):
(PlatformCALayer::isWebLayer):
(PlatformCALayer::setBoundsOnMainThread):
(PlatformCALayer::setPositionOnMainThread):
(PlatformCALayer::setAnchorPointOnMainThread):
(PlatformCALayer::setTileSize):
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::platformCALayerPaintContents):
(WebCore::TileController::removeAllTiles):
(WebCore::TileController::removeAllSecondaryTiles):
(WebCore::TileController::removeTilesInCohort):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::createTileLayer):
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::Font::drawComplexText):
* platform/graphics/cg/BitmapImageCG.cpp:
(WebCore::FrameData::clear):
(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::checkForSolidColor):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::copyUnscaledFrameAtIndex):
* platform/graphics/cg/ColorCG.cpp:
(WebCore::createCGColorWithDeviceWhite):
(WebCore::createCGColorWithDeviceRGBA):
(WebCore::Color::Color):
* platform/graphics/cg/FloatPointCG.cpp:
* platform/graphics/cg/FloatRectCG.cpp:
* platform/graphics/cg/FloatSizeCG.cpp:
* platform/graphics/cg/GradientCG.cpp:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::sRGBColorSpaceRef):
(WebCore::setStrokeAndFillColor):
(WebCore::GraphicsContext::platformInit):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::createIOSurface):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::draw):
(WebCore::jpegUTI):
(WebCore::utiFromMIMEType):
* platform/graphics/cg/ImageBufferDataCG.cpp:
(WebCore::ImageBufferData::getData):
(WebCore::ImageBufferData::putData):
* platform/graphics/cg/ImageBufferDataCG.h:
* platform/graphics/cg/ImageCG.cpp:
(WebCore::drawPatternCallback):
(WebCore::Image::drawPattern):
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::ImageSource):
(WebCore::imageSourceOptions):
(WebCore::ImageSource::imageSourceOptions):
(WebCore::ImageSource::frameSizeAtIndex):
(WebCore::ImageSource::originalSize):
(WebCore::ImageSource::createFrameAtIndex):
* platform/graphics/cg/ImageSourceCGMac.mm:
* platform/graphics/cg/IntPointCG.cpp:
* platform/graphics/cg/IntRectCG.cpp:
* platform/graphics/cg/IntSizeCG.cpp:
* platform/graphics/cg/PDFDocumentImage.cpp:
* platform/graphics/cg/PathCG.cpp:
* platform/graphics/cg/PatternCG.cpp:
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::~FontPlatformData):
(WebCore::FontPlatformData::platformDataInit):
(WebCore::FontPlatformData::platformDataAssign):
(WebCore::FontPlatformData::platformIsEqual):
(WebCore::FontPlatformData::setFont):
(WebCore::FontPlatformData::allowsLigatures):
(WebCore::FontPlatformData::ctFont):
* platform/graphics/ios/DisplayRefreshMonitorIOS.mm: Added.
(WebCore::DisplayRefreshMonitor::~DisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::requestRefreshCallback):
(WebCore::DisplayRefreshMonitor::displayLinkFired):
* platform/graphics/ios/FontCacheIOS.mm: Added.
* platform/graphics/ios/FontServicesIOS.h: Added.
* platform/graphics/ios/FontServicesIOS.mm: Added.
(WebCore::FontServicesIOS::FontServicesIOS):
* platform/graphics/ios/GraphicsContext3DIOS.h: Added.
* platform/graphics/ios/IconIOS.mm: Copied from Source/WebCore/platform/mac/DisplaySleepDisabler.cpp.
* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h: Copied from Source/WebCore/platform/graphics/cg/ImageBufferDataCG.h.
(WebCore::InbandTextTrackPrivateAVFIOS::create):
(WebCore::InbandTextTrackPrivateAVFIOS::internalID):
* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.mm: Copied from Source/WebCore/platform/graphics/mac/IntRectMac.mm.
(WebCore::InbandTextTrackPrivateAVFIOS::InbandTextTrackPrivateAVFIOS):
(WebCore::InbandTextTrackPrivateAVFIOS::~InbandTextTrackPrivateAVFIOS):
(WebCore::InbandTextTrackPrivateAVFIOS::kind):
* platform/graphics/ios/MediaPlayerPrivateIOS.h: Added.
* platform/graphics/ios/MediaPlayerPrivateIOS.mm: Added.
* platform/graphics/ios/SimpleFontDataIOS.mm: Added.
(WebCore::fontFamilyShouldNotBeUsedForArabic):
(WebCore::fontHasVerticalGlyphs):
(WebCore::SimpleFontData::platformInit):
(WebCore::SimpleFontData::platformCharWidthInit):
(WebCore::SimpleFontData::platformCreateScaledFontData):
(WebCore::SimpleFontData::containsCharacters):
(WebCore::SimpleFontData::determinePitch):
(WebCore::SimpleFontData::platformWidthForGlyph):
* platform/graphics/ios/TextTrackRepresentationIOS.h: Copied from Source/WebCore/platform/graphics/TextTrackRepresentation.cpp.
* platform/graphics/ios/TextTrackRepresentationIOS.mm: Added.
* platform/graphics/mac/ColorMac.h:
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
* platform/graphics/mac/FloatPointMac.mm:
* platform/graphics/mac/FloatRectMac.mm:
* platform/graphics/mac/FloatSizeMac.mm:
* platform/graphics/mac/FontCacheMac.mm:
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::drawComplexText):
(WebCore::Font::fontDataForCombiningCharacterSequence):
* platform/graphics/mac/FontCustomPlatformData.cpp:
* platform/graphics/mac/FontMac.mm:
(WebCore::showLetterpressedGlyphsWithAdvances):
(WebCore::Font::drawGlyphs):
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::setRenderbufferStorageFromDrawable):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::endPaint):
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawFocusRing):
(WebCore::createDotPattern):
(WebCore::GraphicsContext::drawLineForDocumentMarker):
* platform/graphics/mac/IconMac.mm:
* platform/graphics/mac/ImageMac.mm:
(WebCore::BitmapImage::invalidatePlatformData):
* platform/graphics/mac/IntPointMac.mm:
* platform/graphics/mac/IntRectMac.mm:
* platform/graphics/mac/IntSizeMac.mm:
* platform/graphics/mac/MediaPlayerProxy.h:
* platform/graphics/mac/SimpleFontDataCoreText.cpp:
* platform/graphics/mac/SimpleFontDataMac.mm:
* platform/graphics/mac/WebGLLayer.h:
* platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
(-[WebGLLayer display]):
* platform/graphics/mac/WebLayer.mm:
(WebCore::drawLayerContents):
(-[WebSimpleLayer display]):
(-[WebSimpleLayer drawInContext:]):
* platform/graphics/mac/WebTiledLayer.mm:
(+[WebTiledLayer shouldDrawOnMainThread]):
(-[WebTiledLayer display]):
(-[WebTiledLayer drawInContext:]):
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::blitFramebuffer):
(WebCore::Extensions3DOpenGL::bindVertexArrayOES):
(WebCore::Extensions3DOpenGL::supportsExtension):
(WebCore::Extensions3DOpenGL::drawBuffersEXT):
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
(WebCore::GraphicsContext3D::renderbufferStorage):
(WebCore::GraphicsContext3D::getIntegerv):
(WebCore::GraphicsContext3D::texImage2D):
(WebCore::GraphicsContext3D::depthRange):
(WebCore::GraphicsContext3D::clearDepth):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::multiply):
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::drawComplexText):
* platform/graphics/wince/FontWinCE.cpp:
(WebCore::Font::drawComplexText):
* platform/ios/ContentFilterIOS.mm: Copied from Source/WebCore/platform/ContentFilter.h.
* platform/ios/DeviceMotionClientIOS.h: Added.
(WebCore::DeviceMotionClientIOS::create):
* platform/ios/DeviceMotionClientIOS.mm: Added.
* platform/ios/DeviceOrientationClientIOS.h: Added.
(WebCore::DeviceOrientationClientIOS::create):
* platform/ios/DeviceOrientationClientIOS.mm: Added.
* platform/ios/KeyEventIOS.mm:
* platform/ios/MIMETypeRegistryIOS.mm: Copied from Source/WebCore/platform/network/mac/CredentialStorageMac.mm.
* platform/ios/MemoryPressureHandlerIOS.mm: Added.
* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::resourceMIMEType):
(WebCore::Pasteboard::writePlainText):
(WebCore::Pasteboard::read):
(WebCore::supportedImageTypes):
(WebCore::Pasteboard::supportedPasteboardTypes):
(WebCore::Pasteboard::hasData):
(WebCore::Pasteboard::readString):
* platform/ios/PlatformEventFactoryIOS.h: Copied from Source/WebCore/platform/mac/DisplaySleepDisabler.h.
* platform/ios/PlatformEventFactoryIOS.mm: Added.
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write):
* platform/ios/PlatformScreenIOS.mm: Added.
* platform/ios/PlatformSpeechSynthesizerIOS.mm: Added.
* platform/ios/SSLKeyGeneratorIOS.cpp: Added.
* platform/ios/ScrollAnimatorIOS.h: Copied from Source/WebCore/platform/mac/DisplaySleepDisabler.h.
* platform/ios/ScrollAnimatorIOS.mm: Added.
* platform/ios/ScrollViewIOS.mm: Added.
* platform/ios/ScrollbarThemeIOS.h: Added.
* platform/ios/ScrollbarThemeIOS.mm: Added.
* platform/ios/SelectionRect.cpp: Added.
* platform/ios/SelectionRect.h: Added.
* platform/ios/SoundIOS.mm: Copied from Source/WebCore/platform/text/mac/CharsetData.h.
* platform/ios/SystemMemoryIOS.cpp: Added.
* platform/ios/ThemeIOS.h: Copied from Source/WebCore/platform/KillRingNone.cpp.
* platform/ios/ThemeIOS.mm: Copied from Source/WebCore/platform/KillRingNone.cpp.
* platform/ios/TileCache.h: Added.
(WebCore::TileCache::isSpeculativeTileCreationEnabled):
* platform/ios/TileCache.mm: Added.
* platform/ios/TileGrid.h: Added.
* platform/ios/TileGrid.mm: Added.
* platform/ios/TileGridTile.h: Copied from Source/WebCore/platform/ContentFilter.h.
* platform/ios/TileGridTile.mm: Added.
* platform/ios/TileLayer.h: Copied from Source/WebCore/platform/mac/DisplaySleepDisabler.h.
* platform/ios/TileLayer.mm: Added.
* platform/ios/TileLayerPool.mm: Added.
* platform/ios/WebCoreMotionManager.h: Copied from Source/WebCore/platform/KillRingNone.cpp.
* platform/ios/WebCoreMotionManager.mm: Added.
* platform/ios/WebCoreSystemInterfaceIOS.h: Added.
* platform/ios/WebCoreSystemInterfaceIOS.mm: Added.
* platform/ios/WebEvent.h: Added.
* platform/ios/WebEvent.mm: Added.
* platform/ios/WidgetIOS.mm: Added.
* platform/mac/DisplaySleepDisabler.cpp:
(WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
(WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
* platform/mac/DisplaySleepDisabler.h:
* platform/mac/FileSystemMac.mm:
* platform/mac/KillRingMac.mm:
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::install):
(WebCore::MemoryPressureHandler::releaseMemory):
* platform/mac/PlatformClockCM.mm:
(PlatformClockCM::PlatformClockCM):
* platform/mac/SoftLinking.h:
* platform/mac/SystemVersionMac.mm:
* platform/mac/WebCoreFullScreenPlaceholderView.h:
* platform/mac/WebCoreFullScreenPlaceholderView.mm:
* platform/mac/WebCoreFullScreenWarningView.h:
* platform/mac/WebCoreFullScreenWarningView.mm:
* platform/mac/WebCoreFullScreenWindow.h:
* platform/mac/WebCoreFullScreenWindow.mm:
* platform/mac/WebCoreNSCellExtras.h:
* platform/mac/WebCoreNSCellExtras.m:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebFontCache.mm:
(+[WebFontCache fontWithFamily:traits:size:]):
* platform/network/BlobRegistry.cpp:
* platform/network/BlobRegistryImpl.cpp:
* platform/network/Credential.h:
* platform/network/CredentialStorage.cpp:
(WebCore::CredentialStorage::set):
(WebCore::CredentialStorage::clearCredentials):
* platform/network/CredentialStorage.h:
* platform/network/NetworkStateNotifier.h:
* platform/network/ResourceHandle.cpp:
(WebCore::builtinResourceHandleConstructorMap):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
(WebCore::ResourceHandle::continueShouldUseCredentialStorage):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setDefaultAllowCookies):
(WebCore::ResourceRequestBase::defaultAllowCookies):
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::ResourceRequestBase):
* platform/network/cf/CredentialStorageCFNet.cpp:
(WebCore::CredentialStorage::saveToPersistentStorage):
* platform/network/cf/DNSCFNet.cpp:
* platform/network/cf/ProxyServerCFNet.cpp:
* platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::setMainResourceRequest):
(WebCore::ResourceRequest::isMainResourceRequest):
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody):
(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::ResourceRequest::applyWebArchiveHackForMail):
(WebCore::initializeHTTPConnectionSettingsOnStartup):
* platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::reportErrorToClient):
* platform/network/ios/NetworkStateNotifierIOS.cpp: Copied from Source/WebCore/platform/KillRingNone.cpp.
(WebCore::NetworkStateNotifier::NetworkStateNotifier):
(WebCore::NetworkStateNotifier::setIsOnLine):
* platform/network/ios/QuickLook.h: Added.
* platform/network/ios/QuickLook.mm: Added.
* platform/network/ios/ResourceHandleIOS.mm: Added.
* platform/network/ios/WebCoreURLResponseIOS.h: Copied from Source/WebCore/platform/graphics/StringTruncator.h.
* platform/network/ios/WebCoreURLResponseIOS.mm: Added.
* platform/network/mac/AuthenticationMac.mm:
(WebCore::mac):
* platform/network/mac/CredentialStorageMac.mm:
(WebCore::CredentialStorage::saveToPersistentStorage):
* platform/network/mac/ResourceErrorMac.mm:
(dictionaryThatCanCode):
(-[WebCustomNSURLError encodeWithCoder:]):
(NSErrorFromCFError):
(WebCore::ResourceError::nsError):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::synchronousWillSendRequestEnabled):
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::schedule):
(WebCore::ResourceHandle::unschedule):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::updateNSURLRequest):
(WebCore::ResourceRequest::applyWebArchiveHackForMail):
(WebCore::ResourceRequest::useQuickLookResourceCachingQuirks):
* platform/network/mac/UTIUtilities.mm:
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:]):
(-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
(-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
(-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
* platform/sql/SQLiteDatabase.h:
(WebCore::SQLiteDatabase::sqlite3Handle):
* platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::truncateDatabaseFile):
* platform/sql/SQLiteFileSystem.h:
* platform/sql/SQLiteTransaction.cpp:
(WebCore::SQLiteTransaction::begin):
(WebCore::SQLiteTransaction::commit):
(WebCore::SQLiteTransaction::rollback):
(WebCore::SQLiteTransaction::stop):
* platform/sql/ios/SQLiteDatabaseTracker.cpp: Added.
* platform/sql/ios/SQLiteDatabaseTracker.h: Copied from Source/WebCore/platform/MemoryPressureHandler.cpp.
* platform/sql/ios/SQLiteDatabaseTrackerClient.h: Copied from Source/WebCore/platform/KillRingNone.cpp.
* platform/text/PlatformLocale.cpp:
* platform/text/PlatformLocale.h:
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::cursorMovementIterator):
* platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::registerEncodingNames):
(WebCore::TextCodecICU::registerCodecs):
* platform/text/TextEncodingRegistry.cpp:
(WebCore::extendTextCodecMaps):
* platform/text/cf/HyphenationCF.cpp:
(WebCore::canHyphenate):
* platform/text/ios/LocalizedDateCache.h: Copied from Source/WebCore/platform/MemoryPressureHandler.h.
* platform/text/ios/LocalizedDateCache.mm: Added.
* platform/text/mac/CharsetData.h:
* platform/text/mac/LocaleMac.h:
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::formatDateTime):
(WebCore::LocaleMac::maximumWidthForDateType):
* platform/text/mac/TextBoundaries.mm:
(WebCore::isSkipCharacter):
(WebCore::isWhitespaceCharacter):
(WebCore::isWordDelimitingCharacter):
(WebCore::isSymbolCharacter):
(WebCore::isAmbiguousBoundaryCharacter):
(WebCore::tokenizerForString):
(WebCore::findSimpleWordBoundary):
(WebCore::findComplexWordBoundary):
(WebCore::findWordBoundary):
(WebCore::findNextWordFromIndex):
* platform/text/mac/TextCodecMac.cpp:
* platform/text/mac/TextCodecMac.h:
2014-01-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Consolidate developerExtrasEnabled to just InspectorEnvironment
https://bugs.webkit.org/show_bug.cgi?id=126717
Reviewed by Timothy Hatcher.
They all route to InspectorEnvironment::developerExtrasEnabled, so make
InspectorEnvironment available to all agents through InstrumentingAgents
and use that where needed.
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
* inspector/InspectorAgent.h:
(WebCore::InspectorAgent::create):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addMessageToConsole):
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
(WebCore::InspectorConsoleAgent::didReceiveResponse):
(WebCore::InspectorConsoleAgent::didFailLoading):
(WebCore::InspectorConsoleAgent::addConsoleMessage):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::enabled):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::frameDocumentUpdatedImpl):
(WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
(WebCore::InspectorInstrumentation::didCreateWebSocketImpl):
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::create):
(WebCore::InstrumentingAgents::inspectorEnvironment):
* inspector/PageConsoleAgent.cpp:
* inspector/PageConsoleAgent.h:
* inspector/WorkerConsoleAgent.cpp:
* inspector/WorkerConsoleAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
2014-01-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove Unnecessary InspectorAgent parameters
https://bugs.webkit.org/show_bug.cgi?id=126712
Reviewed by Timothy Hatcher.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::create):
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::create):
(WebCore::InspectorPageAgent::InspectorPageAgent):
* inspector/InspectorPageAgent.h:
2014-01-09 Antti Koivisto <antti@apple.com>
Remove an accidentally left-behind static_cast.
* dom/ElementDescendantIterator.h:
(WebCore::ElementDescendantIteratorAdapter<ElementType>::beginAt):
2014-01-09 Antti Koivisto <antti@apple.com>
Replace ElementIteratorAdapter find() with beginAt()
https://bugs.webkit.org/show_bug.cgi?id=126714
Reviewed by Andreas Kling.
ElementIteratorAdapter find() would return iterator for the argument element if it was
of correct type and in the right subtree. This is not really what you would expect from find()
so replace it with a simple beginAt() iterator construction function.
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::getAllElementsById):
* dom/ElementChildIterator.h:
(WebCore::ElementChildIteratorAdapter<ElementType>::beginAt):
(WebCore::ElementChildConstIteratorAdapter<ElementType>::beginAt):
* dom/ElementDescendantIterator.h:
(WebCore::ElementDescendantIteratorAdapter<ElementType>::beginAt):
(WebCore::ElementDescendantConstIteratorAdapter<ElementType>::beginAt):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formElementIndex):
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::rowAfter):
2014-01-09 Brian Burg <bburg@apple.com>
REGRESSION (r160152): Selection drag snapshot doesn't appear or has the wrong content on Retina
https://bugs.webkit.org/show_bug.cgi?id=125375
Reviewed by Darin Adler.
Move scaling of drag images by the device scale factor out of DragClient
and into WebCore. This removes several redundant copies and scaling operations.
Fix scaling bugs that were cancelled out by over-allocating the backing store.
* page/DragController.cpp:
(WebCore::DragController::startDrag): Scale the drag image for a link
according to the device scale factor before giving it to the OS.
(WebCore::DragController::doImageDrag): Scale the drag image for an image
according to the device scale factor before giving it to the OS.
* page/FrameSnapshotting.cpp:
(WebCore::snapshotFrameRect): Don't pre-scale or clip the snapshot. The
ImageBuffer does this already.
* platform/DragImage.cpp:
(WebCore::createDragImageFromSnapshot): Don't scale the backing store
when copying an ImageBuffer into an Image.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::copyImage): Draw the image in user-space coordinates,
not in backing-store coordinates. Remove unnecessary assertions. Crop the
buffer before drawing the image into it.
2014-01-09 Myles C. Maxfield <mmaxfield@apple.com>
Narrow underlines are too tall
https://bugs.webkit.org/show_bug.cgi?id=126708
Reviewed by Simon Fraser.
I made a typo in r158392 and used was settings the line rect's
height equal to its width. No one noticed because of the subsequent
if statement.
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-tall-underlines.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::computeLineBoundsAndAntialiasingModeForText):
2014-01-09 Antti Koivisto <antti@apple.com>
DocumentOrderedMap should use iterator
https://bugs.webkit.org/show_bug.cgi?id=126696
Reviewed by Andreas Kling.
* dom/DocumentOrderedMap.cpp:
(WebCore::keyMatchesId):
(WebCore::keyMatchesName):
(WebCore::keyMatchesMapName):
(WebCore::keyMatchesLowercasedMapName):
(WebCore::keyMatchesLowercasedUsemap):
(WebCore::keyMatchesLabelForAttribute):
(WebCore::keyMatchesWindowNamedItem):
(WebCore::keyMatchesDocumentNamedItem):
Switch to Element references.
(WebCore::DocumentOrderedMap::add):
(WebCore::DocumentOrderedMap::remove):
(WebCore::DocumentOrderedMap::get):
(WebCore::DocumentOrderedMap::getAllElementsById):
Use element iterator instead of ElementTraversal.
* dom/DocumentOrderedMap.h:
2014-01-09 Beth Dakin <bdakin@apple.com>
Margin tiles are not repainted when background color changes
https://bugs.webkit.org/show_bug.cgi?id=126541
-and corresponding-
<rdar://problem/15578131>
Reviewed by Simon Fraser.
This patch adds an optional parameter to GraphicsLayer::setNeedsDisplayInRect,
RenderLayerBacking::setContentsNeedDisplay(), and
RenderLayer::setBackingNeedsRepaint() that is used to determine whether or not to
clip the invalidation rect to the size of the layer. Then whenever the margin
needs to be repainted, we can call setNeedsDisplayInRect() with a rect that
includes the margin, and also indicate that it should not be clipped.
GraphicsLayer now takes an optional parameter which is an enum called
ShouldClipToLayer.
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
(WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
* platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setNeedsDisplayInRect):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
Make TileController::bounds() a virtual function, and declare it on TiledBacking
so that we can call it from RenderLayerBacking.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
RenderLayer also now takes an optional parameter which is an enum called
ShouldClipToLayer.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
If the margin needs to be repainted, call GraphicsLayer::setNeedsDisplayInRect
with a big enough rect and a ShouldClipToLayer value of DoNotClipToLayer.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
* rendering/RenderLayerBacking.h:
Whenever all of the root contents need to be repainted the margin will also need
to be repainted, so call setBackingNeedsRepaint() with the new parameter
indicating the the invalidation should NOT be clipped to the layer size.
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintRootContents):
2014-01-09 Bear Travis <betravis@adobe.com>
[CSS Shapes] Factor the ReferenceBox type out of BasicShapes
https://bugs.webkit.org/show_bug.cgi?id=126648
Reviewed by Dirk Schulze.
Moving ReferenceBox out of BasicShapes and into RenderStyleConstants
as the LayoutBox enum. Most of the changes are removing the BasicShape
namespace.
Refactoring, no new tests.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForBox):
(WebCore::boxForValue):
(WebCore::valueForBasicShape):
(WebCore::basicShapeForValue):
* css/BasicShapeFunctions.h:
* css/CSSBasicShapes.cpp:
(WebCore::CSSBasicShapeRectangle::cssText):
(WebCore::CSSBasicShapeRectangle::equals):
(WebCore::CSSBasicShapeCircle::cssText):
(WebCore::CSSBasicShapeCircle::equals):
(WebCore::CSSDeprecatedBasicShapeCircle::cssText):
(WebCore::CSSDeprecatedBasicShapeCircle::equals):
(WebCore::CSSBasicShapeEllipse::cssText):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::CSSDeprecatedBasicShapeEllipse::cssText):
(WebCore::CSSDeprecatedBasicShapeEllipse::equals):
(WebCore::CSSBasicShapePolygon::cssText):
(WebCore::CSSBasicShapePolygon::equals):
(WebCore::CSSBasicShapeInsetRectangle::cssText):
(WebCore::CSSBasicShapeInsetRectangle::equals):
(WebCore::CSSBasicShapeInset::cssText):
* css/CSSBasicShapes.h:
(WebCore::CSSBasicShape::layoutBox):
(WebCore::CSSBasicShape::setLayoutBox):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShapeProperty):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
* rendering/ClipPathOperation.h:
(WebCore::ShapeClipPathOperation::setReferenceBox):
(WebCore::ShapeClipPathOperation::referenceBox):
(WebCore::ShapeClipPathOperation::ShapeClipPathOperation):
(WebCore::BoxClipPathOperation::create):
(WebCore::BoxClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::BoxClipPathOperation):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createLayoutBoxShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape):
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::setShapeSize):
(WebCore::ShapeInfo::logicalTopOffset):
(WebCore::ShapeInfo::logicalLeftOffset):
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.h:
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend):
(WebCore::BasicShape::referenceBoxSize):
* rendering/style/BasicShapes.h:
(WebCore::BasicShape::layoutBox):
(WebCore::BasicShape::setLayoutBox):
(WebCore::BasicShape::BasicShape):
* rendering/style/RenderStyleConstants.h:
* rendering/style/ShapeValue.h:
(WebCore::ShapeValue::createLayoutBoxValue):
(WebCore::ShapeValue::layoutBox):
(WebCore::ShapeValue::ShapeValue):
2014-01-09 Tim Horton <timothy_horton@apple.com>
PDFDocumentImage can be very slow to do the initial paint
https://bugs.webkit.org/show_bug.cgi?id=126633
<rdar://problem/15770980>
Reviewed by Simon Fraser.
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::PDFDocumentImage):
(WebCore::PDFDocumentImage::size):
(WebCore::transformContextForPainting):
(WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
(WebCore::applyRotationForPainting):
(WebCore::PDFDocumentImage::drawPDFPage):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/mac/PDFDocumentImageMac.mm:
(WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
Store rotation from the PDF in degrees, since it can
only be 0, 90, 180, or 270, and don't do any trig to
perform the rotation, to avoid introducing minor rounding
issues in the size.
Once we're going to paint, if the difference between the
computed scale for each axis is due only to integer rounding
of the image size, use the same scale for both axes, to avoid
a CG slow-path which occurs whenever the scale is nonuniform.
2014-01-09 Antti Koivisto <antti@apple.com>
Disconnect child frames iteratively
https://bugs.webkit.org/show_bug.cgi?id=126700
Reviewed by Andreas Kling.
Use descendant iterator instead of recursion for traversal.
* dom/ContainerNode.cpp:
(WebCore::willRemoveChild):
(WebCore::willRemoveChildren):
(WebCore::ContainerNode::disconnectDescendantFrames):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::assertConnectedSubrameCountIsConsistent):
(WebCore::collectFrameOwners):
(WebCore::disconnectSubframes):
Get rid of the strange ChildFrameDisconnector class in favor of a function.
* dom/ContainerNodeAlgorithms.h:
(WebCore::disconnectSubframesIfNeeded):
2014-01-09 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Windows build fix for r161563.
Remove reference to removed file.
* bindings/js/JSBindingsAllInOne.cpp:
2014-01-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move InjectedScript classes into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=126598
Part 6: Put it all together. Make WebCore use the JavaScriptCore InjectedScript files.
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Remove old InjectedScript files.
* ForwardingHeaders/inspector/InjectedScript.h: Added.
* ForwardingHeaders/inspector/InjectedScriptBase.h: Added.
* ForwardingHeaders/inspector/InjectedScriptHost.h: Added.
* ForwardingHeaders/inspector/InjectedScriptManager.h: Added.
* ForwardingHeaders/inspector/InjectedScriptModule.h: Added.
* ForwardingHeaders/inspector/InspectorEnvironment.h: Added.
Expose headers to WebCore.
* inspector/InspectorController.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::developerExtrasEnabled):
(WebCore::InspectorController::canAccessInspectedScriptState):
(WebCore::InspectorController::functionCallHandler):
(WebCore::InspectorController::evaluateHandler):
(WebCore::InspectorController::willCallInjectedScriptFunction):
(WebCore::InspectorController::didCallInjectedScriptFunction):
* inspector/WorkerInspectorController.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::functionCallHandler):
(WebCore::WorkerInspectorController::evaluateHandler):
(WebCore::WorkerInspectorController::willCallInjectedScriptFunction):
(WebCore::WorkerInspectorController::didCallInjectedScriptFunction):
Make both InspectorControllers in WebCore be InspectorEnvironments.
* bindings/js/JSMainThreadExecState.h:
* bindings/js/JSMainThreadExecState.cpp:
(WebCore::evaluateHandlerFromAnyThread):
Make JSC::evaluate wrapper like the existing JSC::call wrapper.
These will be the ScriptFunctionCall implementations when debugging
a WebCore::Page or worker, instead of the pure JSC versions.
* inspector/PageInjectedScriptHost.h: Copied from Source/WebCore/inspector/CommandLineAPIModule.h.
* inspector/PageInjectedScriptHost.cpp: Copied from Source/WebCore/inspector/PageInjectedScriptManager.cpp.
(WebCore::PageInjectedScriptHost::type):
(WebCore::PageInjectedScriptHost::isHTMLAllCollection):
WebCore InjectedScriptHost implementation for DOM type handling.
* inspector/PageInjectedScriptManager.h:
* inspector/PageInjectedScriptManager.cpp:
(WebCore::PageInjectedScriptManager::PageInjectedScriptManager):
(WebCore::PageInjectedScriptManager::discardInjectedScriptsFor):
WebCore InjectedScriptManager implementation for CommandLineAPI and
specialized DOMWindow injected script management.
* bindings/js/JSBindingsAllInOne.cpp:
* inspector/CommandLineAPIHost.cpp:
* inspector/CommandLineAPIHost.h:
* inspector/CommandLineAPIModule.cpp:
(WebCore::CommandLineAPIModule::host):
* inspector/CommandLineAPIModule.h:
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::addToFrontend):
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::InjectedScriptCanvasModule):
* inspector/InjectedScriptCanvasModule.h:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorCanvasAgent.cpp:
* inspector/InspectorCanvasAgent.h:
(WebCore::InspectorCanvasAgent::create):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::create):
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorDebuggerAgent.h:
(WebCore::InspectorDebuggerAgent::injectedScriptManager):
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::create):
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorIndexedDBAgent.h:
(WebCore::InspectorIndexedDBAgent::create):
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::PageProfilerAgent::PageProfilerAgent):
(WebCore::InspectorProfilerAgent::create):
(WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorRuntimeAgent.cpp:
* inspector/InspectorRuntimeAgent.h:
(WebCore::InspectorRuntimeAgent::injectedScriptManager):
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::PageConsoleAgent):
* inspector/PageConsoleAgent.h:
(WebCore::PageConsoleAgent::create):
* inspector/PageDebuggerAgent.cpp:
* inspector/PageDebuggerAgent.h:
* inspector/PageRuntimeAgent.cpp:
* inspector/PageRuntimeAgent.h:
(WebCore::PageRuntimeAgent::create):
* inspector/WorkerConsoleAgent.cpp:
(WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
* inspector/WorkerConsoleAgent.h:
(WebCore::WorkerConsoleAgent::create):
* inspector/WorkerDebuggerAgent.cpp:
* inspector/WorkerDebuggerAgent.h:
* inspector/WorkerRuntimeAgent.cpp:
* inspector/WorkerRuntimeAgent.h:
(WebCore::WorkerRuntimeAgent::create):
Switch to using the Inspector namespace and JSC InjectedScript files.
* bindings/js/JSInjectedScriptManager.cpp: Removed.
* inspector/InjectedScript.h: Removed.
* inspector/InjectedScriptHost.cpp: Removed.
* inspector/InjectedScriptHost.h: Removed.
* inspector/InjectedScriptHost.idl: Removed.
Part 4: Move all inspector scripts into JavaScriptCore and update generators.
With the updated location switch to using the appropriate INSPECTOR_SCRIPTS_DIR
variable which defines where the scripts are.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Part 1: Extract InspectorInstrumentationCookie class from InspectorInstrumentation.
Currently InjectedScriptBase uses InspectorInstrumentation directly
to track calling into JavaScript for timeline purposes. We will remove
the direct call from InjectedScriptBase and extracting the Cookie class
will make that easier.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorInstrumentationCookie.cpp: Added.
(WebCore::InspectorInstrumentationCookie::InspectorInstrumentationCookie):
(WebCore::InspectorInstrumentationCookie::operator=):
(WebCore::InspectorInstrumentationCookie::~InspectorInstrumentationCookie):
* inspector/InspectorInstrumentationCookie.h: Added.
(WebCore::InspectorInstrumentationCookie::isValid):
(WebCore::InspectorInstrumentationCookie::instrumentingAgents):
(WebCore::InspectorInstrumentationCookie::hasMatchingTimelineAgentId):
2014-01-09 Pascal Jacquemart <p.jacquemart@samsung.com>
Cannot select multiple non-adjacent items in a multiple select control with the keyboard only
https://bugs.webkit.org/show_bug.cgi?id=15816
Reviewed by Chris Fleizach.
Test: fast/forms/listbox-non-contiguous-keyboard-selection.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::HTMLSelectElement):
New member m_allowsNonContiguousSelection defaults to false
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
Tracking CTRL modifier to start multiple non contiguous selection
* html/HTMLSelectElement.h: New member m_allowsNonContiguousSelection
(WebCore::HTMLSelectElement::allowsNonContiguousSelection): New getter
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::addFocusRingRects):
Following implementation made for spatial navigation
2014-01-09 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove unused overriding protocols.
https://bugs.webkit.org/show_bug.cgi?id=126630
Reviewed by Timothy Hatcher.
No new tests, No change in behavior.
Remove unused overriding protocols as these are not used anymore in Frontned.
-Page.setGeolocationOverride
-Page.clearGeolocationOverride
-Page.canOverrideGeolocation
-Page.setDeviceOrientationOverride
-Page.clearDeviceOrientationOverride
-Page.canOverrideGeolocation
-Network.setUserAgentOverride
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::GeolocationController):
(WebCore::GeolocationController::create):
(WebCore::GeolocationController::positionChanged):
(WebCore::provideGeolocationTo):
* Modules/geolocation/GeolocationController.h:
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::create):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
(WebCore::provideDeviceOrientationTo):
* dom/DeviceOrientationController.h:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
* inspector/InspectorPageAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::disable):
* inspector/InspectorResourceAgent.h:
* inspector/protocol/Network.json:
* inspector/protocol/Page.json:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::userAgent):
2014-01-09 Andrei Bucur <abucur@adobe.com>
[CSSRegions] Move regions auto-size code into RenderNamedFlowFragment
https://bugs.webkit.org/show_bug.cgi?id=122959
Reviewed by Mihnea Ovidenie.
Move the auto-height logic from RenderRegion to RenderNamedFlowFragment because it's
used only by the CSS Regions implementation.
Bug 126642 covers the auto-height logic move from RenderFlowThread to RenderNamedFlowThread.
Tests: No new tests, just refactorings.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::styleDidChange):
(WebCore::RenderFlowThread::validateRegions):
(WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
(WebCore::RenderFlowThread::initializeRegionsComputedAutoHeight):
(WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
(WebCore::RenderFlowThread::addForcedRegionBreak):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::styleDidChange):
(WebCore::RenderNamedFlowFragment::incrementAutoLogicalHeightCount):
(WebCore::RenderNamedFlowFragment::decrementAutoLogicalHeightCount):
(WebCore::RenderNamedFlowFragment::updateRegionHasAutoLogicalHeightFlag):
(WebCore::RenderNamedFlowFragment::updateLogicalHeight):
(WebCore::RenderNamedFlowFragment::pageLogicalHeight):
(WebCore::RenderNamedFlowFragment::layoutBlock):
(WebCore::RenderNamedFlowFragment::attachRegion):
(WebCore::RenderNamedFlowFragment::detachRegion):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::RenderRegion):
(WebCore::RenderRegion::pageLogicalHeight):
(WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
(WebCore::RenderRegion::isLastRegion):
(WebCore::RenderRegion::styleDidChange):
(WebCore::RenderRegion::attachRegion):
(WebCore::RenderRegion::detachRegion):
* rendering/RenderRegion.h:
* rendering/RenderRegionSet.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::writeRenderRegionList):
2014-01-09 Antti Koivisto <antti@apple.com>
Switch HTMLTableRowsCollection from Traversal<> to iterators
https://bugs.webkit.org/show_bug.cgi?id=126684
Reviewed by Andreas Kling.
This is the last remaining client of Traversal<> outside the iterator implementation.
* dom/ElementChildIterator.h:
(WebCore::ElementChildIteratorAdapter<ElementType>::find):
(WebCore::ElementChildConstIteratorAdapter<ElementType>::find):
Add find with the same semantics as ElementDescendantIterator::find.
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::rowAfter):
(WebCore::HTMLTableRowsCollection::lastRow):
2014-01-08 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r161176): http/tests/misc/authentication-redirect-3/authentication-sent-to-redirect-same-origin-with-location-credentials.html is failing on GTK
https://bugs.webkit.org/show_bug.cgi?id=126518
Reviewed by Martin Robinson.
Clear the credentials before calling willSendRequest on the client
to avoid sending the credentials to the API layer, but apply them
again to the request right before creating the new SoupRequest.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::continueAfterWillSendRequest):
(WebCore::doRedirect):
2014-01-08 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161532.
http://trac.webkit.org/changeset/161532
https://bugs.webkit.org/show_bug.cgi?id=126677
Caused lots of assertion failures (Requested by ap on
#webkit).
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::callReadyStateChangeListener):
(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::abort):
(WebCore::XMLHttpRequest::networkError):
(WebCore::XMLHttpRequest::abortError):
(WebCore::XMLHttpRequest::didSendData):
(WebCore::XMLHttpRequest::didReceiveData):
(WebCore::XMLHttpRequest::didTimeout):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchEventAndLoadEnd):
(WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
(WebCore::XMLHttpRequestProgressEventThrottle::fired):
(WebCore::XMLHttpRequestProgressEventThrottle::hasEventToDispatch):
(WebCore::XMLHttpRequestProgressEventThrottle::suspend):
* xml/XMLHttpRequestProgressEventThrottle.h:
* xml/XMLHttpRequestUpload.cpp:
(WebCore::XMLHttpRequestUpload::XMLHttpRequestUpload):
(WebCore::XMLHttpRequestUpload::dispatchEventAndLoadEnd):
* xml/XMLHttpRequestUpload.h:
2014-01-08 Brian Burg <bburg@apple.com>
Clean up confusing names and calculations in image-dragging functions
https://bugs.webkit.org/show_bug.cgi?id=126661
Reviewed by Timothy Hatcher.
No new tests.
* page/DragController.cpp:
(WebCore::DragController::doImageDrag): rename variables and
simplify the calculation of the image's scaled origin.
* platform/DragImage.cpp:
(WebCore::fitDragImageToMaxSize): rename variables.
2014-01-08 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove InspectorClient::captureScreenshot()
https://bugs.webkit.org/show_bug.cgi?id=126616
Reviewed by Joseph Pecoraro.
No new tests, No change in behavior.
Remove leftover mothod as Page.captureScreenshot API was removed in r160202.
* inspector/InspectorClient.h:
2014-01-08 Youenn Fablet <youennf@gmail.com>
Correctly set XHR loadend attributes (loaded and total).
https://bugs.webkit.org/show_bug.cgi?id=120828
Reviewed by Alexey Proskuryakov.
Added correct initialization of lengthComputable, loaded and total attributes
to XHR ProgressEvent events (load, loadstart, loadend, abort, error and timeout).
XMLHttpRequestProgressEventThrottle and XMLHttpRequestUpload now keep persistent knowledge
of m_loaded and m_total values with this patch.
Code refactoring to handle event dispatching in case of error in a single manner.
XMLHttpRequestProgressEventThrottle::dispatchProgressEvent is renamed as dispatchThrottledProgressEvent
XMLHttpRequestProgressEventThrottle::dispatchEventAndLoadend is replaced by dispatchProgressEvent(const AtomicString&)
Tests: http/tests/xmlhttprequest/loadstart-event-init.html
http/tests/xmlhttprequest/onabort-progressevent-attributes.html
http/tests/xmlhttprequest/onload-progressevent-attributes.html
http/tests/xmlhttprequest/upload-onabort-progressevent-attributes.html
http/tests/xmlhttprequest/upload-onload-progressevent-attributes.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::callReadyStateChangeListener): changed readystatechange event from ProgressEvent to Event (not cancellable, not bubblable) to better match the spec
(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::abort): code refactoring to handle error event dispatching in a single way
(WebCore::XMLHttpRequest::networkError): code refactoring to handle error event dispatching in a single way
(WebCore::XMLHttpRequest::abortError): code refactoring to handle error event dispatching in a single way
(WebCore::XMLHttpRequest::didSendData):
(WebCore::XMLHttpRequest::didReceiveData):
(WebCore::XMLHttpRequest::dispatchErrorEvents): dispatch progress events in case of error
(WebCore::XMLHttpRequest::didTimeout): code refactoring to handle error event dispatching in a single way
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestProgressEventThrottle.cpp: before the patch, the fact that a progress event is being throttled is stored indirectly (m_loaded or m_total not equal to zero). With the patch, this information is stored in m_hasThrottledProgressEvent. The m_loaded and m_total values are no longer set back to zero after a progress event is dispatched. This allows using these values to correctly initialize other ProgressEvent events (in particular loadend, abort, timeout...)
(WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEvent): always update the new m_loaded and m_total values. If progress event is not sent as part of the function call, store the fact that a progress event is being throttled through m_hasThrottledProgressEvent.
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent): used to send any ProgressEvent event that is not be throttled
(WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent): after the call, no progress event is throttled anymore
(WebCore::XMLHttpRequestProgressEventThrottle::fired): after the call, no progress event is throttled anymore
(WebCore::XMLHttpRequestProgressEventThrottle::hasEventToDispatch):
(WebCore::XMLHttpRequestProgressEventThrottle::suspend):
* xml/XMLHttpRequestProgressEventThrottle.h: introduced m_hasThrottledProgressEvent which stores whether a progress event is being throttled and m_computableLength which is used to initialize ProgressEvent computableLength
* xml/XMLHttpRequestUpload.cpp:
(WebCore::XMLHttpRequestUpload::XMLHttpRequestUpload):
(WebCore::XMLHttpRequestUpload::dispatchProgressEvent):
* xml/XMLHttpRequestUpload.h: introduced m_loaded, m_total and m_lengthComputable, similarly to XMLHttpRequestProgressEventThrottle
2014-01-08 Tim Horton <timothy_horton@apple.com>
TileController can fail to receive exposedRect from the drawing area if set at the wrong time
https://bugs.webkit.org/show_bug.cgi?id=126536
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export some things.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::setExposedRect):
Store the exposed rect on FrameView. When it changes, if the main frame
has a TiledBacking, inform it of the change.
* page/FrameView.h:
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::updateTileCoverageMap):
Make use of the fact that we can test if a rect is infinite
instead of having a separate boolean property for that.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::computeTileCoverage):
Push the FrameView's cached exposed rect down into the TiledBacking when it is created.
We only support clipping for the main frame TileController for now.
2014-01-07 Myles C. Maxfield <mmaxfield@apple.com>
a fractional value of the css letter-spacing property is not rendered as expected
https://bugs.webkit.org/show_bug.cgi?id=20606
Reviewed by Simon Fraser.
This turns on fractional letter-spacing and word-spacing CSS values.
It is taken mostly from Blink r153727 and iOS. Updating the relevant
types is all that is necessary
Existing tests have been updated.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* platform/graphics/Font.cpp:
(WebCore::Font::Font):
(WebCore::Font::width):
* platform/graphics/Font.h:
(WebCore::Font::wordSpacing):
(WebCore::Font::letterSpacing):
(WebCore::Font::setWordSpacing):
(WebCore::Font::setLetterSpacing):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::wordSpacing):
(WebCore::RenderStyle::letterSpacing):
(WebCore::RenderStyle::setWordSpacing):
(WebCore::RenderStyle::setLetterSpacing):
* rendering/style/RenderStyle.h:
2014-01-08 Anders Carlsson <andersca@apple.com>
Add WTF::StringView and use it for grammar checking
https://bugs.webkit.org/show_bug.cgi?id=126644
Reviewed by Antti Koivisto.
Use a StringView in TextCheckerClient::checkTextOfParagraph to avoid upconverting strings unnecessarily.
* editing/TextCheckingHelper.cpp:
(WebCore::checkTextOfParagraph):
Pass a StringView to TextCheckerClient::checkTextOfParagraph.
* loader/EmptyClients.h:
Update for TextCheckerClient changes.
* platform/text/TextCheckerClient.h:
Change TextCheckerClient::checkTextOfParagraph to take a StringView.
2014-01-08 Eric Carlson <eric.carlson@apple.com>
Unreviewed Windows build fix attempt after r161481.
* WebCore.vcxproj/copyForwardingHeaders.cmd:
2014-01-08 Andreas Kling <akling@apple.com>
Deploy RenderPtr in RenderMathMLOperator::updateFromElement().
<https://webkit.org/b/126628>
Reviewed by Antti Koivisto.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::updateFromElement):
Use RenderPtr/createRenderer for renderer creation.
Removed an unnecessary null check (text is always created.)
Also use RenderStyle::createAnonymousStyleWithDisplay()
helper to shorten down the code a bit.
2014-01-08 Alberto Garcia <berto@igalia.com>
Fix some compilation warnings
https://bugs.webkit.org/show_bug.cgi?id=126635
Reviewed by Csaba Osztrogonác.
Remove code that is no longer being used.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/texmap/GraphicsLayerTextureMapper.h:
* platform/gtk/PopupMenuGtk.cpp:
* platform/gtk/RedirectedXCompositeWindow.h:
2014-01-08 Zan Dobersek <zdobersek@igalia.com>
[Automake] Scripts for generated build targets do not necessarily produce their output
https://bugs.webkit.org/show_bug.cgi?id=126378
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: Touch the build targets that are generated through helper scripts that don't
assure the output is generated every time the script is invoked, most commonly due to unchanged
* bindings/gobject/GNUmakefile.am: Simply move the gdom-gen-symbols file into the output file
instead of copying it if the contents differ and removing it. This again ensures that the output
file is always newer than its dependencies, even if the input hasn't changed.
2014-01-08 Frédéric Wang <fred.wang@free.fr>
Remove invalid comments from mathtags.ing
https://bugs.webkit.org/show_bug.cgi?id=126629
Reviewed by Chris Fleizach.
* mathml/mathtags.in:
2014-01-08 Andreas Kling <akling@apple.com>
RenderMathMLRow::createAnonymousWithParentRenderer() should return RenderPtr.
<https://webkit.org/b/126631>
Reviewed by Antti Koivisto.
* rendering/mathml/RenderMathMLRow.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::createAnonymousWithParentRenderer):
Tweak to return RenderPtr<RenderMathMLRow> and removed comment(!)
about how this should return a smart pointer. Also take the
parent renderer as a RenderMathMLRoot& instead of a RenderObject*
since that's all we ever pass.
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::addChild):
Updated for new createAnonymousWithParentRenderer() signature.
2014-01-08 Mario Sanchez Prada <mario.prada@samsung.com>
AX: Make roleValue() return DescriptionListRole for <dl> elements
https://bugs.webkit.org/show_bug.cgi?id=126579
Reviewed by Chris Fleizach.
Implement AccessibilityList::roleValue() so it will return
ListRole or DescriptionListRole depending on the type of list.
No new tests needed, as no new functionality was added and ports
should still be exposing the right role for <dl> elements
* accessibility/AccessibilityList.cpp:
(WebCore::AccessibilityList::roleValue): Implemented.
* accessibility/AccessibilityList.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole): Removed extra checks for objects with ListRole role.
2014-01-08 Andreas Kling <akling@apple.com>
createMathMLOperator() should return RenderPtr.
<https://webkit.org/b/126622>
Reviewed by Antti Koivisto.
* rendering/mathml/RenderMathMLFenced.h:
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::createMathMLOperator):
Make this return a RenderPtr<RenderMathMLOperator>.
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
Updated for the new createMathMLOperator() signature.
2014-01-07 Antti Koivisto <antti@apple.com>
REGRESSION (r161195): Acid2 regression tests frequently fail
https://bugs.webkit.org/show_bug.cgi?id=126432
Reviewed by Anders Carlsson.
We would occasionally dump the render tree before the actual last resource on the page was loaded.
The problematic resource is an image loaded by an <object> tag nested as fallback of another <object>.
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderFallbackContent):
Force style recalc when rendering fallback content. The current mechanism for triggering the fallback content load
requires a style recalc.
2014-01-07 Andreas Kling <akling@apple.com>
createAnonymousMathMLBlock() should return RenderPtr.
<https://webkit.org/b/126583>
Reviewed by Antti Koivisto.
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::createAnonymousMathMLBlock):
Make this return a RenderPtr<RenderMathMLBlock> and removed the
EDisplay argument since it was always using the default (FLEX.)
* rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::addChild):
Updated for the new createAnonymousMathMLBlock() signature.
2014-01-07 Eric Carlson <eric.carlson@apple.com>
Teach MediaSessionManager to manage interruptions
https://bugs.webkit.org/show_bug.cgi?id=126530
Reviewed by Sam Weinig.
Tests: media/video-interruption-active-when-element-created.html
media/video-interruption-with-resume-allowing-play.html
media/video-interruption-with-resume-not-allowing-play.html
* WebCore.exp.in: Export functions needed by Internals.
Add MediaSession and MediaSessionManager.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Automatically pause/play for interruptions. Move media restriction management to a MediaSession.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Get rid of m_loadInitiatedByUserGesture and m_userStartedPlayback,
they aren't needed.
(WebCore::HTMLMediaElement::load): Ditto.
(WebCore::HTMLMediaElement::loadInternal): Use the media session to manage restrictions.
(WebCore::HTMLMediaElement::play): Remove redundant iOS code. Postpone playback if called
during an interruption.
(WebCore::HTMLMediaElement::pause): Remember to not resume playback when it ends if called during
an interruption.
(WebCore::HTMLMediaElement::potentiallyPlaying): Rearrange code to make it easier to understand.
(WebCore::HTMLMediaElement::couldPlayIfEnoughData): Ditto.
(WebCore::HTMLMediaElement::pausedForUserInteraction): Return true if paused because of an interruption.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Be explicit about
which restrictions are removed.
(WebCore::HTMLMediaElement::mediaType): MediaSessionManager::<Type> -> MediaSession::<Type>.
(WebCore::HTMLMediaElement::beginInterruption): New.
(WebCore::HTMLMediaElement::endInterruption): Ditto.
* html/HTMLMediaElement.h:
Pulled MediaSessionManagerToken out of MediaSessionManager.cpp, added functionality to manage interruptions.
* platform/audio/MediaSession.cpp: Added.
(WebCore::MediaSession::create):
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::~MediaSession):
(WebCore::MediaSession::beginInterruption): Inform client of interruption state change.
(WebCore::MediaSession::endInterruption): Ditto.
* platform/audio/MediaSession.h: Added.
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager): Initialize interruption counter.
(WebCore::MediaSessionManager::has): MediaType is defined in MediaSession.
(WebCore::MediaSessionManager::count): Ditto.
(WebCore::MediaSessionManager::beginInterruption): Inform all clients of interruption start if
not already in an interruption.
(WebCore::MediaSessionManager::endInterruption): Inform all clients if interruption has ended.
(WebCore::MediaSessionManager::addSession): Renamed from addToken. Set session interruption state.
(WebCore::MediaSessionManager::removeSession): Renamed from removeToken.
* platform/audio/MediaSessionManager.h:
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationMac::AudioDestinationMac): MediaSessionManagerToken -> MediaSession.
* platform/audio/mac/AudioDestinationMac.h:
* platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState): Ditto.
Make it possible for tests to begin and end interruptions.
* testing/Internals.cpp:
(WebCore::Internals::beginMediaSessionInterruption):
(WebCore::Internals::endMediaSessionInterruption):
* testing/Internals.h:
* testing/Internals.idl:
2014-01-07 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove leftover 'device metrics' code
https://bugs.webkit.org/show_bug.cgi?id=126607
Reviewed by Joseph Pecoraro.
No new tests, No changes in behavior.
Removes unused code related to 'device metrics'.
* css/MediaQueryEvaluator.cpp:
(WebCore::device_heightMediaFeatureEval):
(WebCore::device_widthMediaFeatureEval):
* inspector/InspectorClient.h:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::didLayout):
* inspector/InspectorPageAgent.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::innerHeight):
(WebCore::DOMWindow::innerWidth):
* page/Screen.cpp:
(WebCore::Screen::height):
(WebCore::Screen::width):
* rendering/TextAutosizer.cpp:
(WebCore::TextAutosizer::processSubtree):
2014-01-02 Andy Estes <aestes@apple.com>
[iOS] Upstream remainder of minimal-ui viewport changes
https://bugs.webkit.org/show_bug.cgi?id=126410
Reviewed by Sam Weinig.
* dom/ViewportArguments.h:
2014-01-07 Victor Costan <costan@gmail.com>
createElementNS handles element name 'xmlns' correctly.
https://bugs.webkit.org/show_bug.cgi?id=126553
Reviewed by Alexey Proskuryakov.
Tests: fast/dom/createElementNS-namespace-errors.html
fast/dom/setAttributeNS-namespace-errors.html
* dom/Document.cpp:
(WebCore::Document::hasValidNamespaceForElements): updated to match DOM3/DOM4 spec.
(WebCore::Document::hasValidNamespaceForAttributes): updated to match DOM3/DOM4 spec.
2014-01-07 Jer Noble <jer.noble@apple.com>
PlatformLayer containing scrollbars does not disappear when setting overflow:hidden on page root, until resize.
https://bugs.webkit.org/show_bug.cgi?id=116051
Reviewed by Simon Fraser.
Move the pre-existing call to addedOrRemovedScrollbar() outside of the else-statement
in updateScrollbars() so that changes made in the if-statement cause the scrollbar
layers to be updated. The scrollbarAddedOrRemoved local variable guarding access to
addedOrRemovedScrollbar() is already being set (but never checked) inside the if-statement.
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
2014-01-06 Jer Noble <jer.noble@apple.com>
HTML5 video tag Does Not Load in Apache htaccess/htpasswd Protected Directory
https://bugs.webkit.org/show_bug.cgi?id=40382
Reviewed by Eric Carlson.
Test: http/tests/media/video-auth.html
Adopt a new AVFoundation API to handle authentication challenge generated while loading
media through an AVAsset. The authentication request comes through as a
NSURLAuthenticationChallenge, and is wrapped in a WebCore::AuthenticationChallenge
by MediaPlayerPrivateAVFoundationObjC, and is sent up to the HTMLMediaElement to handle.
The HTMLMediaElement creates a ResourceRequest, and passes the challenge up to the
ResourceLoadNotifier.
To allow the HTMLMediaElement to initiate handling an AuthenticationChallenge without
actually creating a ResourceLoader, allow ResourceLoaderDelegate to accept a unique
identifier and a DocumentLoader in lieu of a ResourceLoader.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoadNotifier::didCancelAuthenticationChallenge):
* loader/ResourceLoadNotifier.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::shouldWaitForResponseToAuthenticationChallenge):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerShouldWaitForResponseToAuthenticationChallenge):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForResponseToAuthenticationChallenge):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
2014-01-07 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161447.
http://trac.webkit.org/changeset/161447
https://bugs.webkit.org/show_bug.cgi?id=126592
needs some more work (Requested by thorton on #webkit).
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
* page/FrameView.h:
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::setExposedRect):
(WebCore::TileController::setClipsToExposedRect):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::updateTileCoverageMap):
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
* rendering/RenderLayerBacking.h:
2014-01-07 Tim Horton <timothy_horton@apple.com>
TileController can fail to receive exposedRect from the drawing area if set at the wrong time
https://bugs.webkit.org/show_bug.cgi?id=126536
Reviewed by Anders Carlsson.
Move exposedRect to FrameView so it can be pushed in from WebKit before we have
a TiledBacking, and can be retrieved by the TiledBacking when it needs to.
* WebCore.exp.in:
Export some things.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::setExposedRect):
* page/FrameView.h:
Store the exposed rect on FrameView. When it changes, if the main frame
has a TiledBacking, inform it of the change.
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::exposedRect):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
Plumbing so that TileController can retrieve the exposedRect from FrameView.
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::platformCALayerExposedRect):
(WebCore::TileController::tilesWouldChangeForVisibleRect):
(WebCore::TileController::exposedRectDidChange):
(WebCore::TileController::computeTileCoverageRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::updateTileCoverageMap):
Don't store the exposed rect or clipsToExposedRect on TileController.
Instead, retrieve it from our client.
Make use of the fact that we can test if a rect is infinite
instead of having a separate boolean property for that.
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
(WebCore::RenderLayerBacking::exposedRect):
Hand the FrameView's exposedRect back to our GraphicsLayer.
We only support clipping for the main frame TileController for now.
* rendering/RenderLayerBacking.h:
2014-01-07 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r161381): [GTK] Rendering is broken in GTK after r161381
https://bugs.webkit.org/show_bug.cgi?id=126570
Reviewed by Tim Horton.
Use LayoutRect::infiniteRect() instead of IntRect::infiniteRect()
when a LayoutRect is expected.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::fragmentsBoundingBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::clippedByAncestor):
2014-01-07 Bear Travis <betravis@adobe.com>
[CSS Shapes] Change default value from 'auto' to 'none'
https://bugs.webkit.org/show_bug.cgi?id=126544
Reviewed by Sam Weinig.
Update the CSS infrastructure to accept 'none' as the default value
for shape-inside and shape-outside.
Updated existing parsing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShapeProperty):
* rendering/style/ShapeValue.h:
2014-01-07 Hans Muller <hmuller@adobe.com>
[CSS Shapes] shape-outside layout incorrect when line spans rounded box rounded corners
https://bugs.webkit.org/show_bug.cgi?id=126528
Reviewed by Andreas Kling.
BoxShape::getExcludedIntervals() now checks for the special case where the line spans the
top and bottom rounded corners - which implies that the excluded interval is the box's
horizontal extent.
Test: fast/shapes/shape-outside-floats/shape-outside-line-spans-box-corners.html
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::getExcludedIntervals):
2014-01-07 Alexey Proskuryakov <ap@apple.com>
Debug biuld fix.
Replace actionTag with mactionTag in assertions.
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
(WebCore::MathMLSelectElement::getSelectedActionChild):
2014-01-07 Frédéric Wang <fred.wang@free.fr>
Add Support for the semantics element.
https://bugs.webkit.org/show_bug.cgi?id=100626
Reviewed by Chris Fleizach.
Tests: mathml/presentation/semantics-2.html
mathml/presentation/semantics-3.html
mathml/presentation/semantics-4.html
This provides a complete support for the semantics element. When the first child is a content MathML, an annotation can be selected and displayed. The selection algorithm is identical to Gecko's one. The recognized annotations are text (e.g. LaTeX), presentation MathML, SVG and HTML.
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::childShouldCreateRenderer):
(WebCore::MathMLElement::attributeChanged):
(WebCore::MathMLElement::isPresentationMathML):
* mathml/MathMLElement.h:
(WebCore::MathMLElement::isMathMLToken):
(WebCore::MathMLElement::isSemanticAnnotation):
(WebCore::MathMLElement::isPresentationMathML):
(WebCore::MathMLElement::updateSelectedChild):
* mathml/MathMLInlineContainerElement.h:
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):
(WebCore::MathMLSelectElement::updateSelectedChild):
(WebCore::MathMLSelectElement::toggle):
* mathml/MathMLSelectElement.h:
* mathml/MathMLTextElement.h:
* mathml/mathattrs.in:
* mathml/mathtags.in:
2014-01-07 Pascal Jacquemart <p.jacquemart@samsung.com>
Fix compilation issue with GLES2 after http://webkit.org/b/126548
https://bugs.webkit.org/show_bug.cgi?id=126578
Reviewed by Brent Fulgham
* platform/graphics/opengl/TemporaryOpenGLSetting.cpp: added GLES2/gl2.h include
2014-01-07 László Langó <llango.u-szeged@partner.samsung.com>
Remove some extra includes from XML.
https://bugs.webkit.org/show_bug.cgi?id=126572
Reviewed by Anders Carlsson.
No new tests, no functionality changed.
* xml/XMLHttpRequest.cpp:
* xml/XMLHttpRequestUpload.cpp:
* xml/XMLHttpRequestUpload.h:
* xml/XPathEvaluator.cpp:
* xml/XPathExpression.cpp:
* xml/XPathExpressionNode.cpp:
* xml/XPathFunctions.cpp:
* xml/XPathNodeSet.cpp:
* xml/XPathParser.cpp:
* xml/XPathPath.cpp:
* xml/XPathPredicate.cpp:
* xml/XPathPredicate.h:
* xml/XPathResult.cpp:
* xml/XPathValue.cpp:
* xml/XPathVariableReference.cpp:
* xml/XSLImportRule.cpp:
* xml/XSLStyleSheetLibxslt.cpp:
* xml/XSLTProcessorLibxslt.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParserLibxml2.cpp:
2014-01-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Add toHTMLTableSectionElement() functions, and use it
https://bugs.webkit.org/show_bug.cgi?id=126418
Reviewed by Andreas Kling.
HTMLTableSectionElement covers tbody, tfoot, and thead tags. So, we can't
generate isHTMLTableSectionElement() by using template. This patch add
toHTMLTableSectionElement() manually in order to cleanup static_cast<>.
No new tests, no behavior change.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::tHead):
(WebCore::HTMLTableElement::tFoot):
(WebCore::HTMLTableElement::lastBody):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::rowIndex):
* html/HTMLTableSectionElement.h:
* html/HTMLTagNames.in:
2014-01-07 László Langó <llango.u-szeged@partner.samsung.com>
Remove some extra includes from SVG.
https://bugs.webkit.org/show_bug.cgi?id=126565
Reviewed by Dirk Schulze.
No new tests, no functionality changed.
* rendering/svg/RenderSVGBlock.cpp:
* rendering/svg/RenderSVGContainer.cpp:
* rendering/svg/RenderSVGEllipse.cpp:
* rendering/svg/RenderSVGEllipse.h:
* rendering/svg/RenderSVGHiddenContainer.cpp:
* rendering/svg/RenderSVGImage.cpp:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInlineText.cpp:
* rendering/svg/RenderSVGModelObject.cpp:
* rendering/svg/RenderSVGPath.cpp:
* rendering/svg/RenderSVGRect.cpp:
* rendering/svg/RenderSVGResource.cpp:
* rendering/svg/RenderSVGResourceClipper.cpp:
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceContainer.cpp:
* rendering/svg/RenderSVGResourceFilter.cpp:
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
* rendering/svg/RenderSVGResourceFilterPrimitive.h:
* rendering/svg/RenderSVGResourceGradient.cpp:
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourceLinearGradient.cpp:
* 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/RenderSVGResourceSolidColor.cpp:
* rendering/svg/RenderSVGResourceSolidColor.h:
* rendering/svg/RenderSVGRoot.cpp:
* rendering/svg/RenderSVGShape.cpp:
* rendering/svg/RenderSVGText.cpp:
* rendering/svg/RenderSVGTransformableContainer.cpp:
* rendering/svg/SVGInlineFlowBox.cpp:
* rendering/svg/SVGInlineTextBox.cpp:
* rendering/svg/SVGRenderSupport.cpp:
* rendering/svg/SVGRenderTreeAsText.cpp:
* rendering/svg/SVGRenderingContext.cpp:
* rendering/svg/SVGResources.cpp:
* rendering/svg/SVGResourcesCache.cpp:
* rendering/svg/SVGResourcesCycleSolver.cpp:
* rendering/svg/SVGRootInlineBox.cpp:
* rendering/svg/SVGTextChunk.cpp:
* rendering/svg/SVGTextChunkBuilder.cpp:
* rendering/svg/SVGTextLayoutAttributes.h:
* rendering/svg/SVGTextLayoutAttributesBuilder.h:
* rendering/svg/SVGTextLayoutEngine.cpp:
* rendering/svg/SVGTextLayoutEngine.h:
* rendering/svg/SVGTextMetricsBuilder.h:
* rendering/svg/SVGTextQuery.cpp:
* rendering/svg/SVGTextRunRenderingContext.cpp:
2014-01-07 Krzysztof Czech <k.czech@samsung.com>
[ATK] Expose aria-checked mixed state as ATK_STATE_INDETERMINATE
https://bugs.webkit.org/show_bug.cgi?id=125855
Reviewed by Mario Sanchez Prada.
Test: accessibility/aria-checked-mixed-value.html
Expose ATK_STATE_INDETERMINATE to support aria-checked mixed state
for radio and checkbox types.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
2014-01-07 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/126562> DOMProgressEvent has unspecified availability
Reviewed by Ryosuke Niwa.
* bindings/objc/PublicDOMInterfaces.h: Add DOMProgressEvent. It first appeared in 10.6.
2014-01-07 Mark Rowe <mrowe@apple.com>
Another Mountain Lion build fix.
The Mountain Lion version of NS_DEPRECATED_MAC generates a reference to a nonexistent
availability macro when the introduced and deprecated versions are the same. Follow
AppKit's lead in working around this by defining the macros that will be referenced
for the various possible OS version numbers. This isn't an issue on newer versions of
OS X as the Foundation availability macros expand directly in to __attributes__ rather
than in to the legacy availability maros.
* bindings/objc/WebKitAvailability.h:
2014-01-06 Mark Rowe <mrowe@apple.com>
Mountain Lion build fix.
* bindings/objc/WebKitAvailability.h: #define __AVAILABILITY_INTERNAL__MAC_TBD so that
the TBD version works on Mountain Lion. Newer OS versions use a slightly different set
of macros that already support this version. Add a missing #include so that defintions
of the Foundation availability macros can be found even if no other Foundation headers
were included first.
2014-01-06 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed, rolling out r161401.
http://trac.webkit.org/changeset/161401
https://bugs.webkit.org/show_bug.cgi?id=126418
REGRESSION(r161401): Break layout test on mac-wk1(Debug)
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::tHead):
(WebCore::HTMLTableElement::tFoot):
(WebCore::HTMLTableElement::lastBody):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::rowIndex):
* html/HTMLTableSectionElement.h:
2014-01-05 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/126500> Move Objective-C DOM bindings off the legacy WebKit availability macros
The legacy WebKit availability macros are verbose, confusing, and provide no benefit
over using the system availability macros directly. The original vision was that
they'd serve a cross-platform purpose but that never came to be.
The OS X version used in the new availability macros is based on the mapping in
JavaScriptCore/WebKitAvailability.h.
Part of <rdar://problem/15512304>.
Reviewed by Sam Weinig.
* bindings/objc/DOMCSS.h:
* bindings/objc/DOMEventException.h:
* bindings/objc/DOMException.h:
* bindings/objc/DOMExtensions.h:
* bindings/objc/DOMObject.h:
* bindings/objc/DOMRangeException.h:
* bindings/objc/DOMXPathException.h:
* bindings/objc/PublicDOMInterfaces.h:
* bindings/objc/WebScriptObject.h:
* bindings/scripts/CodeGeneratorObjC.pm:
(ReadPublicInterfaces):
(GenerateHeader): Tag enums with WK_ENUM_AVAILABLE_MAC and classes with WEBKIT_CLASS_AVAILABLE_MAC.
Remove the #ifs that we were previously generating now that enums are appropriately tagged.
* bindings/scripts/test/ObjC/DOMTestActiveDOMObject.h:
* bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h:
* bindings/scripts/test/ObjC/DOMTestCallback.h:
* bindings/scripts/test/ObjC/DOMTestCallbackInternal.h:
* bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.h:
* bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h:
* bindings/scripts/test/ObjC/DOMTestEventConstructor.h:
* bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h:
* bindings/scripts/test/ObjC/DOMTestEventTarget.h:
* bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h:
* bindings/scripts/test/ObjC/DOMTestException.h:
* bindings/scripts/test/ObjC/DOMTestExceptionInternal.h:
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h:
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h:
* bindings/scripts/test/ObjC/DOMTestInterface.h:
* bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h:
* bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.h:
* bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h:
* bindings/scripts/test/ObjC/DOMTestNamedConstructor.h:
* bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h:
* bindings/scripts/test/ObjC/DOMTestNode.h:
* bindings/scripts/test/ObjC/DOMTestNodeInternal.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObjInternal.h:
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h:
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h:
* bindings/scripts/test/ObjC/DOMTestTypedefs.h:
* bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h:
* bindings/scripts/test/ObjC/DOMattribute.h:
* bindings/scripts/test/ObjC/DOMattributeInternal.h:
* bindings/scripts/test/ObjC/DOMreadonly.h:
* bindings/scripts/test/ObjC/DOMreadonlyInternal.h:
2014-01-06 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r157851): trailing space inside an editable region could be erroneously collapsed
https://bugs.webkit.org/show_bug.cgi?id=126549
Reviewed by Sam Weinig.
The regression was caused by erroneous use of m_currentCharacterIsSpace in place of m_currentCharacterIsWS.
See the following two lines before the refactoring:
http://trac.webkit.org/browser/trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp?rev=157850#L3074
http://trac.webkit.org/browser/trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp?rev=157850#L3198
I've also cross-checked other places where m_currentCharacterIsSpace and m_currentCharacterIsWS are used.
Test: editing/inserting/inserting-trailing-space-and-letter.html
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleText):
2014-01-06 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove canOverrideDeviceMetrics and setDeviceMetricsOverride from protocol
https://bugs.webkit.org/show_bug.cgi?id=126149
Reviewed by Joseph Pecoraro.
No new tests, No changes in behavior.
These are not used anywhere in WebInspectorUI.
So, it removes unused Protocols and APIs.
* inspector/InspectorClient.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::disable):
* inspector/InspectorPageAgent.h:
* inspector/protocol/Page.json:
2014-01-06 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Add toHTMLTableSectionElement() functions, and use it
https://bugs.webkit.org/show_bug.cgi?id=126418
Reviewed by Anders Carlsson.
HTMLTableSectionElement covers tbody, tfoot, and thead tags. So, we can't
generate isHTMLTableSectionElement() by using template. This patch add
toHTMLTableSectionElement() manually in order to cleanup static_cast<>.
No new tests, no behavior change.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::tHead):
(WebCore::HTMLTableElement::tFoot):
(WebCore::HTMLTableElement::lastBody):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::rowIndex):
* html/HTMLTableSectionElement.h:
* html/HTMLTagNames.in:
2014-01-06 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/126559> Be more correct in dealing with NSControlSize
Reviewed by Ryosuke Niwa.
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::scrollbarControlSizeToNSControlSize): Helper function to map from ScrollbarControlSize
to NSControlSize.
(WebCore::ScrollbarThemeMac::registerScrollbar): Use the helper rather than casting.
(WebCore::ScrollbarThemeMac::scrollbarThickness): Use the helper.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::progressBarRectForBounds): Update the type of the local to NSControlSize.
(WebCore::RenderThemeMac::paintProgressBar): Ditto.
2014-01-06 Brent Fulgham <bfulgham@apple.com>
[WebGL] Be safer about toggling OpenGL state by using a scoped object to control setting lifetime.
https://bugs.webkit.org/show_bug.cgi?id=126548
Reviewed by Anders Carlsson.
No new tests since there is no change in behavior.
* GNUmakefile.list.am: Updated to build new TemporaryOpenGLSetting files.
* PlatformBlackBerry.cmake: Ditto
* PlatformEfl.cmake: Ditto
* PlatformGTK.cmake: Ditto
* PlatformNix.cmake: Ditto
* WebCore.vcxproj/WebCore.vcxproj: Ditto
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
* WebCore.xcodeproj/project.pbxproj: Ditto
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): Use new object.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::prepareTexture): Ditto
(WebCore::GraphicsContext3D::reshape): Ditto
* platform/graphics/opengl/TemporaryOpenGLSetting.cpp: Added.
(WebCore::TemporaryOpenGLSetting::TemporaryOpenGLSetting):
(WebCore::TemporaryOpenGLSetting::~TemporaryOpenGLSetting):
* platform/graphics/opengl/TemporaryOpenGLSetting.h: Added.
2014-01-06 Simon Fraser <simon.fraser@apple.com>
Hook up the RemoteScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=126547
Reviewed by Tim Horton.
Export lots of scrolling-related symbols for use by WebKit2.
* WebCore.exp.in:
2014-01-06 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove support for FileSystem in Frontend.
https://bugs.webkit.org/show_bug.cgi?id=126369
Reviewed by Joseph Pecoraro.
No new tests, No change in behavior.
Remove leftover codes from protocol after r156692.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* inspector/InspectorFrontendClient.h:
* inspector/InspectorFrontendClientLocal.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
* inspector/protocol/FileSystem.json: Removed.
2014-01-06 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] ASSERTION FAILED: m_segmentRanges.size() < m_segments.size()
https://bugs.webkit.org/show_bug.cgi?id=125770
Reviewed by Bem Jones-Bey.
When we have an e.g. up-side-down triangle, when the content doesn't fit in the bottom part of the shape,
and the adjusted content flows into the next region with a shape, we need to update the actual shape
and region. Since it wasn't updated, it led to a shape mismatch, which led to assert/layout error.
Test: fast/regions/shape-inside/shape-inside-on-multiple-regions-bottom-adjustment.html
* rendering/RenderBlockLineLayout.cpp:
(WebiCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread): Update current shape
and region, when adjustment occured.
2014-01-06 Seokju Kwon <seokju@webkit.org>
Web Inspector: Get rid of Inspector/BindingVisitors.h
https://bugs.webkit.org/show_bug.cgi?id=126374
Reviewed by Joseph Pecoraro.
No new tests, No change in behavior.
In r161204, methods related to BindingVisitors was removed.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptProfiler.h:
* inspector/BindingVisitors.h: Removed.
* inspector/InspectorCanvasAgent.cpp:
* inspector/InspectorMemoryAgent.cpp:
2014-01-06 Tim Horton <timothy_horton@apple.com>
Add {IntRect, FloatRect}::infiniteRect() and ::isInfinite()
https://bugs.webkit.org/show_bug.cgi?id=126537
Reviewed by Simon Fraser.
* platform/graphics/FloatRect.h:
(WebCore::FloatRect::infiniteRect):
(WebCore::FloatRect::isInfinite):
* platform/graphics/IntRect.h:
(WebCore::IntRect::infiniteRect):
(WebCore::IntRect::isInfinite):
Add infiniteRect() and isInfinite() to FloatRect and IntRect.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setNeedsDisplay):
* rendering/PaintInfo.h:
(WebCore::PaintInfo::applyTransform):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::fragmentsBoundingBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::collectFragments):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::clippedByAncestor):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):
Adopt the new functions.
2014-01-06 Seokju Kwon <seokju@webkit.org>
Web Inspector: Get rid of DOM.setFileInputFiles from Protocol
https://bugs.webkit.org/show_bug.cgi?id=126312
Reviewed by Joseph Pecoraro.
No new tests, No changes in behavior.
It is a dead code as all ports in WebKit don't support it.
And this patch removes all things related to DOM.setFileInputFiles in Frontend.
* inspector/InspectorClient.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::create):
* inspector/protocol/DOM.json:
2014-01-06 Brent Fulgham <bfulgham@apple.com>
[WebGL] Revise String Concatenation (Follow-up to r161247)
https://bugs.webkit.org/show_bug.cgi?id=126411
Reviewed by Dean Jackson.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniformLocation): Use more efficient string
concatenation per Darin Adler's suggestion.
2014-01-06 Brent Fulgham <bfulgham@apple.com>
[WebGL] FBO Depth Buffer Attachment Function Improperly Clearing with 0
https://bugs.webkit.org/show_bug.cgi?id=126538
<rdar://problem/15201336>
Reviewed by Dean Jackson.
Tested by webgl/1.0.2/resources/webgl_test_files/conformance/renderbuffers/framebuffer-object-attachment.html
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::initializeAttachments): Clear depth buffer with 1.0f (rather than 0), to match expected
default (clear) buffer state for OpenGL. Using 0 would require us to flip the clear mask for the depth attachment
type.
2014-01-06 Simon Fraser <simon.fraser@apple.com>
Add new files for UI-side scrolling
https://bugs.webkit.org/show_bug.cgi?id=126532
Reviewed by Anders Carlson.
* WebCore.xcodeproj/project.pbxproj: Make lots of scrolling-related headers Private
so WebKit2 can include them.
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::scheduleUpdateScrollPositionForNode): Callback that
indicates that the given node has been scrolled asynchronously. Currently only
handles the main frame.
* page/scrolling/ScrollingCoordinator.h: Add support for type-casts of a remote subclass
in another namespace.
(WebCore::ScrollingCoordinator::isRemoteScrollingCoordinator):
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::isRemoteScrollingTree):
2014-01-06 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-06 Gavin Barraclough <barraclough@apple.com>
Move ViewState to WebCore
https://bugs.webkit.org/show_bug.cgi?id=126488
Reviewed by Anders Carlson.
This change also partial reverts handling of LayerHostingMode, making this
a separate message again. With hindsight the new way of doing this wasn't
in all ways simpler, and it won't make sense to move this to WebCore.
* WebCore.xcodeproj/project.pbxproj:
* page/ViewState.h: Added.
- Moved from WebKit2, will be used by Page & FocusController.
2014-01-06 Martin Robinson <mrobinson@igalia.com>
[CMake] [GTK] Fix the build for the WebKitGTK+ developer configuration
https://bugs.webkit.org/show_bug.cgi?id=126505
Reviewed by Gustavo Noronha Silva.
* CMakeLists.txt: Add missing IDLS and source files to the lists.
* PlatformGTK.cmake: Add missing include directories and source files to the lists.
Use the GeoClue, GUdev, and gio-unix include paths and libraries and sort the list
of WebCore include directories.
* UseJSC.cmake: Align the sourced list with the contents of the bindings/js directory.
2014-01-06 Gavin Barraclough <barraclough@apple.com>
Refactor NSActivity handling code from ChildProcess to UserActivity
https://bugs.webkit.org/show_bug.cgi?id=126330
Unreviewed speculative Windows build fix.
* WebCore.vcxproj/WebCore.vcxproj:
- Added UserActivity.cpp/.h.
2014-01-06 peavo@outlook.com <peavo@outlook.com>
[Win] Link error.
https://bugs.webkit.org/show_bug.cgi?id=126526
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCore.vcxproj: Include UserActivity files in build.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2014-01-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[Nix] Adding screenRect implementation to PlatformScreenNix
https://bugs.webkit.org/show_bug.cgi?id=126231
Reviewed by Csaba Osztrogonác.
No new tests needed.
* platform/nix/PlatformScreenNix.cpp:
(WebCore::screenRect):
2014-01-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[Nix] Adding missing platform #ifs to WebCore files
https://bugs.webkit.org/show_bug.cgi?id=126227
Reviewed by Csaba Osztrogonác.
No new tests needed.
* loader/EmptyClients.h:
* page/ChromeClient.h:
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* platform/LocalizedStrings.h:
2014-01-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[Nix] Adding new strings to LocalizedStringsNix
https://bugs.webkit.org/show_bug.cgi?id=126228
Reviewed by Csaba Osztrogonác.
No new tests needed.
* platform/nix/LocalizedStringsNix.cpp:
(WebCore::submitButtonDefaultLabel):
(WebCore::inputElementAltText):
(WebCore::resetButtonDefaultLabel):
(WebCore::defaultDetailsSummaryText):
(WebCore::searchableIndexIntroduction):
(WebCore::fileButtonChooseFileLabel):
(WebCore::fileButtonChooseMultipleFilesLabel):
(WebCore::fileButtonNoFileSelectedLabel):
(WebCore::fileButtonNoFilesSelectedLabel):
(WebCore::contextMenuItemTagOpenLinkInNewWindow):
(WebCore::contextMenuItemTagDownloadLinkToDisk):
(WebCore::contextMenuItemTagCopyLinkToClipboard):
(WebCore::contextMenuItemTagOpenImageInNewWindow):
(WebCore::contextMenuItemTagDownloadImageToDisk):
(WebCore::contextMenuItemTagCopyImageToClipboard):
(WebCore::contextMenuItemTagCopyImageUrlToClipboard):
(WebCore::contextMenuItemTagOpenVideoInNewWindow):
(WebCore::contextMenuItemTagOpenAudioInNewWindow):
(WebCore::contextMenuItemTagDownloadVideoToDisk):
(WebCore::contextMenuItemTagDownloadAudioToDisk):
(WebCore::contextMenuItemTagCopyVideoLinkToClipboard):
(WebCore::contextMenuItemTagCopyAudioLinkToClipboard):
(WebCore::contextMenuItemTagToggleMediaControls):
(WebCore::contextMenuItemTagShowMediaControls):
(WebCore::contextMenuitemTagHideMediaControls):
(WebCore::contextMenuItemTagToggleMediaLoop):
(WebCore::contextMenuItemTagEnterVideoFullscreen):
(WebCore::contextMenuItemTagMediaPlay):
(WebCore::contextMenuItemTagMediaPause):
(WebCore::contextMenuItemTagMediaMute):
(WebCore::contextMenuItemTagOpenFrameInNewWindow):
(WebCore::contextMenuItemTagCopy):
(WebCore::contextMenuItemTagDelete):
(WebCore::contextMenuItemTagSelectAll):
(WebCore::contextMenuItemTagUnicode):
(WebCore::contextMenuItemTagInputMethods):
(WebCore::contextMenuItemTagGoBack):
(WebCore::contextMenuItemTagGoForward):
(WebCore::contextMenuItemTagStop):
(WebCore::contextMenuItemTagReload):
(WebCore::contextMenuItemTagCut):
(WebCore::contextMenuItemTagPaste):
(WebCore::contextMenuItemTagNoGuessesFound):
(WebCore::contextMenuItemTagIgnoreSpelling):
(WebCore::contextMenuItemTagLearnSpelling):
(WebCore::contextMenuItemTagSearchWeb):
(WebCore::contextMenuItemTagLookUpInDictionary):
(WebCore::contextMenuItemTagOpenLink):
(WebCore::contextMenuItemTagIgnoreGrammar):
(WebCore::contextMenuItemTagSpellingMenu):
(WebCore::contextMenuItemTagShowSpellingPanel):
(WebCore::contextMenuItemTagCheckSpelling):
(WebCore::contextMenuItemTagCheckSpellingWhileTyping):
(WebCore::contextMenuItemTagCheckGrammarWithSpelling):
(WebCore::contextMenuItemTagFontMenu):
(WebCore::contextMenuItemTagBold):
(WebCore::contextMenuItemTagItalic):
(WebCore::contextMenuItemTagUnderline):
(WebCore::contextMenuItemTagOutline):
(WebCore::contextMenuItemTagInspectElement):
(WebCore::contextMenuItemTagRightToLeft):
(WebCore::contextMenuItemTagLeftToRight):
(WebCore::contextMenuItemTagWritingDirectionMenu):
(WebCore::contextMenuItemTagTextDirectionMenu):
(WebCore::contextMenuItemTagDefaultDirection):
(WebCore::searchMenuNoRecentSearchesText):
(WebCore::searchMenuRecentSearchesText):
(WebCore::searchMenuClearRecentSearchesText):
(WebCore::AXDefinitionText):
(WebCore::AXDescriptionListText):
(WebCore::AXDescriptionListTermText):
(WebCore::AXDescriptionListDetailText):
(WebCore::AXFooterRoleDescriptionText):
(WebCore::AXSearchFieldCancelButtonText):
(WebCore::AXButtonActionVerb):
(WebCore::AXRadioButtonActionVerb):
(WebCore::AXTextFieldActionVerb):
(WebCore::AXCheckedCheckBoxActionVerb):
(WebCore::AXUncheckedCheckBoxActionVerb):
(WebCore::AXLinkActionVerb):
(WebCore::unknownFileSizeText):
(WebCore::imageTitle):
(WebCore::AXListItemActionVerb):
(WebCore::localizedMediaControlElementString):
(WebCore::localizedMediaControlElementHelpText):
(WebCore::localizedMediaTimeDescription):
(WebCore::mediaElementLoadingStateText):
(WebCore::mediaElementLiveBroadcastStateText):
(WebCore::validationMessagePatternMismatchText):
(WebCore::validationMessageRangeOverflowText):
(WebCore::validationMessageRangeUnderflowText):
(WebCore::validationMessageStepMismatchText):
(WebCore::validationMessageTooLongText):
(WebCore::validationMessageTypeMismatchText):
(WebCore::validationMessageTypeMismatchForEmailText):
(WebCore::validationMessageTypeMismatchForMultipleEmailText):
(WebCore::validationMessageTypeMismatchForURLText):
(WebCore::validationMessageValueMissingText):
(WebCore::validationMessageValueMissingForCheckboxText):
(WebCore::validationMessageValueMissingForFileText):
(WebCore::validationMessageValueMissingForMultipleFileText):
(WebCore::validationMessageValueMissingForRadioText):
(WebCore::validationMessageValueMissingForSelectText):
(WebCore::validationMessageBadInputForNumberText):
(WebCore::missingPluginText):
(WebCore::AXMenuListPopupActionVerb):
(WebCore::AXMenuListActionVerb):
(WebCore::multipleFileUploadText):
(WebCore::crashedPluginText):
(WebCore::blockedPluginByContentSecurityPolicyText):
(WebCore::insecurePluginVersionText):
(WebCore::inactivePluginText):
(WebCore::unacceptableTLSCertificate):
(WebCore::textTrackClosedCaptionsText):
(WebCore::textTrackSubtitlesText):
(WebCore::textTrackOffMenuItemText):
(WebCore::textTrackAutomaticMenuItemText):
(WebCore::textTrackNoLabelText):
(WebCore::snapshottedPlugInLabelTitle):
(WebCore::snapshottedPlugInLabelSubtitle):
2014-01-06 László Langó <lango@inf.u-szeged.hu>
Use unsigned consistently, and check for invalid casts when calling into SharedBuffer from other code.
https://bugs.webkit.org/show_bug.cgi?id=124579
Reviewed by Anders Carlsson.
* WebCore.exp.in:
* loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::didReceiveData):
* loader/NetscapePlugInStreamLoader.h:
* loader/PingLoader.h:
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::ResourceBuffer):
* loader/ResourceBuffer.h:
(WebCore::ResourceBuffer::create):
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::addDataOrBuffer):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::didReceiveDataOrBuffer):
(WebCore::ResourceLoader::willStopBufferingData):
* loader/ResourceLoader.h:
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveData):
* loader/SubresourceLoader.h:
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didReceiveData):
* loader/appcache/ApplicationCacheGroup.h:
* loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::didReceiveDataArray):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::SharedBuffer):
* platform/SharedBuffer.h:
(WebCore::SharedBuffer::create):
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::didReceiveData):
* platform/network/BlobResourceHandle.cpp:
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didReceiveData):
(WebCore::ResourceHandleClient::willStopBufferingData):
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::didReceiveData):
* platform/network/SynchronousLoaderClient.h:
* platform/network/blackberry/BlobStream.cpp:
(WebCore::BlobStream::didReceiveData):
* platform/network/blackberry/BlobStream.h:
* platform/network/blackberry/ResourceHandleBlackBerry.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveData):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveData):
* platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willStopBufferingData:]):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveData):
* platform/network/win/ResourceHandleWin.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveData):
2014-01-06 Andreas Kling <akling@apple.com>
RenderBlock::clone() should return RenderPtr.
<https://webkit.org/b/126513>
Reviewed by Antti Koivisto.
* rendering/RenderBlock.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::clone):
Tweaked to return RenderPtr<RenderBlock>.
(WebCore::RenderBlock::splitBlocks):
Store cloned RenderBlocks in RenderPtrs. Use leakPtr() to sink
them into ownership-taking APIs that still use raw pointers.
* rendering/RenderPtr.h:
Add a simple static_pointer_cast for RenderPtr&&.
2014-01-06 Andreas Kling <akling@apple.com>
RenderInline::clone() should return RenderPtr.
<https://webkit.org/b/126514>
Reviewed by Antti Koivisto.
* rendering/RenderInline.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::clone):
Tweaked to return RenderPtr<RenderInline>.
(WebCore::RenderInline::splitInlines):
Store cloned RenderInlines in RenderPtrs. Use leakPtr() to sink
them into ownership-taking APIs that still use raw pointers.
2014-01-06 Gurpreet Kaur <k.gurpreet@samsung.com>
<hr> appears gray instead of green because of color attribute is defined followed by noshade attribute
https://bugs.webkit.org/show_bug.cgi?id=17674
Reviewed by Simon Fraser.
The noshade attribute is a boolean attribute and when set on hr element
it shows a gray color. When there is color attribute the default gray
color should be replaced by the color mentioned by the color attribute.
Firefox and IE show the same behaviour but Webkit is different. Making
the behaviour of Webkit similiar to Firefox and IE's behaviour.
Test: fast/dom/HTMLHrElement/hr-color-noshade-attribute.html
* html/HTMLHRElement.cpp:
(WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
When the color attribute is present that value is applied and the
default gray color is ignored. Incase of no color attribute the default
gray color is applied.
2014-01-06 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/126499> Move WebKit off the legacy WebKit availability macros
The legacy WebKit availability macros are verbose, confusing, and provide no benefit
over using the system availability macros directly. The original vision was that
they'd serve a cross-platform purpose but that never came to be.
Since WebKit1 is API on OS X but SPI on iOS, some indirection is still needed in the
availability macros to allow the headers to advertise the API as unavailable on OS X
without interfering with the ability to build on iOS. This is achieved by defining
WEBKIT-prefixed versions of the Foundation availability macros that are defined to
their NS-prefixed equivalents. The installed headers are post-processed to map these
macros back to their Foundation equivalents.
Part of <rdar://problem/15512304>.
Reviewed by Sam Weinig.
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/WebKitAvailability.h: Added. This lives at the WebCore level since it
will be needed by the Objective-C DOM bindings.
2014-01-05 Simon Fraser <simon.fraser@apple.com>
Move responsibility for remote layer tree committing to RemoteLayerTreeDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=126501
Reviewed by Sam Weinig.
Add type-safe casting to GraphicsLayer.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::isGraphicsLayerCA):
(WebCore::GraphicsLayer::isGraphicsLayerCARemote):
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::isGraphicsLayerCA):
2014-01-05 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Ensure that the autotools build and the CMake install the same files
https://bugs.webkit.org/show_bug.cgi?id=116379
Reviewed by Gustavo Noronha Silva.
* PlatformGTK.cmake: Reformat some install directives to be consistent with the rest of them.
Install the GObject DOM bindings headers.
2014-01-05 Andreas Kling <akling@apple.com>
Use lineageOfType to simplify two rendering helpers.
<https://webkit.org/b/126498>
Reviewed by Antti Koivisto.
* rendering/RenderRuby.cpp:
(WebCore::findRubyRunParent):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::findTreeRootObject):
Simplify two functions that walk their parent chain to find the
closest ancestor of a certain type.
* rendering/RenderRubyRun.h:
Add requisite isRendererOfType<RenderRubyRun>().
2014-01-05 Csaba Osztrogonác <ossy@webkit.org>
Fix the Mac build too.
* page/PageThrottler.h:
2014-01-05 Csaba Osztrogonác <ossy@webkit.org>
Weekend URTBF after r161319 to make non Mac builds work again.
* page/PageThrottler.h:
2014-01-05 Gavin Barraclough <barraclough@apple.com>
Move process suppression of WebProcess to Page (from UIProcess)
https://bugs.webkit.org/show_bug.cgi?id=126480
Reviewed by Sam Weinig.
Let each page take a UserActivity rather than having to coalesce this state, and take different activity
tokens for normal visibility and suppression disabled, so we can see why the process is not suppressed.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::setIsVisuallyIdle):
* page/Page.h:
- setThrottled -> setIsVisuallyIdle.
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
- Initialize m_visuallyNonIdle.
(WebCore::PageThrottler::~PageThrottler):
- setThrottled -> setIsVisuallyIdle.
(WebCore::PageThrottler::setIsVisuallyIdle):
- Use m_visuallyNonIdle to disable supression when the page is not visually idle.
* page/PageThrottler.h:
- setThrottled -> setIsVisuallyIdle, added m_visuallyNonIdle.
2014-01-04 Sam Weinig <sam@webkit.org>
Move a few more functions from RenderBlock to RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=126494
Reviewed by Andreas Kling.
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::adjustInlineDirectionLineBounds):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::textAlignmentForLine):
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::startAlignedOffsetForLine):
These are only used by RenderBlockFlow, so move them there.
2014-01-04 Simon Fraser <simon.fraser@apple.com>
Prepare the ScrollingTree for remote use
https://bugs.webkit.org/show_bug.cgi?id=126493
Reviewed by Sam Weinig.
When committing the scrolling tree, we clone the ScrollingStateTree
to hand off to another thread, or (in future) to encode to send to the
UI process. During this cloning process, two types of layer transformations
take place: for threaded scrolling, we replace GraphicsLayer with PlatformLayers.
For remote scrolling, we'll replace GraphicsLayers with PlatformLayerIDs.
Allow the ScrollingCoordinator to specify which type of transformation occurs
by giving ScrollingStateTree a LayerRepresentation::Type member,
which is consulted during ScrollingStateNode cloning.
Also only copy layers that have changed to avoid setting dirty bits.
Expose some other stuff on ScrollingStateTree which will be needed for
remote scrolling.
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode):
* page/scrolling/ScrollingStateNode.h:
(WebCore::LayerRepresentation::operator GraphicsLayer::PlatformLayerID):
(WebCore::LayerRepresentation::toRepresentation):
(WebCore::ScrollingStateNode::changedProperties):
(WebCore::ScrollingStateNode::setChangedProperties):
(WebCore::ScrollingStateNode::parentNodeID):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::ScrollingStateTree):
(WebCore::ScrollingStateTree::commit):
(WebCore::ScrollingStateTree::setRemovedNodes):
(WebCore::ScrollingStateTree::stateNodeForID):
* page/scrolling/ScrollingStateTree.h:
(WebCore::ScrollingStateTree::nodeCount):
(WebCore::ScrollingStateTree::nodeMap):
(WebCore::ScrollingStateTree::preferredLayerRepresentation):
(WebCore::ScrollingStateTree::setPreferredLayerRepresentation):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeState):
2014-01-04 Sam Weinig <sam@webkit.org>
Move LineBreaker functions to LineBreaker.cpp
https://bugs.webkit.org/show_bug.cgi?id=126491
Reviewed by Simon Fraser.
- Moves LineBreaker::nextLineBreak() and LineBreaker::nextSegmentBreak() to
LineBreaker.cpp from RenderBlockLineLayout.cpp
- Moves requiresIndent() to LineWidth.h/cpp from RenderBlockLineLayout.cpp
so it can be shared.
- Adds missing inline specifier to BreakingContext::handleEndOfLine() to avoid
duplicate symbols.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::updateLogicalInlinePositions):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleEndOfLine):
* rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::nextLineBreak):
(WebCore::LineBreaker::nextSegmentBreak):
* rendering/line/LineWidth.cpp:
(WebCore::requiresIndent):
* rendering/line/LineWidth.h:
2014-01-04 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Fix the video and audio build
https://bugs.webkit.org/show_bug.cgi?id=126464
Reviewed by Philippe Normand.
* PlatformGTK.cmake: Complete the audio and video source lists.
2014-01-04 Zan Dobersek <zdobersek@igalia.com>
Explicitly use the std:: nested name specifier when using std::pair, std::make_pair
https://bugs.webkit.org/show_bug.cgi?id=126439
Reviewed by Andreas Kling.
Instead of relying on std::pair and std::make_pair symbols being present in the current scope
through the pair and make_pair symbols, the std:: specifier should be used explicitly.
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::scheduleNotifyDatabaseChanged):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::rowIndexRange):
(WebCore::AccessibilityARIAGridCell::columnIndexRange):
* accessibility/AccessibilityARIAGridCell.h:
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::mathPrescripts):
(WebCore::AccessibilityRenderObject::mathPostscripts):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::cellForColumnAndRow):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::rowIndexRange):
(WebCore::AccessibilityTableCell::columnIndexRange):
* accessibility/AccessibilityTableCell.h:
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
(webkitAccessibleTableGetColumnAtIndex):
(webkitAccessibleTableGetRowAtIndex):
(webkitAccessibleTableGetColumnExtentAt):
(webkitAccessibleTableGetRowExtentAt):
(webkitAccessibleTableGetColumnHeader):
(webkitAccessibleTableGetRowHeader):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
(-[WebAccessibilityObjectWrapper accessibilityRowRange]):
(-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(convertMathPairsToNSArray):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
* bindings/js/SerializedScriptValue.cpp:
* dom/ContainerNode.cpp:
* dom/StyledElement.cpp:
(WebCore::attributeNameSort):
* html/MediaFragmentURIParser.cpp:
(WebCore::MediaFragmentURIParser::parseTimeFragment):
* html/parser/HTMLMetaCharsetParser.h:
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
(WebCore::ContentSearchUtils::searchInTextByLines):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::diff):
(WebCore::DOMPatchSupport::innerPatchChildren):
* inspector/DOMPatchSupport.h:
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::enable):
(WebCore::InspectorAgent::evaluateForTestInFrontend):
* inspector/InspectorAgent.h:
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::brokenImage):
* loader/cache/CachedImage.h:
* platform/URL.cpp:
(WebCore::findHostnamesInMailToURL):
(WebCore::encodeHostnames):
* platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontData):
* platform/graphics/WidthIterator.cpp:
* platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::adopt):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::parseCacheControlDirectives):
(WebCore::parseCacheHeader):
* platform/text/AtomicStringKeyedMRUCache.h:
* platform/text/LineBreakIteratorPoolICU.h:
* rendering/InlineFlowBox.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageSizeForError):
(WebCore::RenderImage::paintReplaced):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::cachedCollapsedBorder):
* rendering/RenderTableSection.h:
* rendering/svg/SVGTextRunRenderingContext.cpp:
(WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
* svg/SVGAnimatedAngle.cpp:
(WebCore::SVGAnimatedAngleAnimator::constructFromString):
(WebCore::SVGAnimatedAngleAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):
* svg/SVGAnimatedIntegerOptionalInteger.cpp:
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
* svg/SVGAnimatedNumberOptionalNumber.cpp:
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::constructFromString):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
* svg/SVGAnimatedType.cpp:
(WebCore::SVGAnimatedType::createIntegerOptionalInteger):
(WebCore::SVGAnimatedType::createNumberOptionalNumber):
* svg/SVGAnimatedType.h:
(WebCore::SVGAnimatedType::integerOptionalInteger):
(WebCore::SVGAnimatedType::numberOptionalNumber):
* svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues):
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
* svg/SVGParserUtilities.h:
* svg/animation/SMILTimeContainer.h:
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Attempt to fix EFL build.
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::setHasChangedProperties):
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Clean up the means of committing the scrolling state tree
https://bugs.webkit.org/show_bug.cgi?id=126482
Reviewed by Tim Horton.
ScrollingStateNodes would manually call scrollingStateTree().setHasChangedProperties()
after setPropertyChanged() in lots of places, which was repetitive, and
AsyncScrollingCoordinator manually called scheduleTreeStateCommit() in many places.
Clean up both of these with a clearer trigger for state tree commits.
ScrollingStateNodes::setPropertyChanged() calls ScrollingStateTree::setHasChangedProperties(),
which turns around and tells the ScrollingCoordinator that the state tree became dirty.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreePropertiesChanged):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
(WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
(WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
(WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
(WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
(WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
(WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
(WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::updateConstraints):
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::setPropertyChanged):
(WebCore::ScrollingStateNode::setLayer):
* page/scrolling/ScrollingStateNode.h:
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::setViewportRect):
(WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
(WebCore::ScrollingStateScrollingNode::setScrollOrigin):
(WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
(WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
(WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
(WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
(WebCore::ScrollingStateScrollingNode::setHeaderHeight):
(WebCore::ScrollingStateScrollingNode::setFooterHeight):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::updateConstraints):
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::create):
(WebCore::ScrollingStateTree::ScrollingStateTree):
(WebCore::ScrollingStateTree::setHasChangedProperties):
(WebCore::ScrollingStateTree::didRemoveNode):
* page/scrolling/ScrollingStateTree.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Try to fix CoordinatedGraphics build after r161303. Remove implementations
which are now in the cross-platform file.
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
* page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp:
* page/scrolling/coordinatedgraphics/ScrollingStateScrollingNodeCoordinatedGraphics.cpp:
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Simplify ScrollingStateNode references to various layer types
https://bugs.webkit.org/show_bug.cgi?id=126477
Reviewed by Tim Horton.
ScrollingStateNodes referenced both GraphicsLayer and PlatformLayers, in
confusing ways. In the main thread they have a GraphicsLayer*, but need
to check to see if the underlying PlatformLayer changed. Then, when
cloned to commit to the scrolling thread, they drop the GraphicsLayer
and store a PlatformLayer.
Hide the complexity (and prepare for the future) by adding LayerRepresentation,
which wraps various different flavors of layers, and knows how to check whether
the PlatformLayer underlying a GraphicsLayer changed.
ScrollingStateNode layer setters then just take and compare LayerRepresentations.
Copy constructors convert to a PlatformLayer representation (though not really
in the right place currently), and ScrollingTreeNodes get PlatformLayers.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::syncLayerPositionForViewportRect):
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::setLayer):
* page/scrolling/ScrollingStateNode.h:
(WebCore::LayerRepresentation::LayerRepresentation):
(WebCore::LayerRepresentation::operator GraphicsLayer*):
(WebCore::LayerRepresentation::operator PlatformLayer*):
(WebCore::LayerRepresentation::operator GraphicsLayer::PlatformLayerID):
(WebCore::LayerRepresentation::operator ==):
(WebCore::LayerRepresentation::toPlatformLayer):
(WebCore::LayerRepresentation::representsGraphicsLayer):
(WebCore::LayerRepresentation::representsPlatformLayer):
(WebCore::LayerRepresentation::representsPlatformLayerID):
(WebCore::ScrollingStateNode::layer):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::syncLayerPositionForViewportRect):
* page/scrolling/mac/ScrollingStateNodeMac.mm:
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::updateBeforeChildren):
2014-01-03 Brent Fulgham <bfulgham@apple.com>
[WebGL] Blit operation from Multisample FBO to rendering FBO must ignore GL_SCISSOR test
https://bugs.webkit.org/show_bug.cgi?id=126470
<rdar://problem/15201370>
Reviewed by Dean Jackson.
Covered by webgl/1.0.2/resources/webgl_test_files/conformance/rendering/gl-scissor-test.html
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary): Temporarily deactivate the GL_SCISSOR
test while we do our blit, then reactivate if necessary.
2014-01-03 Brent Fulgham <bfulgham@apple.com>
[WebGL] CGLPixelFormat should specify SampleBuffer and Sample count when using MSAA
https://bugs.webkit.org/show_bug.cgi?id=126468
Reviewed by Dean Jackson.
Covered by webgl/1.0.2/resources/webgl_test_files/conformance/rendering/gl-scissor-test.html
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::setPixelFormat): Add kCGLPFAMultisample, kCGLPFASampleBuffers (and count), and
kCGLPFASamples (and count) to our pixel format when 'antialias=true'.
(WebCore::GraphicsContext3D::GraphicsContext3D): Pass a new 'antialias' flag to the setPixelFormat
method so we can turn on MSAA features when needed.
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Give all PlatformCALayers a PlatformLayerID, not just remote ones
https://bugs.webkit.org/show_bug.cgi?id=126466
Reviewed by Tim Horton.
The ScrollingStateTree has references to both GraphicsLayers and PlatformLayers
which is confusing, and is necessary because the underlying PlatformLayer
inside a GraphicsLayer can change. In order to hide some of this complexity,
expose GraphicsLayer::primaryLayerID() which is a PlatformLayerID that clients
can hold onto to test for underlying layer swapping.
Also constify LayerType m_layerType on PlatformCALayer, which required
cleaning up the construction of PlatformCALayerMac in the case where a
PlatformCALayerMac is wrapping an existing CALayer (which happens for video).
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::primaryLayerID):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::primaryLayerID):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::generateLayerID):
(WebCore::PlatformCALayer::PlatformCALayer):
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::layerID):
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::create):
(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::commonInit):
2014-01-03 Andreas Kling <akling@apple.com>
Add lineageOfType renderer iterator and start using it.
<https://webkit.org/b/126456>
Add a convenient way to iterate over a renderers ancestry *including*
the starting point renderer (if it meets the type criteria.)
This works just like lineageOfType for Elements.
Reviewed by Geoffrey Garen.
* rendering/RenderAncestorIterator.h:
(WebCore::lineageOfType):
Added. Returns an adapter for walking a renderer's entire lineage
matching any renderer of the given type.
* rendering/RenderBoxModelObject.h:
* rendering/RenderLayerModelObject.h:
Add the requisite isRendererOfType<T> helpers.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::enclosingFloatPaintingLayer):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingLayer):
(WebCore::RenderObject::enclosingBox):
(WebCore::RenderObject::enclosingBoxModelObject):
Simplify with lineageOfType. Added some FIXMEs about functions
that should return references instead of pointers.
2014-01-03 Martin Robinson <mrobinson@igalia.com>
Small build fix for the GTK+ CMake port
* PlatformGTK.cmake: Add an IDL file that is missing from the list of IDLs
used to generate GObject DOM bindings.
2014-01-03 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/css changes
https://bugs.webkit.org/show_bug.cgi?id=126237
Reviewed by Simon Fraser.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Added iOS-specific code and FIXME comment.
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext): Ditto.
(WebCore::CSSParser::parseValue): Ditto.
* css/CSSPropertyNames.in: Added property -webkit-composition-fill-color. Also added FIXME comment.
* css/CSSValueKeywords.in: Added iOS-specific -apple-system-* values.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Added iOS-specific code and FIXME comments.
* css/MediaFeatureNames.h: Added media feature -webkit-video-playable-inline.
* css/MediaQueryEvaluator.cpp:
(WebCore::isRunningOnIPhoneOrIPod): Added. Also added FIXME comment.
(WebCore::video_playable_inlineMediaFeatureEval): Added.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement): Substitute toHTMLMediaElement() for toMediaElement().
(WebCore::StyleResolver::applyProperty): Added iOS-specific code and FIXME comment.
* css/html.css: Added iOS-specific CSS styles.
(input, textarea, keygen, select, button, isindex):
(isindex):
(input[type="date"]):
(input[type="datetime"]):
(input[type="datetime-local"]):
(input[type="month"]):
(input[type="time"]):
(textarea):
(input:-webkit-autofill):
(input[type="radio"], input[type="checkbox"]):
(input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button):
(input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
(input[type="range"]::-webkit-slider-thumb:active):
(input:disabled, textarea:disabled):
(input[readonly], textarea[readonly]):
(textarea::-webkit-input-placeholder):
(input[type="checkbox"]):
(input[type="radio"]):
(input[type="checkbox"]:checked, input[type="radio"]:checked):
(input[type="checkbox"]:checked:disabled, input[type="radio"]:checked:disabled):
(select:focus):
(select):
* css/mathml.css: Added iOS-specific CSS styles.
(math, mfenced > *):
(mo, mfenced):
* css/mediaControlsiOS.css: Added.
* css/svg.css: Added iOS-specific CSS styles.
(text, tspan, tref):
2014-01-03 Brent Fulgham <bfulgham@apple.com>
[WebGL] glScissor test is not accounted for when generating internal rendering textures.
https://bugs.webkit.org/show_bug.cgi?id=126455
<rdar://problem/15744206>
Reviewed by Dean Jackson.
Covered by webgl/1.0.2/conformance/rendering/gl-scissor-test.html
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::prepareTexture): Check state of GL_SCISSOR_TEST and GL_DITHER, deactivate them during
our internal drawing, then turn them back on for further processing.
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Maybe fix Windows build.
* WebCore.vcxproj/copyForwardingHeaders.cmd:
2014-01-03 Jer Noble <jer.noble@apple.com>
[MediaControls][iOS] Enable JavaScript Media Controls on iOS.
https://bugs.webkit.org/show_bug.cgi?id=126440
Reviewed by Eric Carlson.
Drive-by misspelling fix, and add a convenience function to check if the
controls are currently hidden:
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.handleWrapperMouseOut):
(Controller.prototype.updatePlaying):
(Controller.prototype.controlsAreHidden): Added.
Add a new subclass of Controller for iOS and a matching CSS:
* Modules/mediacontrols/mediaControlsiOS.css: Added.
* Modules/mediacontrols/mediaControlsiOS.js: Added.
(createControls): Override the createControls() in mediaControlsApple.js.
(ControllerIOS): Define a new class.
(ControllerIOS.prototype.inheritFrom): Convenience method to mixin parent
prototype methods.
(ControllerIOS.prototype.createBase): Override, listen for touches instead of mouse events.
(ControllerIOS.prototype.createControls): Ditto.
(ControllerIOS.prototype.configureInlineControls): Override, only add play, timeline, and full
screen butttons.
(ControllerIOS.prototype.configureFullScreenControls): Override, and add no buttons.
(ControllerIOS.prototype.handlePlayButtonTouchStart): Activate.
(ControllerIOS.prototype.handlePlayButtonTouchEnd): De-activate and do action.
(ControllerIOS.prototype.handlePlayButtonTouchCancel): De-activate and cancel.
(ControllerIOS.prototype.handleWrapperTouchStart): Show controls.
(ControllerIOS.prototype.handlePanelTouchStart): Disable video selection.
(ControllerIOS.prototype.handlePanelTouchEnd): Re-enable video selection.
(ControllerIOS.prototype.handlePanelTouchCancel): Ditto.
Drive-by fix to enable the JavaScript controls when the plugin is disabled:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
Add the iOS JavaScript by appending it to the generic (Apple) JavaScript:
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsScript):
Add new files to project:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Allow the ChromeClient to provide a custom ScrollingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=126450
Reviewed by Tim Horton.
Some platforms will want to provide a custom ScrollingCoordinator, so let
them do so by asking ChromeClient first for one.
* page/ChromeClient.h:
(WebCore::ChromeClient::createScrollingCoordinator):
* page/Page.cpp:
(WebCore::Page::scrollingCoordinator):
2014-01-03 Andreas Kling <akling@apple.com>
Deploy more child renderer iterators in RenderBlockFlow.
<https://webkit.org/b/126434>
Reviewed by Sam Weinig.
* rendering/RenderBlockFlow.cpp:
(WebCore::shouldCheckLines):
Make this helper take a RenderBlockFlow instead of a RenderObject
and simplified it a bit. RenderDeprecatedFlexibleBox does not
derive from RenderBlockFlow so those checks can be omitted.
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):
(WebCore::RenderBlockFlow::lineAtIndex):
(WebCore::RenderBlockFlow::lineCount):
(WebCore::RenderBlockFlow::clearTruncation):
Use childrenOfType to iterate over block and block-flow children.
Tweaked some early return/continue to reduce nesting.
2014-01-03 Simon Fraser <simon.fraser@apple.com>
Allow different types of ScrollingTrees to have different types of ScrollingTreeNode subclasses
https://bugs.webkit.org/show_bug.cgi?id=126445
Reviewed by Tim Horton.
Make it possible to have ScrollingTree subclasses with different subclasses of ScrollingTreeNodes,
by giving ScrollingTree a pure virtual createNode() function. ThreadedScrollingTree implements
this, and then delegates node creation to its AsyncScrollingCoordinator (since we have
a ScrollingCoordinatorMac but no real need for a ThreadedScrollingTreeMac).
Also made ThreadedScrollingTree's m_scrollingCoordinator an AsyncScrollingCoordinator,
since by definition a threaded scrolling tree uses an async coordinator.
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::create):
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::createNode):
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::create):
2014-01-03 Gavin Barraclough <barraclough@apple.com>
Refactor NSActivity handling code from ChildProcess to UserActivity
https://bugs.webkit.org/show_bug.cgi?id=126330
Unreviewed build fix.
* platform/UserActivity.h:
- case fix.
2014-01-02 Gavin Barraclough <barraclough@apple.com>
Refactor NSActivity handling code from ChildProcess to UserActivity
https://bugs.webkit.org/show_bug.cgi?id=126330
Reviewed by Sam Weinig.
UserActivity is a mechanism to express to the operating system (where appropriate)
that a user initiated activity is taking place, and as such that resources should be
made available to the process accordingly.
Currently we hold a single NSActivity, at the WebKit layer. This refactoring allows us
to hold different activity tokens for different user actions (which simplifies the
handling, and aides debugging since the token can more accurately express the activity
taking place), and also will allow us to avoid the layering difficulty of calling back
up the stack to WebKit to register that an activity is taking place.
* WebCore.xcodeproj/project.pbxproj:
- added new files.
* platform/UserActivity.cpp: Added.
(WebCore::UserActivity::UserActivity):
- nop implementation - ignore description.
(WebCore::UserActivity::beginActivity):
(WebCore::UserActivity::endActivity):
- nop implementation - just inc/dec m_count.
* platform/UserActivity.h: Added.
(WebCore::UserActivity::isActive):
- returns true if one or more instance of this activity is in progress.
* platform/mac/UserActivityMac.mm: Added.
(WebCore::UserActivity::UserActivity):
- constructor accepts one argument, a description string.
(WebCore::UserActivity::isValid):
- used by assertions.
(WebCore::UserActivity::beginActivity):
(WebCore::UserActivity::endActivity):
- track start/end of an activity - calls to these methods should be balanced.
(WebCore::UserActivity::hysteresisTimerFired):
- used to implement hysteresis in releasing NSActivity.
2014-01-03 Alexey Proskuryakov <ap@apple.com>
Line ending conversion should be able to handle strings with null chars
https://bugs.webkit.org/show_bug.cgi?id=126202
This is a merge from Blink.
Reviewed by Alexey Proskuryakov.
Test: http/tests/local/formdata/send-form-data-with-string-containing-null.html
* platform/text/LineEnding.cpp: (WebCore::normalizeToCROrLF): Do it right.
2014-01-03 Alberto Garcia <berto@igalia.com>
WebKit-GTK 1.8.1 does not build on OS X 10.7
https://bugs.webkit.org/show_bug.cgi?id=88407
Reviewed by Carlos Garcia Campos.
Replace non-portable 'echo -n' with 'true'.
* GNUmakefile.am:
2014-01-03 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=126428
Reviewed by Brent Fulgham.
The NativeImagePtr type is not an CGImageRef on WinCairo, cannot use CFRetain.
* loader/cache/MemoryCache.cpp: Replace USE(CF) with USE(CG).
* loader/cache/MemoryCache.h: Ditto.
2014-01-03 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Simplify FloatRoundedRect, BoxShape construction
https://bugs.webkit.org/show_bug.cgi?id=125995
Reviewed by Andreas Kling.
Cleanup of various internal Shape issues:
- Removed unnecessary Shape() initialization list entries in Shape subclasses
per https://bugs.webkit.org/show_bug.cgi?id=125548#c2.
- Used const references instead of pointers for non-deprecated Shape:createShape() logic.
- Replaced createShape() overloads for Rasters and Boxes with functions named
createRasterShape() and createBoxShape().
- Added a FloatRoundedRect::Radii() constructor to reduce the parameter list
length of the FloatRoundedRect constructor in createBoxShape().
There are no new tests, this is just internal refactoring.
* platform/graphics/FloatRoundedRect.h:
(WebCore::FloatRoundedRect::Radii::Radii):
* rendering/shapes/BoxShape.h:
(WebCore::BoxShape::BoxShape):
* rendering/shapes/PolygonShape.h:
(WebCore::PolygonShape::PolygonShape):
* rendering/shapes/RasterShape.h:
(WebCore::RasterShape::RasterShape):
* rendering/shapes/RectangleShape.h:
(WebCore::RectangleShape::RectangleShape):
* rendering/shapes/Shape.cpp:
(WebCore::createInsetShape):
(WebCore::Shape::createShape):
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createBoxShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape):
2014-01-03 Andreas Kling <akling@apple.com>
Remove unused Document::openSearchDescriptionURL().
<https://webkit.org/b/126419>
Reviewed by Antti Koivisto.
* dom/Document.h:
* dom/Document.cpp:
Scrub leftovers from the defunct Chromium port.
2014-01-03 Jinwoo Song <jinwoo7.song@samsung.com>
VibrationPattern should allocate an single vector instance for single integer input
https://bugs.webkit.org/show_bug.cgi?id=126417
Reviewed by Gyuyoung Kim.
When the Vibration pattern is set with a single integer, the VibrationPattern should
be set with this integer as a vibration time. But the VibrationPattern(unsigned vector) was
initialized with a single parameter, the vibration time, so the time was used to set
the size of vector.
* Modules/vibration/NavigatorVibration.cpp:
(WebCore::NavigatorVibration::vibrate):
2014-01-02 Jaehun Lim <ljaehun.lim@samsung.com>
IconController.cpp needs to include <wtf/text/CString.h>
https://bugs.webkit.org/show_bug.cgi?id=126415
Reviewed by Gyuyoung Kim.
Build fails in IconController.cpp when ICONDATABASE is disabled.
WebKit/Source/WebCore/loader/icon/IconController.cpp:124:110: error: invalid use of incomplete type class WTF::CString
IconController.cpp needs #include <wtf/text/CString.h>.
No new tests. Just build fix.
* loader/icon/IconController.cpp: Add #include statement.
2014-01-02 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Previous scrollbar is remained sometimes
https://bugs.webkit.org/show_bug.cgi?id=126414
Reviewed by Gyuyoung Kim.
* platform/efl/ScrollbarEfl.cpp:
(ScrollbarEfl::invalidate):
Updated scrollbar visibility in Scrollbar::invalidate().
* platform/efl/ScrollbarEfl.h:
Removed show()/hide() which never been called() for scrollbar.
2014-01-02 Brent Fulgham <bfulgham@apple.com>
[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>
Reviewed by Dean Jackson.
Tested by revisions to webgl/1.0.2/conformance/glsl/misc/shader-with-array-of-structs-containing-arrays.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniformLocation): Revise to
handle access to zeroeth element of the array.
2014-01-02 Myles C. Maxfield <mmaxfield@apple.com>
Crash in WebCore::translateIntersectionPointsToSkipInkBoundaries
https://bugs.webkit.org/show_bug.cgi?id=126252
Reviewed by Alexey Proskuryakov.
lastIntermediate was a iterator pointing into a Vector, which was being re-used
even while appending to the Vector. If any of the append operators triggered
a realloc, the iterator would point to the old free'ed memory.
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-crash-many-gaps.html
* rendering/InlineTextBox.cpp:
(WebCore::translateIntersectionPointsToSkipInkBoundaries):
2014-01-02 Brent Fulgham <bfulgham@apple.com>
[WebGL] Correct symbol lookup logic to handle 1-element arrays
https://bugs.webkit.org/show_bug.cgi?id=126411
<rdar://problem/15394564>
Reviewed by Dean Jackson.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniformLocation): Revise code to handle the case of single-element
arrays.
2014-01-02 Sam Weinig <sam@webkit.org>
Update Promises to the https://github.com/domenic/promises-unwrapping spec
https://bugs.webkit.org/show_bug.cgi?id=120954
Reviewed by Filip Pizlo.
* ForwardingHeaders/runtime/JSPromiseDeferred.h: Added.
* ForwardingHeaders/runtime/JSPromiseResolver.h: Removed.
* bindings/js/JSDOMGlobalObjectTask.cpp:
(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
* bindings/js/JSDOMGlobalObjectTask.h:
* bindings/js/JSDOMPromise.cpp:
(WebCore::DeferredWrapper::DeferredWrapper):
(WebCore::DeferredWrapper::promise):
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueTaskToEventLoop):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::encrypt):
(WebCore::JSSubtleCrypto::decrypt):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::digest):
(WebCore::JSSubtleCrypto::generateKey):
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::exportKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
* bindings/js/JSWorkerGlobalScopeBase.h:
2014-01-02 Tim Horton <timothy_horton@apple.com>
ImageBufferBackingStoreCache should use DeferrableOneShotTimer
https://bugs.webkit.org/show_bug.cgi?id=126155
Reviewed by Anders Carlsson.
Since ImageBufferBackingStoreCache's purge timer is pushed out every time
a backing store is deallocated, we can easily waste a lot of time rescheduling
the timer. Since it's a cache purge timer and doesn't need that kind of precision,
adopt DeferrableOneShotTimer, which is much more performant when deferred frequently.
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::timerFired):
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
* platform/graphics/cg/ImageBufferBackingStoreCache.h:
2014-01-02 Myles C. Maxfield <mmaxfield@apple.com>
Allow ImageBuffer to re-use IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=125477
Reviewed by Geoff Garen. Modifications reviewed by Tim Horton.
This patch is taken from r160945, but the modifications to ImageBufferCG.cpp
have been reverted.
This test adds a static class, ImageBufferBackingStoreCache, that vends
IOSurfaces. It remembers IOSurfaces that have been returned to it until
a configurable timeout.
The storage used by this class is in the form of a HashMap from a
bucketed size to the IOSurface. There are many other data structures
that could be used, but this implementation gives a 80% hit rate on
normal browsing of some example sites with Canvas and
text-decoration-skip: ink. Because the buckets are fairly
small (rounding the width and height up to multiples of 8), traversing the
bucket contents takes on average 2 steps.
Test: fast/canvas/canvas-backing-store-reuse.html
* WebCore.xcodeproj/project.pbxproj: Added new caching class
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added.
(WebCore::createIOSurface): Copied from ImageBufferCG.cpp
(WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache
contents
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
(WebCore::ImageBufferBackingStoreCache::get): Static getter
(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management
creation function
(WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management
deletion function
(WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached
IOSurface fit the bill?
(WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup
a bucket and walk through its contents
(WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function
for clients who want a IOSurface from the cache
(WebCore::ImageBufferBackingStoreCache::deallocate): Public
function for clients to return an IOSurface to the pool
* platform/graphics/cg/ImageBufferBackingStoreCache.h: Added.
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):
2014-01-02 Piotr Grad <p.grad@samsung.com>
Video-seek-with-negative-playback was flaky.
https://bugs.webkit.org/show_bug.cgi?id=126379
Reviewed by Eric Carlson.
No new tests. Covered by existing tests.
m_player->setRate() should be called before updating m_playbackRate, because potentiallyPlaying() depends
on endedPlayback(), which checks m_playbackRate.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setPlaybackRate):
2014-01-02 Daniel Bates <dabates@apple.com>
[iOS] Tapping any link crashes in WebCore::EventHandler::mouseMoved()
(also crashes when scrolling certain sites)
https://bugs.webkit.org/show_bug.cgi?id=126401
<rdar://problem/15739334>
Reviewed by Tim Horton.
* page/ios/EventHandlerIOS.mm:
(WebCore::currentEventSlot): Make the shared variable have static-storage duration.
2014-01-02 Gavin Barraclough <barraclough@apple.com>
Remove WindowIsVisible
https://bugs.webkit.org/show_bug.cgi?id=126270
Reviewed by Tim Horton.
We currently track visibility in two ways - ViewState::IsVisible and ViewState::WindowIsVisible.
The latter detects that the content is hidden in fewer cases than the former, and as such, the
former is always preferable.
This affects the hidden state provided to FocusController::contentAreaDidShowOrHide and to
Plugin::windowVisibilityChanged.
* WebCore.exp.in:
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
(WebCore::FocusController::setContentIsVisible):
* page/FocusController.h:
- rename ContainingWindowIsVisible -> ContentIsVisible.
2014-01-02 Gavin Barraclough <barraclough@apple.com>
Merge didMoveOnscreen / page visibility to isVisible
https://bugs.webkit.org/show_bug.cgi?id=126268
Reviewed by Tim Horton.
The onscreen state most closely tracks view visibility (though currently
also tracks a mix of in-window state). Make more consistent, simplify,
and move all animation suspension logic to Page, so it can be controlled
by the PageThrottler.
* WebCore.exp.in:
* page/EventHandler.cpp:
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
* page/FrameView.cpp:
(WebCore::FrameView::shouldSetCursor):
* page/Page.cpp:
(WebCore::Page::Page):
- initialize new variables.
(WebCore::Page::setIsVisible):
- merge setVisibilityState, didMoveOnscreen, willMoveOffscreen.
(WebCore::Page::setIsPrerender):
- switches visibility state from hidden to prerender.
(WebCore::Page::visibilityState):
- computed from m_isVisible, m_isPrerender.
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
- m_visibilityState -> m_isVisible.
* page/Page.h:
- remove didMoveOnscreen/willMoveOffscreen
m_isOnscreen & m_visibilityState -> m_isVisible & m_isPrerender
setVisibilityState -> setIsVisible & setIsPrerender.
(WebCore::Page::isVisible):
- isOnscreen -> isVisible.
2014-01-02 Oliver Hunt <oliver@apple.com>
Update bindings test results
* 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):
2013-12-23 Oliver Hunt <oliver@apple.com>
Refactor PutPropertySlot to be aware of custom properties
https://bugs.webkit.org/show_bug.cgi?id=126187
Reviewed by Antti Koivisto.
Update the bindings code generation and custom objects
to the new function signatures
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject setValue:forKey:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::putByIndex):
* bridge/NP_jsobject.cpp:
(_NPN_SetProperty):
2014-01-02 Simon Fraser <simon.fraser@apple.com>
Add AsyncScrollingCoordinator, which is a base class for threaded and future remote ScrollingCoordinators
https://bugs.webkit.org/show_bug.cgi?id=126389
Reviewed by Tim Horton.
Add AsyncScrollingCoordinator, a ScrollingCoordinator that knows about ScrollingStateTrees
and ScrollingTrees, but leaves it up to subclasses to decide when and how to commit.
* WebCore.xcodeproj/project.pbxproj: Added AsyncScrollingCoordinator.*
* page/scrolling/AsyncScrollingCoordinator.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm.
(WebCore::AsyncScrollingCoordinator::AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::~AsyncScrollingCoordinator):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(WebCore::AsyncScrollingCoordinator::attachToStateTree):
(WebCore::AsyncScrollingCoordinator::detachFromStateTree):
(WebCore::AsyncScrollingCoordinator::clearStateTree):
(WebCore::AsyncScrollingCoordinator::syncChildPositions):
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
(WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
(WebCore::AsyncScrollingCoordinator::setScrollLayerForNode):
(WebCore::AsyncScrollingCoordinator::setCounterScrollingLayerForNode):
(WebCore::AsyncScrollingCoordinator::setHeaderLayerForNode):
(WebCore::AsyncScrollingCoordinator::setFooterLayerForNode):
(WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionForNode):
(WebCore::AsyncScrollingCoordinator::setWheelEventHandlerCountForNode):
(WebCore::AsyncScrollingCoordinator::setScrollBehaviorForFixedElementsForNode):
(WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::updateMainFrameScrollLayerPosition):
(WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
(WebCore::AsyncScrollingCoordinator::isRubberBandInProgress):
(WebCore::AsyncScrollingCoordinator::setScrollPinningBehavior):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
* page/scrolling/AsyncScrollingCoordinator.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
(WebCore::AsyncScrollingCoordinator::scrollingTree):
(WebCore::AsyncScrollingCoordinator::setScrollingTree):
(WebCore::AsyncScrollingCoordinator::scrollingStateTree):
(WebCore::AsyncScrollingCoordinator::releaseScrollingTree):
* page/scrolling/ScrollingCoordinator.h: Add casting support.
(WebCore::ScrollingCoordinator::isAsyncScrollingCoordinator):
* page/scrolling/ThreadedScrollingTree.h: commitNewTreeState() needs to be public.
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm: Lots of code moved to AsyncScrollingCoordinator.
(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::pageDestroyed):
(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent):
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
(WebCore::ScrollingCoordinatorMac::commitTreeState):
(WebCore::ScrollingCoordinatorMac::updateTiledScrollingIndicator):
2014-01-02 Andreas Kling <akling@apple.com>
Simplify the insides of DocumentSharedObjectPool and reduce memory usage.
Merging Blink r164152 by Elliott Sprehn.
Instead of storing an OwnPtr to an object that has a pointer to the
ShareableElementData as well as a pointer into the ShareableElementData
and the length we can just store a RefPtr to the SharableElementData.
This also reduces the memory usage of the pool by 2 pointers per entry.
* dom/DocumentSharedObjectPool.h:
* dom/DocumentSharedObjectPool.cpp:
(WebCore::attributeHash):
(WebCore::hasSameAttributes):
(WebCore::DocumentSharedObjectPool::cachedShareableElementDataWithAttributes):
2014-01-02 Dirk Schulze <krit@webkit.org>
Support <box> values computed style for 'clip-path' property
https://bugs.webkit.org/show_bug.cgi?id=126148
Reviewed by Simon Fraser.
Calculate computed style for 'clip-path' property.
Updated tests to check for computed style.
* css/BasicShapeFunctions.cpp: Add box value bounding-box.
(WebCore::valueForBox):
(WebCore::boxForValue):
* css/CSSComputedStyleDeclaration.cpp: Return the computed style
for 'clip-path'.
(WebCore::ComputedStyleExtractor::propertyValue):
* css/DeprecatedStyleBuilder.cpp: Create CSSValueLists for 'clip-th'.
(WebCore::ApplyPropertyClipPath::applyValue):
* rendering/ClipPathOperation.h: Add bounding-box value.
(WebCore::ShapeClipPathOperation::pathForReferenceRect):
(WebCore::ShapeClipPathOperation::setReferenceBox):
(WebCore::ShapeClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::create):
(WebCore::BoxClipPathOperation::pathForReferenceRect):
(WebCore::BoxClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::BoxClipPathOperation):
* rendering/shapes/ShapeInfo.h: Add bounding-box value.
(WebCore::ShapeInfo::setShapeSize):
(WebCore::ShapeInfo::logicalTopOffset):
(WebCore::ShapeInfo::logicalLeftOffset):
* rendering/style/BasicShapes.cpp: Add bounding-box value.
(WebCore::BasicShape::referenceBoxSize):
* rendering/style/BasicShapes.h:
2014-01-02 Antti Koivisto <antti@apple.com>
Always resolve style from root
https://bugs.webkit.org/show_bug.cgi?id=126380
Reviewed by Andreas Kling.
Forced style resolve that does not start from the root is never really correct.
Remove the few remaining instances.
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::setResetStyleInheritance):
Update style asynchronously.
* dom/ShadowRoot.h:
* dom/Text.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::createElementRenderer):
(WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
(WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
Delete the render tree synchronously on suspend and rebuild it asynchronously on resume.
No need for m_customStyleForPageCache hack.
* html/HTMLPlugInImageElement.h:
Remove m_customStyleForPageCache.
* style/StyleResolveTree.cpp:
* style/StyleResolveTree.h:
Remove Element version of resolveTree from the interface.
* svg/SVGUseElement.h:
2014-01-02 Antti Koivisto <antti@apple.com>
Remove PlaceholderDocument
https://bugs.webkit.org/show_bug.cgi?id=126382
Reviewed by Andreas Kling.
Remove PlaceholderDocument class and replace it with a bit in Document.
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::createRenderTree):
* dom/Document.h:
Also make Synthesized a construction flag instead of a boolean parameter.
(WebCore::Document::createNonRenderedPlaceholder):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument):
* html/HTMLDocument.h:
(WebCore::HTMLDocument::create):
(WebCore::HTMLDocument::createSynthesizedDocument):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
* loader/PlaceholderDocument.cpp: Removed.
* loader/PlaceholderDocument.h: Removed.
* pdf/ios/PDFDocument.h:
(WebCore::PDFDocument::PDFDocument):
2014-01-01 Antti Koivisto <antti@apple.com>
Remove public attachRenderTree
https://bugs.webkit.org/show_bug.cgi?id=126368
Reviewed by Andreas Kling.
Remove the remaining explicit render tree construction.
* dom/Document.cpp:
(WebCore::Document::createRenderTree):
Use recalcStyle() instead of calling attachRenderTree directly.
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::addText):
Remove forgotten attachTextRenderer.
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::InsertionPoint):
Remove willAttachRenderers/didAttachRenderers hack.
* html/shadow/InsertionPoint.h:
(WebCore::toInsertionPoint):
* loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):
Seriously, nothing to do here.
* style/StyleResolveTree.cpp:
(WebCore::Style::attachDistributedChildren):
(WebCore::Style::attachChildren):
(WebCore::Style::detachDistributedChildren):
(WebCore::Style::detachChildren):
Making attaching and detaching distributed insertion point children part of ResolveTree internals.
* style/StyleResolveTree.h:
Remove interfaces with no clients.
2014-01-01 Seokju Kwon <seokju@webkit.org>
Remove stale ScriptProfiler methods
https://bugs.webkit.org/show_bug.cgi?id=126373
Reviewed by Darin Adler.
No new tests, No change behavior.
* bindings/js/ScriptProfiler.h: Remove dead code.
2014-01-01 Andreas Kling <akling@apple.com>
Remove ChromeClient::fullScreenRendererChanged().
<https://webkit.org/b/126370>
This hook was added in r75277 to notify WebFullScreenController when
the full screen renderer changed. In r110216 the code was refactored,
making this notification unnecessary.
Reviewed by Antti Koivisto.
2014-01-01 Simon Fraser <simon.fraser@apple.com>
Fix the build by exposing some more scrolling state node headers
as Private in WebCore.framework.
* WebCore.xcodeproj/project.pbxproj:
2014-01-01 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Unreviewed build fix after r160903 when ACCESSIBILITY is disabled
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::children):
2014-01-01 Andreas Kling <akling@apple.com>
RenderScrollbar: Map of scrollbar parts should use RenderPtr.
<https://webkit.org/b/126367>
Turn RenderScrollbar::m_parts into HashMap of RenderPtrs. This makes
renderer destruction automatic and lets us remove some code.
Reviewed by Antti Koivisto.
* rendering/RenderPtr.h:
Add HashTraits for RenderPtr so we can use them as values in
WTF hash tables.
* rendering/RenderScrollbar.h:
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::~RenderScrollbar):
(WebCore::RenderScrollbar::setParent):
(WebCore::RenderScrollbar::updateScrollbarParts):
(WebCore::RenderScrollbar::updateScrollbarPart):
Remove now-unneeded kludges of logic to manually delete scrollbar
part renderers in various scenarios.
2014-01-01 Antti Koivisto <antti@apple.com>
Remove reattachRenderTree
https://bugs.webkit.org/show_bug.cgi?id=126366
Reviewed by Andreas Kling.
Remove the last remaining client.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
Reconstruct render tree asynchronously.
(WebCore::HTMLSelectElement::scrollToSelection):
(WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
(WebCore::HTMLSelectElement::selectOption):
It is not safe to cast the renderer based on usesMenuList test. Switch to RenderObject::isMenuList test.
(WebCore::HTMLSelectElement::parseMultipleAttribute):
Reconstruct render tree asynchronously.
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::defaultEventHandler):
* style/StyleResolveTree.cpp:
* style/StyleResolveTree.h:
Remove the function.
2014-01-01 Simon Fraser <simon.fraser@apple.com>
Create a ThreadedScrollingTree subclass of ScrollingTree, and push all knowledge of the scrolling thread into it
https://bugs.webkit.org/show_bug.cgi?id=126362
Reviewed by Sam Weinig.
Eventually we'll have a ScrollingTree in situations where there is no scrolling
thread, so make the ScrollingTree base class thread-agnostic (but threadsafe),
and subclass it in ThreadedScrollingTree for scrolling-thread-specific functionality.
The ScrollingTree base class also no longer needs to know about the
ScrollingCoordinator.
ScrollingCoordinatorMac creates a ThreadedScrollingTree.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj: Add ThreadedScrollingTree.*
Make some headers Private that we'll need in WebKit2 soon.
* page/scrolling/ScrollingStateTree.h: Drive-by cleanup: clone() was unimplemented.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::ScrollingTree):
(WebCore::ScrollingTree::~ScrollingTree):
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously): Wrap up some logic that
involves taking the mutex, so ThreadedScrollingTree can conveniently call it.
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::setMainFrameScrollPosition):
(WebCore::ScrollingTree::isHandlingProgrammaticScroll):
* page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::isThreadedScrollingTree):
(WebCore::ScrollingTree::invalidate):
* page/scrolling/ThreadedScrollingTree.cpp: Added.
(WebCore::ThreadedScrollingTree::create):
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::~ThreadedScrollingTree):
(WebCore::ThreadedScrollingTree::tryToHandleWheelEvent):
(WebCore::ThreadedScrollingTree::handleWheelEvent):
(WebCore::derefScrollingCoordinator):
(WebCore::ThreadedScrollingTree::invalidate):
(WebCore::ThreadedScrollingTree::commitNewTreeState):
(WebCore::ThreadedScrollingTree::updateMainFrameScrollPosition):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):
* page/scrolling/ThreadedScrollingTree.h: Added.
(WebCore::ThreadedScrollingTree::isThreadedScrollingTree):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
(WebCore::ScrollingCoordinatorMac::handleWheelEvent):
2014-01-01 Andreas Kling <akling@apple.com>
FrameView: Store scroll corner renderer in a RenderPtr.
<https://webkit.org/b/126364>
Make FrameView::m_scrollCorner a RenderPtr<RenderScrollbarPart> and
remove two manual destroy() calls.
Reviewed by Antti Koivisto.
2014-01-01 Antti Koivisto <antti@apple.com>
Remove elementChildren/elementDescendants shorthands
https://bugs.webkit.org/show_bug.cgi?id=126363
Reviewed by Anders Carlsson.
Just use childrenOfType<Element>/descendantsOfType<Element> instead. They are not that much longer
and consistency is valuable.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
(WebCore::siblingWithAriaRole):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::invalidateStyle):
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::namedItem):
* dom/Document.cpp:
(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::childrenChanged):
* dom/Element.cpp:
(WebCore::Element::resetComputedStyle):
* dom/ElementChildIterator.h:
* dom/ElementDescendantIterator.h:
* dom/SelectorQuery.cpp:
(WebCore::elementsForLocalName):
(WebCore::anyElement):
(WebCore::SelectorDataList::executeSingleTagNameSelectorData):
(WebCore::SelectorDataList::executeSingleClassNameSelectorData):
(WebCore::SelectorDataList::executeSingleSelectorData):
(WebCore::SelectorDataList::executeSingleMultiSelectorData):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::cleanupUnstyledAppleStyleSpans):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::removeHeadContents):
* editing/markup.cpp:
(WebCore::completeURLs):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::containsJavaApplet):
* loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):
* rendering/RenderChildIterator.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::getElementById):
* svg/SVGUseElement.cpp:
(WebCore::subtreeContainsDisallowedElement):
(WebCore::removeDisallowedElementsFromSubtree):
2014-01-01 Antti Koivisto <antti@apple.com>
Do less synchronous render tree construction
https://bugs.webkit.org/show_bug.cgi?id=126359
Reviewed by Anders Carlsson.
Remove some now-unnecessary attachRenderTree calls.
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::parseAttribute):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderFallbackContent):
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::willRecalcStyle):
(WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree):
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable):
(WebCore::HTMLViewSourceDocument::addSpanWithClassName):
(WebCore::HTMLViewSourceDocument::addLine):
(WebCore::HTMLViewSourceDocument::finishLine):
(WebCore::HTMLViewSourceDocument::addBase):
(WebCore::HTMLViewSourceDocument::addLink):
* xml/XMLErrors.cpp:
(WebCore::XMLErrors::insertErrorMessageBlock):
2014-01-01 Simon Fraser <simon.fraser@apple.com>
Updating the scrolling tree should use references to state nodes
https://bugs.webkit.org/show_bug.cgi?id=126360
Reviewed by Anders Carlsson.
Change functions related to ScrollingTreeNode updating to take
const references to state nodes rather than pointers.
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::hasChangedProperty):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::updateTreeFromStateNode): The node can be nil so
this continues to take a pointer.
(WebCore::ScrollingTree::removeDestroyedNodes):
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::updateAfterChildren):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::updateBeforeChildren):
2014-01-01 Simon Fraser <simon.fraser@apple.com>
Add a typedef for PlatformLayerID on GraphicsLayer, and migrate RemoteLayerTreeTransaction to use it
https://bugs.webkit.org/show_bug.cgi?id=126346
Reviewed by Tim Horton.
Remote scrolling tree code is soon going to use RemoteLayerTreeTransaction::LayerID,
so it makes more sense to put this layerID type on GraphicsLayer as
GraphicsLayer::PlatformLayerID.
Also add some type cast macros for PlatformCALayer and subclasses, and use them
where appropriate.
* platform/graphics/GraphicsLayer.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setName):
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::isPlatformCALayerMac):
(WebCore::PlatformCALayer::isPlatformCALayerRemote):
(WebCore::PlatformCALayer::PlatformCALayer):
* platform/graphics/ca/mac/PlatformCALayerMac.h:
2013-12-31 Simon Fraser <simon.fraser@apple.com>
ScrollingStateNodes should have a reference to the ScrollingStateTree
https://bugs.webkit.org/show_bug.cgi?id=126348
Reviewed by Sam Weinig.
Make ScrollingStateNodes always belong to a ScrollingStateTree, and thus
have a reference to the tree rather than a pointer. When cloning nodes,
they are adopted by a new ScrollingStateTree, which adds them to its
node map (which didn't happen before).
In subclasses access the ScrollingStateTree through a member function.
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::create):
(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
(WebCore::ScrollingStateFixedNode::clone):
(WebCore::ScrollingStateFixedNode::updateConstraints):
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::cloneAndReset):
(WebCore::ScrollingStateNode::cloneAndResetChildren):
(WebCore::ScrollingStateNode::willBeRemovedFromStateTree):
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::scrollingStateTree):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::create):
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::clone):
(WebCore::ScrollingStateScrollingNode::setViewportRect):
(WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
(WebCore::ScrollingStateScrollingNode::setScrollOrigin):
(WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters):
(WebCore::ScrollingStateScrollingNode::setFrameScaleFactor):
(WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion):
(WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
(WebCore::ScrollingStateScrollingNode::setHeaderHeight):
(WebCore::ScrollingStateScrollingNode::setFooterHeight):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::create):
(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
(WebCore::ScrollingStateStickyNode::clone):
(WebCore::ScrollingStateStickyNode::updateConstraints):
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
(WebCore::ScrollingStateTree::commit):
(WebCore::ScrollingStateTree::addNode):
* page/scrolling/ScrollingStateTree.h:
* page/scrolling/mac/ScrollingStateNodeMac.mm:
(WebCore::ScrollingStateNode::setScrollLayer):
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
(WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer):
(WebCore::ScrollingStateScrollingNode::setHeaderLayer):
(WebCore::ScrollingStateScrollingNode::setFooterLayer):
(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
2013-12-31 Simon Fraser <simon.fraser@apple.com>
Give ScrollingStateNodes a nodeType()
https://bugs.webkit.org/show_bug.cgi?id=126347
Reviewed by Tim Horton.
When we start serializing ScrollingStateNodes to send to the UI process,
it's more convenient if they have a nodeType member rather than virtual functions,
so give them one, and fix the casting macros to use it. This allows us to use
a switch() on node creation, so the compiler will tell us if we forgot to create
a node type.
* page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::ScrollingStateNode):
* page/scrolling/ScrollingStateNode.h: const ScrollingNodeType field
(can't be modified after construction), and move the m_scrollingStateTree
member after it (the awkward protected:/private: will be cleaned up in a later patch).
(WebCore::ScrollingStateNode::nodeType):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.cpp:
(WebCore::ScrollingStateStickyNode::ScrollingStateStickyNode):
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
2013-12-31 Andreas Kling <akling@apple.com>
Out-of-line RenderStyle substructure copying helpers.
<https://webkit.org/b/126340>
This shrinks the .access() calls by moving memory allocation logic
out-of-line, though I'm really doing this to make Instruments.app
allocations output more readable.
Writes to e.g 'font' or 'color' will now be grouped under a single
StyleInheritedData::copy() call instead of being spread out over
setFontDescription(), setLineHeight(), setColor(), etc.
Reviewed by Anders Carlsson.
2013-12-31 Andreas Kling <akling@apple.com>
RenderListItem should store its marker in a RenderPtr.
<https://webkit.org/b/126298>
Make RenderListItem::m_marker a RenderPtr<RenderListMarker> and
remove two manual destroy() calls. Tweaked code to reduce nesting.
Reviewed by Anders Carlsson.
2013-12-31 Andreas Kling <akling@apple.com>
Element's renderer factory should return RenderPtrs.
<https://webkit.org/b/126318>
Rename Element::createRenderer() to createElementRenderer() and have
it return RenderPtr<RenderElement>. Propagate signature until it
builds again.
We leakPtr() the renderer at two call sites when handing things over
to raw pointer API. This'll get tidied up in subsequent patches.
Reviewed by Sam Weinig.
2013-12-31 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Return early in ResourceHandle::receivedCancellation if the load has already cancelled
https://bugs.webkit.org/show_bug.cgi?id=126287
Reviewed by Martin Robinson.
This situation can happen when using the network process, because
the ReceivedCancellation message can be received when the resource
loader has already been removed, but the authentication challenge
still has a reference to the ResourceHandleClient.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::receivedCancellation):
2013-12-31 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] The initiating page is lost after a redirection
https://bugs.webkit.org/show_bug.cgi?id=126293
Reviewed by Martin Robinson.
The initiating page id is attached to the initial soup request
object, but not to the one created after a redirection.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::createSoupRequestAndMessageForHandle): Call
setSoupRequestInitiatingPageIDFromNetworkingContext() here if the
soup request is created successfully.
(WebCore::ResourceHandle::start): Remove the call to
setSoupRequestInitiatingPageIDFromNetworkingContext().
2013-12-31 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] Implement ResourceHandle::continueWillSendRequest()
https://bugs.webkit.org/show_bug.cgi?id=126291
Reviewed by Martin Robinson.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::continueAfterWillSendRequest): Helper function that
continues with the load after willSendRequest has been called.
(WebCore::doRedirect): Call continueAfterWillSendRequest() when
client doesn't use async callbacks.
(WebCore::ResourceHandle::continueWillSendRequest): Call
continueAfterWillSendRequest().
2013-12-30 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] willSendRequest doesn't work after a redirect
https://bugs.webkit.org/show_bug.cgi?id=126290
Reviewed by Martin Robinson.
The problem is that we are creating the new soup request for the
redirect before calling ResourceHandleClient::willSendRequest() so
that any change made to the request by the client is ignored.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect): Create the new soup request and soup
message for the redirect after calling willSendRequest() on the
client.
2013-12-30 Andreas Kling <akling@apple.com>
InputType should return input renderers wrapped in RenderPtr.
<https://webkit.org/b/126307>
Rename InputType::createRenderer() to createInputRenderer() and
make it return RenderPtr<RenderElement>. Also made it non-const.
Reviewed by Anders Carlsson.
2013-12-30 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Cleanup static_cast<HTMLFormElement*> by using toHTMLFormElement()
https://bugs.webkit.org/show_bug.cgi?id=126309
Reviewed by Andreas Kling.
To detect bad type casts, it would be good to use toHTMLFormElement() instead of
using manual type cast. Additionally FORM_ASSOCIATED_ELEMENT_TYPE_CASTS is introduced newly
to do it.
No new tests, no behavior changes.
* html/FormAssociatedElement.h:
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submitImplicitly):
(WebCore::HTMLFormElement::validateInteractively):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::defaultButton):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
(WebCore::HTMLFormElement::documentDidResumeFromPageCache):
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
2013-12-30 Anders Carlsson <andersca@apple.com>
Replace yield() and pauseBriefly() with std::this_thread::yield()
https://bugs.webkit.org/show_bug.cgi?id=126105
Reviewed by Sam Weinig.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::interrupt):
2013-12-30 Andreas Kling <akling@apple.com>
Rename createRenderObject() to createRenderer().
Somewhat rubber-stamped by Antti Koivisto.
2013-12-30 Andreas Kling <akling@apple.com>
Document should store its RenderView in a RenderPtr.
<https://webkit.org/b/126299>
Make Document::m_renderView a RenderPtr<RenderView> and remove one
manual destroy() call. Also removed the setRenderView() helper and
inlined it at the two call sites.
Reviewed by Antti Koivisto.
2013-12-30 Martin Robinson <mrobinson@igalia.com>
[CMake] [GTK] Add support for GObject introspection
https://bugs.webkit.org/show_bug.cgi?id=126162
Reviewed by Daniel Bates.
* PlatformGTK.cmake: Build a list of WebKitDOM headers and expose it to the
parent scope of the build.
2013-12-30 Andreas Kling <akling@apple.com>
Text::createTextRenderer() should return a RenderPtr.
<https://webkit.org/b/126292>
Make createTextRenderer() return a RenderPtr and remove one manual
destroy() call. Also, since it should always return a valid object,
I turned a null check into an assertion instead.
Reviewed by Antti Koivisto.
2013-12-30 Antti Koivisto <antti@apple.com>
Remove attachChild
https://bugs.webkit.org/show_bug.cgi?id=126288
Reviewed by Andreas Kling.
* dom/ContainerNode.cpp:
(WebCore::destroyRenderTreeIfNeeded):
Rename detachChild and move the tests here.
(WebCore::ContainerNode::takeAllChildrenFrom):
No need to call attachRenderTree explicitly anymore.
(WebCore::ContainerNode::removeBetween):
2013-12-29 Andreas Kling <akling@apple.com>
RenderLayer: Store corner and resizer renderers in RenderPtrs.
<https://webkit.org/b/126274>
Turn RenderLayer::m_scrollCorner and m_resizer into RenderPtrs.
Removed manual destroy() calls as appropriate. Also tweaked some
code to reduce nesting.
Reviewed by Anders Carlsson.
2013-12-30 Antti Koivisto <antti@apple.com>
XML document builder should create render tree asynchronously
https://bugs.webkit.org/show_bug.cgi?id=126285
Reviewed by Andreas Kling.
Stop creating renderers explicitly.
Fix SVG <use> element to not rely on parse time render tree construction.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged):
Remove renderer check, we may not have created the render tree yet.
(WebCore::SVGUseElement::willAttachRenderers):
Switch to willAttachRenderers from willRecalcStyle. The latter is only called as long as style
recalc doesn't start creating new renderers.
(WebCore::SVGUseElement::invalidateShadowTree):
Remove renderer check, we may not have created the render tree yet.
Invalidate with ReconstructRenderTree so willAttachRenderers will always get called.
* svg/SVGUseElement.h:
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::exitText):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::cdataBlock):
Remove explicit call to attachRenderTree. The render tree will be created lazily.
2013-12-29 Joone Hur <joone.hur@intel.com>
Reverted r156742. The same fix was reverted from Blink due to heap-use-after-free on ClusterFuzz.
https://bugs.webkit.org/show_bug.cgi?id=126275
https://codereview.chromium.org/102993011
Reviewed by Darin Adler.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
2013-12-29 ChangSeok Oh <changseok.oh@collabora.com>
Remove unused functions in GraphicsContext3D.cpp
https://bugs.webkit.org/show_bug.cgi?id=126265
Reviewed by Andreas Kling.
platformGraphicsContext3D, platformTexture and platformLayer in GC3D.cpp
seem not used by any ports.
No new tests, no functionality changed.
* platform/graphics/GraphicsContext3D.cpp:
2013-12-29 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Fix build error on 64bit debug build.
https://bugs.webkit.org/show_bug.cgi?id=126248
r161076 used %lli(for long long int) for int64_t(aka long int).
However, in a 64bit compile, int64_t is 'long int', not a 'long long int'.
To support 32bit and 64bit, we use static_cast<long long>.
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::commit):
2013-12-29 Antti Koivisto <antti@apple.com>
Remove some accidental commented out code.
* testing/Internals.cpp:
(WebCore::Internals::mallocStatistics):
2013-12-29 Antti Koivisto <antti@apple.com>
Fix build.
* xml/parser/XMLDocumentParser.cpp:
2013-12-29 Antti Koivisto <antti@apple.com>
Remove Node::attached()
https://bugs.webkit.org/show_bug.cgi?id=126276
Reviewed by Sam Weinig.
Node::attached() is poorly defined. Replace it with renderer() and inRenderedDocument() tests as appropriate.
Also remove some unnecessary explicit attachRenderTree/detachRenderTree calls from the tree builders.
2013-12-29 Andreas Kling <akling@apple.com>
RenderLayer: Store reflection renderer in a RenderPtr.
<https://webkit.org/b/126273>
Reviewed by Anders Carlsson.
* rendering/RenderLayer.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::calculateClipRects):
Turn RenderLayer::m_reflection into a RenderPtr<RenderReplica>
instead of a raw pointer.
* WebCore.xcodeproj/project.pbxproj:
Add RenderPtr.h to private headers.
2013-12-28 Andreas Kling <akling@apple.com>
Add an owning smart pointer for RenderObjects and start using it.
<https://webkit.org/b/126251>
This patch adds a RenderPtr pointer, essentially an OwnPtr for
RenderObjects. The difference is that RenderPtr destroys the object
by calling destroy() on it.
This is necessary to implement the willBeDestroyed() mechanism in
RenderObject that notifies renderers just before they are about to
be deleted, while they can still do tree traversal, etc.
I also added a make_unique-alike helper so you can write:
auto renderer = createRenderObject<RenderImage>(...);
Put it all to use by making ContentData::createRenderer() return
RenderPtr<RenderObject> instead of raw RenderObject*.
Reviewed by Antti Koivisto.
2013-12-28 Benjamin Poulain <benjamin@webkit.org>
Add a missing include path for GTK
https://bugs.webkit.org/show_bug.cgi?id=126257
Reviewed by Philippe Normand.
* GNUmakefile.am:
2013-12-28 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update GObject DOM symbols file after r160733.
* bindings/gobject/webkitdom.symbols:
2013-12-28 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Downloads are broken with the network process enabled
https://bugs.webkit.org/show_bug.cgi?id=126131
Reviewed by Martin Robinson.
The problem is that the network process crashes when trying to
convert the handle to a download, because at that point the
download has finished and the handle is NULL. This happens because
we are not implementing ResourceHandle::continueDidReceiveResponse().
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::nextMultipartResponsePartCallback): Call
continueAfterDidReceiveResponse() when not using async callbacks.
(WebCore::sendRequestCallback): Ditto.
(WebCore::continueAfterDidReceiveResponse): Helper function that
continues the load after didReceiveResponse.
(WebCore::ResourceHandle::continueDidReceiveResponse): Call
continueAfterDidReceiveResponse().
2013-12-27 Daniel Bates <dabates@apple.com>
Another attempt to fix the Windows build after <http://trac.webkit.org/changeset/161106>
(https://bugs.webkit.org/show_bug.cgi?id=126180)
* WebCore.vcxproj/WebCore.vcxproj.filters: Add files platform/audio/{AudioSession, AudioSessionListener}.h
* WebCore.vcxproj/WebCoreCommon.props: Add directory WebCore/platform/audio to the list of
include directories.
2013-12-27 Daniel Bates <dabates@apple.com>
Attempt to fix the Windows build after <http://trac.webkit.org/changeset/161106>
(https://bugs.webkit.org/show_bug.cgi?id=126180)
Add files platform/audio/AudioSession.{cpp, h} and platform/audio/AudioSessionListener.h
to the Visual Studio project. Note, the contents of these files are guarded by USE(AUDIO_SESSION),
which is only enabled on Mac and iOS at the time of writing.
I thought to try this approach to fix the build so as to avoid adding an extraneous
USE(AUDIO_SESSION)-guard around the #include "AudioSession.h" in Settings.cpp since
the contents of the file AudioSession.h is guarded by USE(AUDIO_SESSION).
* WebCore.vcxproj/WebCore.vcxproj:
2013-12-27 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/page changes
https://bugs.webkit.org/show_bug.cgi?id=126180
Reviewed by Darin Adler.
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.h:
(WebCore::EventNames::isGestureEventType): Added.
* page/AlternativeTextClient.h: Do not define WTF_USE_DICTATION_ALTERNATIVES when building for iOS.
* page/Chrome.cpp:
(WebCore::Chrome::Chrome):
(WebCore::Chrome::dispatchViewportPropertiesDidChange): Added; guarded by PLATFORM(IOS).
(WebCore::Chrome::setCursor): Make this an empty function when building for iOS.
(WebCore::Chrome::setCursorHiddenUntilMouseMoves): Ditto.
(WebCore::Chrome::didReceiveDocType): Added; iOS-specific.
* page/Chrome.h:
(WebCore::Chrome::setDispatchViewportDataDidChangeSuppressed): Added; guarded by PLATFORM(IOS).
* page/ChromeClient.h:
(WebCore::ChromeClient::didFlushCompositingLayers): Added; guarded by PLATFORM(IOS).
(WebCore::ChromeClient::fetchCustomFixedPositionLayoutRect): Added; guarded by PLATFORM(IOS).
(WebCore::ChromeClient::updateViewportConstrainedLayers): Added; guarded by PLATFORM(IOS).
* page/DOMTimer.cpp:
(WebCore::DOMTimer::install): Added iOS-specific code.
(WebCore::DOMTimer::fired): Ditto.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::DOMWindow): Ditto.
(WebCore::DOMWindow::innerHeight): Ditto.
(WebCore::DOMWindow::innerWidth): Ditto.
(WebCore::DOMWindow::scrollX): Ditto.
(WebCore::DOMWindow::scrollY): Ditto.
(WebCore::DOMWindow::scrollBy): Ditto.
(WebCore::DOMWindow::scrollTo): Ditto.
(WebCore::DOMWindow::clearTimeout): Ditto.
(WebCore::DOMWindow::addEventListener): Ditto.
(WebCore::DOMWindow::incrementScrollEventListenersCount): Added; guarded by PLATFORM(IOS).
(WebCore::DOMWindow::decrementScrollEventListenersCount): Added; guarded by PLATFORM(IOS).
(WebCore::DOMWindow::resetAllGeolocationPermission): Added; Also added FIXME comment.
(WebCore::DOMWindow::removeEventListener): Added iOS-specific code.
(WebCore::DOMWindow::dispatchEvent): Modified to prevent dispatching duplicate pageshow and pagehide
events per <http://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#event-pageshow>.
(WebCore::DOMWindow::removeAllEventListeners): Added iOS-specific code.
* page/DOMWindow.h:
* page/DOMWindow.idl: Added IOS_GESTURE_EVENTS-guarded attributes: ongesture{change, end, start}. Also
added IOS_TOUCH_EVENTS-guarded attributes: {Touch, TouchList}Constructor.
* page/EditorClient.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Added iOS-specific code.
(WebCore::EventHandler::clear): Ditto.
(WebCore::EventHandler::startPanScrolling): Make this an empty function when building for iOS.
(WebCore::EventHandler::handleMousePressEvent): Modified to invalidate a click when the clicked node is
null. Also, opt out of code for updating the scrollbars as UIKit manages scrollbars on iOS.
(WebCore::EventHandler::handleMouseMoveEvent): Opt of code for updating the scrollbars and cursor when building on iOS.
(WebCore::hitTestResultInFrame): Made this a file-local static function since it's only used in EventHandler.cpp.
(WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled): Added iOS-specific code.
* page/EventHandler.h:
* page/FocusController.h:
* page/Frame.cpp:
(WebCore::Frame::Frame): Added iOS-specific code.
(WebCore::Frame::scrollOverflowLayer): Added; iOS-specific.
(WebCore::Frame::overflowAutoScrollTimerFired): Added; iOS-specific.
(WebCore::Frame::startOverflowAutoScroll): Added; iOS-specific.
(WebCore::Frame::checkOverflowScroll): Added; iOS-specific.
(WebCore::Frame::willDetachPage): Added iOS-specific code.
(WebCore::Frame::createView): Ditto.
(WebCore::Frame::setSelectionChangeCallbacksDisabled): Added; iOS-specific.
(WebCore::Frame::selectionChangeCallbacksDisabled): Added; iOS-specific.
* page/Frame.h:
(WebCore::Frame::timersPaused): Added; guarded by PLATFORM(IOS).
* page/FrameView.cpp:
(WebCore::FrameView::FrameView): Added iOS-specific code.
(WebCore::FrameView::clear): Ditto.
(WebCore::FrameView::flushCompositingStateForThisFrame): Ditto.
(WebCore::FrameView::graphicsLayerForPlatformWidget): Added.
(WebCore::FrameView::scheduleLayerFlushAllowingThrottling): Added.
(WebCore::FrameView::layout): Added iOS-specific code.
(WebCore::countRenderedCharactersInRenderObjectWithThreshold): Added; helper function used by FrameView::renderedCharactersExceed().
Also added FIXME comment.
(WebCore::FrameView::renderedCharactersExceed): Added.
(WebCore::FrameView::visibleContentsResized): Added iOS-specific code.
(WebCore::FrameView::adjustTiledBackingCoverage): Ditto.
(WebCore::FrameView::performPostLayoutTasks): Ditto.
(WebCore::FrameView::sendResizeEventIfNeeded): Ditto.
(WebCore::FrameView::paintContents): Added iOS-specific code. Also added FIXME comments.
(WebCore::FrameView::setUseCustomFixedPositionLayoutRect): Added; iOS-specific.
(WebCore::FrameView::setCustomFixedPositionLayoutRect): Added; iOS-specific.
(WebCore::FrameView::updateFixedPositionLayoutRect): Added; iOS-specific.
* page/FrameView.h:
* page/Navigator.cpp:
(WebCore::Navigator::standalone): Added; iOS-specific.
* page/Navigator.h:
* page/Navigator.idl: Added WTF_PLATFORM_IOS-guarded attribute: standalone. Also added FIXME comment.
* page/NavigatorBase.cpp:
(WebCore::NavigatorBase::platform): Added iOS-specific code.
* page/Page.h:
(WebCore::Page::hasCustomHTMLTokenizerTimeDelay): Added; guarded by PLATFORM(IOS). Also added FIXME comment
to remove this method.
(WebCore::Page::customHTMLTokenizerTimeDelay): Added; guarded by PLATFORM(IOS). Also added FIXME comment
to remove this method.
* page/PageGroup.cpp:
(WebCore::PageGroup::removeVisitedLink): Added.
* page/PageGroup.h:
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setScriptEnabled): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setStandalone): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setAudioSessionCategoryOverride): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::audioSessionCategoryOverride): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setNetworkDataUsageTrackingEnabled): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::networkDataUsageTrackingEnabled): Added; guarded by PLATFORM(IOS).
(WebCore::sharedNetworkInterfaceNameGlobal): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setNetworkInterfaceName): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::networkInterfaceName): Added; guarded by PLATFORM(IOS).
* page/Settings.h:
(WebCore::Settings::setMaxParseDuration): Added; guarded by PLATFORM(IOS). Also added FIXME comment.
(WebCore::Settings::maxParseDuration): Added; guarded by PLATFORM(IOS). Also added FIXME comment.
(WebCore::Settings::standalone): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setTelephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::telephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setMediaDataLoadsAutomatically): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::mediaDataLoadsAutomatically): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setShouldTransformsAffectOverflow): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::shouldTransformsAffectOverflow): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setShouldDispatchJavaScriptWindowOnErrorEvents): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::shouldDispatchJavaScriptWindowOnErrorEvents): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setAlwaysUseBaselineOfPrimaryFont): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::alwaysUseBaselineOfPrimaryFont): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::setAlwaysUseAcceleratedOverflowScroll): Added; guarded by PLATFORM(IOS).
(WebCore::Settings::alwaysUseAcceleratedOverflowScroll): Added; guarded by PLATFORM(IOS).
* page/Settings.in: Added IOS_AIRPLAY-guarded setting: mediaPlaybackAllowsAirPlay.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Added iOS-specific code and FIXME comment.
* page/ios/EventHandlerIOS.mm: Added.
* page/ios/FrameIOS.mm: Added.
* page/mac/ChromeMac.mm:
* page/mac/PageMac.cpp:
(WebCore::Page::addSchedulePair): Opt out of code when building for iOS.
(WebCore::Page::removeSchedulePair): Ditto.
* page/mac/SettingsMac.mm:
(WebCore::Settings::shouldEnableScreenFontSubstitutionByDefault): Added iOS-specific code.
* page/mac/WebCoreFrameView.h:
2013-12-27 Gavin Barraclough <barraclough@apple.com>
Merge PageVisibilityState & ViewState::IsVisible in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=126214
Reviewed by Alexey Proskuryakov.
WebKit2 redundantly tracks the visibility of the view through two mechanisms - the visibility
state, and the view state. Remove visibility state from the WebKit2 layer. The visibility
state also tracks the prerender state - so split this out and handle it separately (a change
we should make in WebCore, too).
WebCore - changes the API tests exposed a bug, a view should only ever come out of the
prerender state when it becomes visible - redundant notifications that the view is still
hidden should be ignored.
* page/Page.cpp:
(WebCore::Page::setVisibilityState):
- ignore visibility state change to hidden, if the current state is prerender.
2013-12-27 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Windows build fix for r160946.
Add another file to the Windows InspectorAllInOne.cpp.
* inspector/InspectorAllInOne.cpp:
2013-12-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161096.
http://trac.webkit.org/changeset/161096
https://bugs.webkit.org/show_bug.cgi?id=126256
Made lots of tests crash (Requested by ap on #webkit).
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::willRemoveChildren):
(WebCore::ContainerNode::appendChild):
* dom/Document.cpp:
(WebCore::Document::visibilityStateChanged):
(WebCore::Document::moveNodeIteratorsToNewDocument):
(WebCore::Document::updateRangesAfterChildrenChanged):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::textInserted):
(WebCore::Document::textRemoved):
(WebCore::Document::textNodesMerged):
(WebCore::Document::textNodeSplit):
(WebCore::Document::documentWillSuspendForPageCache):
(WebCore::Document::documentDidResumeFromPageCache):
(WebCore::Document::mediaVolumeDidChange):
(WebCore::Document::privateBrowsingStateDidChange):
(WebCore::Document::captionPreferencesChanged):
(WebCore::Document::validateAutoSizingNodes):
(WebCore::Document::resetAutoSizingNodes):
(WebCore::Document::webkitExitFullscreen):
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::disconnect):
(WebCore::MutationObserver::getObservedNodes):
(WebCore::MutationObserver::deliver):
* dom/MutationObserverInterestGroup.cpp:
(WebCore::MutationObserverInterestGroup::isOldValueRequested):
(WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::clearTransientRegistrations):
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
* dom/Node.cpp:
(WebCore::Node::dumpStatistics):
(WebCore::Document::invalidateNodeListAndCollectionCaches):
(WebCore::NodeListsNodeData::invalidateCaches):
(WebCore::Node::didMoveToNewDocument):
(WebCore::collectMatchingObserversForMutation):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
(WebCore::ScriptExecutionContext::closeMessagePorts):
(WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
(WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):
2013-12-26 Sam Weinig <sam@webkit.org>
Convert some of WebCore/dom over to range-for loops
https://bugs.webkit.org/show_bug.cgi?id=126250
Reviewed by Andreas Kling.
* dom/ContainerNode.cpp:
* dom/Document.cpp:
* dom/MutationObserver.cpp:
* dom/MutationObserverInterestGroup.cpp:
* dom/MutationObserverRegistration.cpp:
* dom/Node.cpp:
* dom/NodeRareData.h:
* dom/ScriptExecutionContext.cpp:
* dom/WebKitNamedFlow.cpp:
2013-12-26 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[Nix] Cleanup Source/WebCore/PlatformNix.cmake
https://bugs.webkit.org/show_bug.cgi?id=126226
Reviewed by Csaba Osztrogonác.
No new tests needed.
* PlatformNix.cmake:
2013-12-26 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed attempt at Windows build fix.
I think Window's "AllInOne.cpp" is causing a using namespace JSC
to cause naming conflicts between Inspector::TypeBuilder::Debugger::types
and JSC::types. So removing the ambiguity.
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::getProperties):
(WebCore::InjectedScript::wrapCallFrames):
2013-12-22 Andreas Kling <akling@apple.com>
Make Text::createTextRenderer() take a const RenderStyle&.
<https://webkit.org/b/126136>
Nuke a FIXME about constifying a RenderStyle& local.
Reviewed by Anders Carlsson.
2013-12-22 Andreas Kling <akling@apple.com>
Move more inlines from RenderObject to RenderElement.
<https://webkit.org/b/126134>
Lift some inline functions that use style() from RenderObject over
to RenderElement, making them branchless.
Reviewed by Anders Carlsson.
2013-12-26 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix after r159526.
isBoxValue is used at out of ENABLE_CSS_SHAPES gaurd. It causes a compile failure.
So I moved isBoxValue to out side of ENABLE_CSS_SHAPES.
* css/CSSParser.cpp:
2013-12-25 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Set m_pos as private in InlineIterator, and use getter and setter functions.
https://bugs.webkit.org/show_bug.cgi?id=125614
Reviewed by Alexey Proskuryakov.
InlineIterator has been exported m_pos as public directly though it is member variable.
This patch set it as private, and add getter/setter functions for it.
No new tests, no behavior changes.
* rendering/InlineIterator.h:
(WebCore::InlineIterator::setOffset):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::InlineBidiResolver::appendRun):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::appendRunsForObject):
(WebCore::constructBidiRunsForLine):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::matchedEndLine):
(WebCore::LineBreaker::nextSegmentBreak):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleBR):
(WebCore::BreakingContext::handleFloat):
(WebCore::iteratorIsBeyondEndOfRenderCombineText):
(WebCore::ensureCharacterGetsLineBox):
(WebCore::BreakingContext::handleText):
(WebCore::checkMidpoints):
(WebCore::BreakingContext::handleEndOfLine):
* rendering/line/TrailingObjects.cpp:
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
2013-12-25 Kim Byung Jun <bj1987.kim@samsung.com>
[EFL] Delete file.edc and file_*.png.
https://bugs.webkit.org/show_bug.cgi?id=125134
Reviewed by Gyuyoung Kim.
File_theme uses button form.
* platform/efl/DefaultTheme/CMakeLists.txt:
* platform/efl/DefaultTheme/default.edc:
* platform/efl/DefaultTheme/widget/file/file.edc: Removed.
* platform/efl/DefaultTheme/widget/file/file_focus.png: Removed.
* platform/efl/DefaultTheme/widget/file/file_hover.png: Removed.
* platform/efl/DefaultTheme/widget/file/file_normal.png: Removed.
* platform/efl/DefaultTheme/widget/file/file_press.png: Removed.
2013-12-25 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[Nix] Adding createDragImageIconForCachedImageFilename method to DragImageNix
https://bugs.webkit.org/show_bug.cgi?id=126230
Reviewed by Daniel Bates.
Also returning nullptr in other functions that were returning 0 as a pointer.
* platform/nix/DragImageNix.cpp:
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImage):
(WebCore::createDragImageIconForCachedImageFilename):
2013-12-25 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[Nix] Fixing DragData::asFragment signature in DragDataNix.cpp
https://bugs.webkit.org/show_bug.cgi?id=126229
Reviewed by Daniel Bates.
* platform/nix/DragDataNix.cpp:
(WebCore::DragData::asFragment):
2013-12-25 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r161033 and r161074.
http://trac.webkit.org/changeset/161033
http://trac.webkit.org/changeset/161074
https://bugs.webkit.org/show_bug.cgi?id=126240
Oliver says that a rollout would be better (Requested by ap on
#webkit).
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject setValue:forKey:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::putByIndex):
* bridge/NP_jsobject.cpp:
(_NPN_SetProperty):
2013-12-25 Brady Eidson <beidson@apple.com>
DatabaseProcess: Implement version changing
https://bugs.webkit.org/show_bug.cgi?id=126099
Reviewed by Sam Weinig.
No new tests (No change in WebCore behavior).
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::commit): Update some logging.
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform): Move some things that used to be in
IDBServerConnectionLevelDB::changeDatabaseVersion to this cross-platform location.
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::IDBDatabaseBackend::VersionChangeOperation::transaction):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion): Move the actual updating of the database backend
metadata to the VersionChangeOperation.
2013-12-25 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Clean up generated sources directories
https://bugs.webkit.org/show_bug.cgi?id=126216
Reviewed by Gustavo Noronha Silva.
* PlatformGTK.cmake: Use the new directory variables.
2013-12-25 Dirk Schulze <krit@webkit.org>
Support <box> values parsing on 'clip-path' property
https://bugs.webkit.org/show_bug.cgi?id=126147
Reviewed by Ryosuke Niwa.
Support parsing of the background reference boxes, margin-box and bounding-box.
A box will be a reference box and define the origin for a basic shape.
If no basic shape is specified, the box defines the clipping path itself.
The specification text follows the changes to CSS Shapes now.
https://dvcs.w3.org/hg/FXTF/raw-file/3f213145303e/css-masking-1/index.html#the-clip-path
Existing parsing test have been extended to test box values as well.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseClipPath):
* css/CSSParser.h:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClipPath::applyValue):
2013-12-25 David Kilzer <ddkilzer@apple.com>
[iOS] Upstream WebCore/pdf changes
http://webkit.org/b/126097
Reviewed by Sam Weinig.
* WebCore.xcodeproj/project.pbxproj: Added files to project.
* pdf/ios/PDFDocument.cpp: Added.
(WebCore::PDFDocumentParser::create):
(WebCore::PDFDocumentParser::document):
(WebCore::PDFDocumentParser::PDFDocumentParser):
(WebCore::PDFDocument::createParser):
* pdf/ios/PDFDocument.h: Added.
(WebCore::PDFDocument::create):
(WebCore::PDFDocument::PDFDocument):
2013-12-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r160959.
http://trac.webkit.org/changeset/160959
https://bugs.webkit.org/show_bug.cgi?id=126222
Caused Windows build to fail (Requested by rfong on #webkit).
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::interrupt):
2013-12-24 Ryosuke Niwa <rniwa@webkit.org>
Unreviewed, rolling out r161051.
http://trac.webkit.org/changeset/161051
https://bugs.webkit.org/show_bug.cgi?id=45994
Caused two DFG tests to hit assertions due to a separate bug
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::status):
(WebCore::XMLHttpRequest::statusText):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.idl:
2013-12-24 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Crash while repainting an invalid region
https://bugs.webkit.org/show_bug.cgi?id=126152
Reviewed by Daniel Bates.
An invalid region, part of a dependency cycle, should not attempt to repaint content from
its associated named flow, otherwise there may be the case of an infinite repaint cycle,
resulting in a crash due to a stack overflow.
Test: fast/regions/repaint/invalid-region-repaint-crash.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::repaintIncludingDescendants):
2013-12-23 Ryosuke Niwa <rniwa@webkit.org>
XMLHttpRequest: status and statusText throw DOM Exception 11 when the state is UNSENT or OPENED.
https://bugs.webkit.org/show_bug.cgi?id=45994
Reviewed by Alexey Proskuryakov.
Merged https://chromium.googlesource.com/chromium/blink/+/23c90460de16e04c5aba7ed942fba76cb79fdb9b.
Latest XHR spec says that XHR should return 0 and an empty string when it's in UNSENT or OPENED state
or error flag is set: http://www.w3.org/TR/2012/WD-XMLHttpRequest-20121206/#the-status-attribute
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::status):
(WebCore::XMLHttpRequest::statusText):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.idl:
2013-12-23 Ryosuke Niwa <rniwa@webkit.org>
Crash in ReplaceSelectionCommand
https://bugs.webkit.org/show_bug.cgi?id=126107
Reviewed by Benjamin Poulain.
Merge https://chromium.googlesource.com/chromium/blink/+/c1ebe5c1e808daf9db5e348a8d0ab32570b9f7a5
except the test since it doesn't reproduce the crash in WebKit.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
2013-12-23 Benjamin Poulain <benjamin@webkit.org>
Add the pseudo classes link and any-link to the Selector Code Generator
https://bugs.webkit.org/show_bug.cgi?id=126196
Reviewed by Ryosuke Niwa.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLink):
* dom/Node.h:
(WebCore::Node::flagIsElement):
(WebCore::Node::flagIsLink):
Fix the type to match TrustedImm32.
2013-12-23 Benjamin Poulain <benjamin@webkit.org>
Add the experimental CSS code generator files to the remaining build systems
https://bugs.webkit.org/show_bug.cgi?id=126192
Reviewed by Sam Weinig.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-12-23 Benjamin Poulain <benjamin@webkit.org>
Add the pseudo class :focus to the Selector Code Generator
https://bugs.webkit.org/show_bug.cgi?id=126189
Reviewed by Ryosuke Niwa.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFocused):
2013-12-23 Ryosuke Niwa <rniwa@webkit.org>
Remove boolean argument from Element::setChildrenAffectBy* methods
https://bugs.webkit.org/show_bug.cgi?id=126183
Reviewed by Daniel Bates.
Merge https://chromium.googlesource.com/chromium/blink/+/066ef2fa78336b2b65052cb17cb81b367fe7dbbf
These functions are never called with false.
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* dom/Element.cpp:
(WebCore::Element::setChildrenAffectedByActive):
(WebCore::Element::setChildrenAffectedByDrag):
* dom/Element.h:
(WebCore::Element::setChildrenAffectedByHover):
2013-12-23 Tim Horton <timothy_horton@apple.com>
Fix the iOS build after r161013 and r160672.
* WebCore.exp.in:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::updateCustomAppearance):
2013-12-23 Oliver Hunt <oliver@apple.com>
Refactor PutPropertySlot to be aware of custom properties
https://bugs.webkit.org/show_bug.cgi?id=126187
Reviewed by msaboff.
Update the bindings code generation and custom objects
to the new function signatures
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::put):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject setValue:forKey:]):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterface::putByIndex):
* bridge/NP_jsobject.cpp:
(_NPN_SetProperty):
2013-12-23 Benjamin Poulain <benjamin@webkit.org>
Add class matching to the Selector Code Generator
https://bugs.webkit.org/show_bug.cgi?id=126176
Reviewed by Antti Koivisto.
Add selector matching based on classname to the Selector Compiler.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasClasses):
* dom/ElementData.h:
(WebCore::ElementData::classNamesMemoryOffset):
* dom/SpaceSplitString.h:
(WebCore::SpaceSplitStringData::sizeMemoryOffset):
(WebCore::SpaceSplitStringData::tokensMemoryOffset):
2013-12-23 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/storage changes
https://bugs.webkit.org/show_bug.cgi?id=125913
Reviewed by David Kilzer.
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::openDatabase): Added iOS-specific code.
(WebCore::StorageAreaSync::sync): Ditto.
* storage/StorageTracker.cpp:
(WebCore::StorageTracker::openTrackerDatabase): Ditto.
(WebCore::StorageTracker::syncImportOriginIdentifiers): Ditto.
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase): Ditto.
(WebCore::StorageTracker::syncSetOriginDetails): Ditto.
(WebCore::StorageTracker::syncDeleteAllOrigins): Ditto.
(WebCore::StorageTracker::syncDeleteOrigin): Ditto.
(WebCore::StorageTracker::databasePathForOrigin): Ditto.
2013-12-23 Daniel Bates <dabates@apple.com>
Fix the iOS build following <http://trac.webkit.org/changeset/160236>
(https://bugs.webkit.org/show_bug.cgi?id=125239)
* rendering/RenderBlock.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned): Substitute view() for &view().
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo): Fix indentation of closing brace.
* rendering/RenderLayerCompositor.cpp: Include MainFrame.h.
(WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles): Check that page->mainFrame().view()
is non-null; also add explicit #else clause.
(WebCore::RenderLayerCompositor::ensureRootLayer): Fix up main frame check.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintFileUploadIconDecorations): Substitute rect for r.
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintTextFieldDecorations): Use .get() to access underlying NeverDestroyed item.
(WebCore::RenderThemeIOS::systemFont):
* rendering/RenderView.cpp:
(WebCore::fixedPositionOffset): Substitute frameView.scrollOffset() for frameView->scrollOffset().
2013-12-23 Ryosuke Niwa <rniwa@webkit.org>
Minor optimization in FrameSelection::setNonDirectionalSelectionIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=126108
Reviewed by Benjamin Poulain.
Merge https://chromium.googlesource.com/chromium/blink/+/237b987c324e2e389a9e0350293bfaf16a5e201d
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setNonDirectionalSelectionIfNeeded):
2013-12-23 Ryosuke Niwa <rniwa@webkit.org>
Use isDocumentFragment() instead of comparing nodeType() with Node::DOCUMENT_FRAGMENT_NODE
https://bugs.webkit.org/show_bug.cgi?id=126178
Reviewed by Antti Koivisto.
Inspired by https://chromium.googlesource.com/chromium/blink/+/a622cb80af2bfb0c5d91123cbcfa4fa72a06554c
Use inline Node::isDocumentFragment() instead of virtual nodeType().
* dom/ContainerNode.cpp:
(WebCore::collectChildrenAndRemoveFromOldParent):
* dom/Document.cpp:
(WebCore::Document::canReplaceChild):
2013-12-23 Gwang Yoon Hwang <ryumiel@company100.net>
Clear ScratchBuffer::m_lastLayerSize when clearing the scratch buffer.
https://bugs.webkit.org/show_bug.cgi?id=126150
Reviewed by Simon Fraser.
Since ScratchBuffer::clearScratchBuffer only clears m_lastRadius,
ShadowBlur doesn't draw shadow into the re-created scratch buffer if it
tries to draw shadow without blurRadius.
Clear m_lastLayerSize to empty is enought to ensure that there is no
drawn contents in the scratch buffer.
No new tests due to the flaky nature of reproducing the issue.
* platform/graphics/ShadowBlur.cpp:
(WebCore::ScratchBuffer::clearScratchBuffer):
2013-12-23 Benjamin Poulain <benjamin@webkit.org>
Add id matching to the Selector Code Generator
https://bugs.webkit.org/show_bug.cgi?id=126154
Reviewed by Antti Koivisto.
Compile matching for #id selectors. IDs are Atomic String so it is just a matter
of comparing the pointers.
No attempt is made at optimizing for the double #id case because such problem
do not really happen outside tests.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasId):
* dom/Element.h:
(WebCore::Element::elementDataMemoryOffset):
* dom/ElementData.h:
(WebCore::ElementData::idForStyleResolutionMemoryOffset):
2013-12-23 Oliver Hunt <oliver@apple.com>
Update custom setter implementations to perform type checks
https://bugs.webkit.org/show_bug.cgi?id=126171
Reviewed by Daniel Bates.
Update the bindings code generator for setters so that they perform a real
type check.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeEventListenerCall):
(GenerateHeader):
(GenerateImplementation):
* 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/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/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:
2013-12-23 Lucas Forschler <lforschler@apple.com>
<rdar://problem/15682948> Update copyright strings
Reviewed by Dan Bernstein
* Info.plist:
2013-12-23 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r160945.
http://trac.webkit.org/changeset/160945
https://bugs.webkit.org/show_bug.cgi?id=126164
Seems to have broken multiple canvas tests (Requested by ap on
#webkit).
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Removed.
* platform/graphics/cg/ImageBufferBackingStoreCache.h: Removed.
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::createIOSurface):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):
2013-12-23 Eric Carlson <eric.carlson@apple.com>
AudioSessionManager should be MediaSessionManager
https://bugs.webkit.org/show_bug.cgi?id=126087
Reviewed by Jer Noble.
No new tests, no change in functionality.
* WebCore.xcodeproj/project.pbxproj: Change file names.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): MediaSessionManagerToken::create() takes a client
interface instead of the media type.
* html/HTMLMediaElement.h:
* platform/audio/AudioSessionListener.h: Include <wtf/Noncopyable.h>.
AudioSessionManager.* -> MediaSessionManager.*
* platform/audio/AudioSessionManager.cpp: Removed.
* platform/audio/AudioSessionManager.h: Removed.
* platform/audio/MediaSessionManager.cpp: Copied from Source/WebCore/platform/audio/AudioSessionManager.cpp.
(MediaSessionManagerToken::create):
(MediaSessionManagerToken::MediaSessionManagerToken):
(MediaSessionManagerToken::~MediaSessionManagerToken):
(MediaSessionManager::sharedManager):
(MediaSessionManager::MediaSessionManager):
(MediaSessionManager::has):
(MediaSessionManager::count):
(MediaSessionManager::addToken):
(MediaSessionManager::removeToken):
(MediaSessionManager::updateSessionState):
* platform/audio/MediaSessionManager.h: Copied from Source/WebCore/platform/audio/AudioSessionManager.h.
* platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationMac::AudioDestinationMac): MediaSessionManagerToken::create() takes a
client interface instead of the media type.
* platform/audio/mac/AudioDestinationMac.h:
* platform/audio/mac/AudioSessionMac.cpp:
* platform/audio/mac/AudioSessionManagerMac.cpp: Removed.
* platform/audio/mac/MediaSessionManagerMac.cpp: Copied from Source/WebCore/platform/audio/mac/AudioSessionManagerMac.cpp.
(MediaSessionManager::updateSessionState):
2013-12-23 Zan Dobersek <zdobersek@igalia.com>
webkit gtk 2.2.3 stable tarball compilation error
https://bugs.webkit.org/show_bug.cgi?id=125987
Reviewed by Gustavo Noronha Silva.
Only try including <gdk/gdkwayland.h> and using GDK_IS_WAYLAND_DISPLAY if the Wayland support has been
enabled and when not compiling with GTK+ 2 (which occurs when building for libPlatformGtk2).
* platform/graphics/GLContext.cpp:
(WebCore::GLContext::createContextForWindow):
2013-12-23 Piotr Grad <p.grad@samsung.com>
[GStreamer] video/audio seeking is not unified.
https://bugs.webkit.org/show_bug.cgi?id=125852
Reviewed by Philippe Normand.
This bug is fixing regression with seeking audio/video elements and unifies seeking
in MediaPlayerPrivateGStreamer.
Test: media/video-seek-with-negative-playback.html
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::seekIncludingRate):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2013-12-23 ChangSeok Oh <changseok.oh@collabora.com>
[GTK][WK2] WebGL is not working with GLES
https://bugs.webkit.org/show_bug.cgi?id=126138
Reviewed by Martin Robinson.
m_texture has been unnecessarily regenerated. It's generated in GraphicsContext3D
constructor for offscreen rendering. And m_compositorTexture is used by only Mac port.
They create it in their GraphicsContext3D constructor so that we don't need to recreate it
in GC3DOpenGLES::reshapeFBOs.
No new tests since no functionality changed.
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::~GraphicsContext3D):
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
2013-12-22 Benjamin Poulain <bpoulain@apple.com>
Create a skeleton for CSS Selector code generation
https://bugs.webkit.org/show_bug.cgi?id=126044
Reviewed by Antti Koivisto and Gavin Barraclough.
Add CSSCompiler, which provides the basic infrastructure to compile
CSS Selectors on x86_64.
Compilation happens in two phases.
1) The various matching and relation of each CSSSelector is aggregated into units
matching a single element: SelectorFragment.
SelectorFragment also knows about the relations between different fragments,
and contains all the information to generate the code for a particular element.
2) The compiler then goes over the fragments, and generate code based on the information
of each fragment.
It the current state, SelectorCompiler only compiles the tag matching selectors and
any of the relation between selectors.
Depending on the relation and position of a fragment, failure on traversal or matching
does not necessarily causes the complete selector. A failure can cause matching to
resume from the parent or the sibling of a previously visisted node.
The implementation of this is done through the BacktrackingAction. In case of failure,
the next starting state is setup and the program counter jumps back to the appropriate
starting point.
When backtracking, the method used to save the starting point depends on the type
of backtracking.
The child/parent relation (">") is very common so it uses an additional register to keep
the next starting point (m_descendantBacktrackingStart).
The indirect sibling relation ("~") is much less common and uses the stack to save
the next starting point.
* WebCore.xcodeproj/project.pbxproj:
* cssjit/SelectorCompiler.cpp: Added.
(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::compileSelector):
(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::updateChainStates):
(WebCore::SelectorCompiler::isFirstAncestor):
(WebCore::SelectorCompiler::isFirstAdjacent):
(WebCore::SelectorCompiler::isAfterChildRelation):
(WebCore::SelectorCompiler::solveBacktrackingAction):
(WebCore::SelectorCompiler::requiresAdjacentTail):
(WebCore::SelectorCompiler::requiresDescendantTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
(WebCore::SelectorCompiler::testIsElementFlagOnNode):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
(WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
* cssjit/SelectorCompiler.h: Added.
(WebCore::SelectorCompilationStatus::SelectorCompilationStatus):
(WebCore::SelectorCompilationStatus::operator Status):
(WebCore::SelectorCompiler::simpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::selectorCheckerFunctionWithCheckingContext):
* dom/Element.cpp:
(WebCore::Element::setChildrenAffectedByDirectAdjacentRules):
(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
* dom/Element.h:
(WebCore::Element::tagQNameMemoryOffset):
(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
* dom/Node.h:
(WebCore::Node::parentNodeMemoryOffset):
(WebCore::Node::previousSiblingMemoryOffset):
(WebCore::Node::nodeFlagsMemoryOffset):
(WebCore::Node::flagIsElement):
* dom/QualifiedName.h:
(WebCore::QualifiedName::QualifiedNameImpl::localNameMemoryOffset):
(WebCore::QualifiedName::QualifiedNameImpl::namespaceMemoryOffset):
(WebCore::QualifiedName::implMemoryOffset):
2013-12-22 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Crash when trying to select content from invalid region
https://bugs.webkit.org/show_bug.cgi?id=126113
Reviewed by Antti Koivisto.
After fix for https://bugs.webkit.org/show_bug.cgi?id=120769, positionForPoint for a region attempts to use the associated named flow to perform its task.
However, this should happen only when the region is valid. If the region is invalid, part of a dependency cycle, positionForPoint should behave as usual
for a block instead of a region, otherwise it may run into an infinite loop due to cyclic dependencies and a crash will occur.
This patch ensures that positionForPoint region specifie behaviour is followed only if the region is valid - not part of a dependency cycle.
Test: fast/regions/selection/invalid-region-selection-crash.html
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::positionForPoint):
2013-12-21 Dirk Schulze <krit@webkit.org>
Start refactoring Filter code to reuse CachedSVGDocument for clipPath
https://bugs.webkit.org/show_bug.cgi?id=126069
Reviewed by Andreas Kling.
Smaller refactoring of the CSS filter style resolver code. Previously the code
requested the FilterOperations list from RenderStyle and compared the content
in this list with an internal map. Then the resource loading was triggered.
With the refactoring we do not request the list from RenderStyle anymore but
rely on the hash map data entirely.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingSVGDocuments):
* platform/graphics/filters/FilterOperation.h:
2013-12-20 Andy Estes <aestes@apple.com>
[Mac] Soft-link WebContentAnalysis.framework
https://bugs.webkit.org/show_bug.cgi?id=126102
Reviewed by Dan Bernstein.
* Configurations/WebCore.xcconfig: There's no need to modify LDFLAGS
now that we don't hard link against WebContentAnalysis.framework.
* WebCore.xcodeproj/project.pbxproj: Removed
WebContentAnalysis.framework from the 'Link Binary with Libraries'
build phase.
* platform/mac/ContentFilterMac.mm: Soft-linked
WebContentAnalysis.framework and the WebFilterEvaluator @class.
(WebCore::ContentFilter::ContentFilter): Called getWebFilterEvaluatorClass().
(WebCore::ContentFilter::isEnabled): Ditto.
* platform/mac/SoftLinking.h: Added an implementation of
SOFT_LINK_PRIVATE_FRAMEWORK().
2013-12-21 Antti Koivisto <antti@apple.com>
Unreviewed, rolling out r160916.
http://trac.webkit.org/changeset/160916
https://bugs.webkit.org/show_bug.cgi?id=126073
Roll out a temporary fix. The underlying issue was fixed.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::detach):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.h:
2013-12-21 Antti Koivisto <antti@apple.com>
Figure out if node is focusable without requiring renderer
https://bugs.webkit.org/show_bug.cgi?id=126118
Reviewed by Andreas Kling.
* dom/Element.cpp:
(WebCore::Element::computedStyle):
Use inDocument() test instead of the attached() test. We can compute style for anything that
is in document.
* dom/Node.cpp:
(WebCore::Node::isContentEditable):
(WebCore::Node::isContentRichlyEditable):
(WebCore::Node::hasEditableStyle):
Use computedStyle instead of getting the style from renderer. Computed style gets constructed
on demand if renderer does not exist. If it does then the existing style is used.
(WebCore::Node::isEditableToAccessibility):
(WebCore::Node::canStartSelection):
(WebCore::Node::isRootEditableElement):
(WebCore::Node::rootEditableElement):
* dom/Node.h:
(WebCore::Node::hasEditableStyle):
(WebCore::Node::hasRichlyEditableStyle):
Renamed from rendererIsEditable since these no longer require renderer.
(WebCore::HTMLElement::supportsFocus):
Stop calling updateStyleIfNeeded() and forcing render tree construction.
2013-12-21 Carlos Garcia Campos <cgarcia@igalia.com>
[SOUP] ResourceHandleSoup should use async client callbacks when client uses async callbacks
https://bugs.webkit.org/show_bug.cgi?id=126006
Reviewed by Martin Robinson.
This fixes WebKit2 loader client unit tests when using the network
process.
* platform/network/ResourceHandle.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::doRedirect): Call willSendRequestAsync on the client
when usesAsyncCallbacks returns true.
(WebCore::nextMultipartResponsePartCallback): Call
didReceiveResponseAsync on the client when usesAsyncCallbacks
returns true.
(WebCore::sendRequestCallback): Ditto.
(WebCore::ResourceHandle::continueWillSendRequest): Empty
implementation for now because the default one asserts.
(WebCore::ResourceHandle::continueDidReceiveResponse): Ditto.
(WebCore::ResourceHandle::continueShouldUseCredentialStorage): Ditto.
2013-12-20 Anders Carlsson <andersca@apple.com>
Replace yield() and pauseBriefly() with std::this_thread::yield()
https://bugs.webkit.org/show_bug.cgi?id=126105
Reviewed by Sam Weinig.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::interrupt):
2013-12-20 Ryosuke Niwa <rniwa@webkit.org>
Assert that RootInlineBox::setLineBreakInfo should is never called on a RenderInline without line boxes
https://bugs.webkit.org/show_bug.cgi?id=126101
Reviewed by Simon Fraser.
Merge assertions added in https://chromium.googlesource.com/chromium/blink/+/716ac74fd475b581d69c0aa8ec2d806201c3a420
The code change was not merged since we never hit the added assertion on the attached test case in WebKit.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::setLineBreakInfo):
2013-12-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove the references to Node in InjectedScript
https://bugs.webkit.org/show_bug.cgi?id=126091
Reviewed by Timothy Hatcher.
Remove the last DOM references from InjectedScript so that
InjectedScript can move down into JavaScriptCore. The only
remaining references were to Nodes, which are all just thin
wrappers around existing functions. Move Node / JSNode (JSValue)
conversion into InspectorDOMAgent, where it was used.
No new tests, no observable change in functionality.
* bindings/js/JSInjectedScriptHostCustom.cpp:
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::inspectObject):
(WebCore::InjectedScript::releaseObject):
* inspector/InjectedScript.h:
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptSource.js:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::focusNode):
(WebCore::InspectorDOMAgent::highlightNode):
(WebCore::InspectorDOMAgent::requestNode):
(WebCore::InspectorDOMAgent::nodeForObjectId):
(WebCore::InspectorDOMAgent::resolveNode):
(WebCore::InspectorDOMAgent::scriptValueAsNode):
(WebCore::InspectorDOMAgent::nodeAsScriptValue):
* inspector/InspectorDOMAgent.h:
* inspector/PageConsoleAgent.cpp:
2013-12-20 Myles C. Maxfield <mmaxfield@apple.com>
Faster implementation of text-decoration-skip: ink
https://bugs.webkit.org/show_bug.cgi?id=125718
Reviewed by Simon Fraser.
This new implementation of text-decoration-skip: ink extracts
each glyph into a path, then decomposes each path into a series
of contours. It then intersects each contour with the top and
bottom of the underline (by approximating the contour with a line).
It then draws underlines in between these intersection regions.
Tests for text-decoration-skip: ink already exist in
fast/css3-text/css3-text-decoration/text-decoration-skip
* platform/graphics/Font.h: Signature of new function
* platform/graphics/mac/FontMac.mm:
(WebCore::GlyphIterationState::GlyphIterationState): Persistent
between calls to findPathIntersections
(WebCore::findIntersectionPoint): Calculates an intersection point
between two lines
(WebCore::findPathIntersections): Called by CGPathApply to find
intersections of each contour
(WebCore::Font::intersectionPoints): Function to get the places
where an underline would intersect a TextRun.
* rendering/InlineTextBox.cpp:
(WebCore::compareTuples): Used for sorting intersection ranges
(WebCore::translateIntersectionPointsToSkipInkBoundaries): Converts
a sequence of intersection points to the locations where
text-decoration-skip: ink should draw underlines
(WebCore::drawSkipInkUnderline): Draws a sequence of short underlines
(WebCore::InlineTextBox::paintDecoration):
* rendering/TextPainter.cpp:
(WebCore::TextPainter::intersectionPoints): Calls Font::intersectionPoints
* rendering/TextPainter.h:
2013-12-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Give the CommandLineAPIModule its own Host object, making InjectedScriptHost viable for a JS Context
https://bugs.webkit.org/show_bug.cgi?id=126082
Reviewed by Timothy Hatcher.
Extract CommandLineAPIHost from InjectedScriptHost. The command line API contained
a bunch of DOM specific JavaScript that would not be suitable for a pure JavaScript
environment. Now that the DOM related code is in this WebCore only module, give this
module a host object that WebCore will provide.
No new tests, no observable change in functionality.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
Add new files.
* bindings/js/JSCommandLineAPIHostCustom.cpp: Added.
(WebCore::JSCommandLineAPIHost::inspectedObject):
(WebCore::getJSListenerFunctions):
(WebCore::JSCommandLineAPIHost::getEventListeners):
(WebCore::JSCommandLineAPIHost::inspect):
(WebCore::JSCommandLineAPIHost::databaseId):
(WebCore::JSCommandLineAPIHost::storageId):
* bindings/js/JSInjectedScriptHostCustom.cpp:
* inspector/CommandLineAPIHost.cpp: Copied from Source/WebCore/inspector/InjectedScriptHost.cpp.
(WebCore::CommandLineAPIHost::create):
(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::~CommandLineAPIHost):
(WebCore::CommandLineAPIHost::disconnect):
(WebCore::CommandLineAPIHost::inspectImpl):
(WebCore::CommandLineAPIHost::getEventListenersImpl):
(WebCore::CommandLineAPIHost::clearConsoleMessages):
(WebCore::CommandLineAPIHost::copyText):
(WebCore::CommandLineAPIHost::InspectableObject::get):
(WebCore::CommandLineAPIHost::addInspectedObject):
(WebCore::CommandLineAPIHost::clearInspectedObjects):
(WebCore::CommandLineAPIHost::inspectedObject):
(WebCore::CommandLineAPIHost::databaseIdImpl):
(WebCore::CommandLineAPIHost::storageIdImpl):
* inspector/CommandLineAPIHost.h: Copied from Source/WebCore/inspector/InjectedScriptHost.h.
(WebCore::CommandLineAPIHost::init):
* inspector/CommandLineAPIHost.idl: Copied from Source/WebCore/inspector/InjectedScriptHost.idl.
* inspector/CommandLineAPIModule.cpp:
These are almost all pure copies from InjectedScriptHost files. Cleaned up a bit.
* inspector/InjectedScriptModule.h:
* inspector/InjectedScriptModule.cpp:
(WebCore::InjectedScriptModule::ensureInjected):
Modules can now define a host object when they are getting injected.
(WebCore::CommandLineAPIModule::host):
* inspector/CommandLineAPIModule.h:
Provide a CommandLineAPIHost, host object.
* inspector/InjectedScriptCanvasModule.h:
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::host):
No host object is needed for the CanvasModule.
* inspector/InjectedScriptSource.js:
* inspector/CommandLineAPIModuleSource.js:
When injecting a module, pass on an optional host object to
the module's source. Move a little more code between the
two files. The two files are very tightly coupled right now.
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::create):
* inspector/InjectedScriptHost.h:
(WebCore::InjectedScriptHost::~InjectedScriptHost):
(WebCore::InjectedScriptHost::InjectedScriptHost):
* inspector/InjectedScriptHost.idl:
Move any command line specific logic to CommandLineAPIHost classes.
* inspector/InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::disconnect):
* inspector/InjectedScriptManager.h:
(WebCore::InjectedScriptManager::commandLineAPIHost):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addInspectedHeapObject):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::resetState):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::resetState):
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::addInspectedNode):
* inspector/PageInjectedScriptManager.cpp:
(WebCore::PageInjectedScriptManager::PageInjectedScriptManager):
(WebCore::PageInjectedScriptManager::disconnect):
* inspector/PageInjectedScriptManager.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
An InjectedScriptManager may optionally have a commandLineAPIHost object.
If it does, initialize it, and send it messages.
2013-12-09 Myles C. Maxfield <mmaxfield@apple.com>
Allow ImageBuffer to re-use IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=125477
Reviewed by Geoff Garen.
This test adds a static class, ImageBufferBackingStoreCache, that vends
IOSurfaces. It remembers IOSurfaces that have been returned to it until
a configurable timeout.
The storage used by this class is in the form of a HashMap from a
bucketed size to the IOSurface. There are many other data structures
that could be used, but this implementation gives a 80% hit rate on
normal browsing of some example sites with Canvas and
text-decoration-skip: ink. Because the buckets are fairly
small (rounding the width and height up to multiples of 8), traversing the
bucket contents takes on average 2 steps.
Test: fast/canvas/canvas-backing-store-reuse.html
* WebCore.xcodeproj/project.pbxproj: Added new caching class
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Added.
(WebCore::createIOSurface): Moved from ImageBufferCG.cpp
(WebCore::ImageBufferBackingStoreCache::timerFired): Forget the cache
contents
(WebCore::ImageBufferBackingStoreCache::schedulePurgeTimer):
(WebCore::ImageBufferBackingStoreCache::get): Static getter
(WebCore::ImageBufferBackingStoreCache::ImageBufferBackingStoreCache):
(WebCore::ImageBufferBackingStoreCache::insertIntoCache): Memory-management
creation function
(WebCore::ImageBufferBackingStoreCache::takeFromCache): Memory-management
deletion function
(WebCore::ImageBufferBackingStoreCache::isAcceptableSurface): Does this cached
IOSurface fit the bill?
(WebCore::ImageBufferBackingStoreCache::tryTakeFromCache): Lookup
a bucket and walk through its contents
(WebCore::ImageBufferBackingStoreCache::getOrAllocate): Public function
for clients who want a IOSurface from the cache
(WebCore::ImageBufferBackingStoreCache::deallocate): Public
function for clients to return an IOSurface to the pool
* platform/graphics/cg/ImageBufferBackingStoreCache.h: Added.
* platform/graphics/cg/ImageBufferCG.cpp: Update to use new cache
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::~ImageBuffer):
2013-12-20 Simon Fraser <simon.fraser@apple.com>
Change "threaded scrolling" terminology to "asynchronous scrolling"
https://bugs.webkit.org/show_bug.cgi?id=126094
Reviewed by Tim Horton.
Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING, and change
references to "main thread scrolling" to "synchronous scrolling".
In a few places, functions with names like shouldUpdateScrollLayerPositionOnMainThread()
were actually returning SynchronousScrollingReasons, so rename them appropriately.
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):
(WebCore::FrameView::isRubberBandInProgress):
(WebCore::FrameView::requestScrollPositionUpdate):
(WebCore::FrameView::updatesScrollLayerPositionOnMainThread):
(WebCore::FrameView::wheelEvent):
* page/Page.cpp:
(WebCore::Page::synchronousScrollingReasonsAsText):
* page/Page.h:
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::create):
(WebCore::ScrollingCoordinator::ScrollingCoordinator):
(WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
(WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
(WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::ScrollingCoordinator::synchronousScrollingReasons):
(WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
(WebCore::ScrollingCoordinator::setForceSynchronousScrollLayerPositionUpdates):
(WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously):
(WebCore::ScrollingCoordinator::setSynchronousScrollingReasons):
* page/scrolling/ScrollingStateFixedNode.cpp:
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.cpp:
* page/scrolling/ScrollingStateNode.h:
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons):
(WebCore::ScrollingStateScrollingNode::dumpProperties):
* page/scrolling/ScrollingStateScrollingNode.h: Awkward "ReasonsForSynchronousScrolling" to avoid
conflict with the enum called SynchronousScrollingReasons.
* page/scrolling/ScrollingStateStickyNode.cpp:
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingStateTree.cpp:
* page/scrolling/ScrollingStateTree.h:
* page/scrolling/ScrollingThread.cpp:
* page/scrolling/ScrollingThread.h:
* page/scrolling/ScrollingTree.cpp:
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeNode.cpp:
* page/scrolling/ScrollingTreeNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons):
(WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::setSynchronousScrollingReasons):
(WebCore::ScrollingCoordinatorMac::commitTreeState):
* page/scrolling/mac/ScrollingStateNodeMac.mm:
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
* page/scrolling/mac/ScrollingThreadMac.mm:
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeFixedNode.mm:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
(WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
(WebCore::logThreadedScrollingMode):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* page/scrolling/mac/ScrollingTreeStickyNode.mm:
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::updateTileCoverageMap):
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupFontSubpixelQuantization):
* rendering/RenderLayerBacking.cpp:
(WebCore::computeTileCoverage):
* testing/Internals.cpp:
(WebCore::Internals::mainThreadScrollingReasons):
* testing/Internals.idl:
2013-12-20 Tim Horton <timothy_horton@apple.com>
Revert r160327, r160273, and r160260.
We'll come up with something less aggressive, as this doesn't quite work.
* loader/cache/CachedImage.h:
* loader/cache/CachedResource.h:
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneLiveResourcesToSize):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:
2013-12-20 Anders Carlsson <andersca@apple.com>
PostAttachCallbackDisabler should take a Document
https://bugs.webkit.org/show_bug.cgi?id=126090
Reviewed by Andreas Kling.
suspendPostAttachCallbacks and resumePostAttachCallbacks always only get the document from the
container node, so make them static member functions that take a Document&. Also, move PostAttachCallbackDisabler
to Element.h in preparation for moving post attach callback handling to Element.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::suspendPostAttachCallbacks):
(WebCore::ContainerNode::resumePostAttachCallbacks):
* dom/ContainerNode.h:
* dom/Element.h:
(WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
(WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachRenderTree):
2013-12-20 Anders Carlsson <andersca@apple.com>
Move scheduleSetNeedsStyleRecalc to HTMLFrameOwnerElement
https://bugs.webkit.org/show_bug.cgi?id=126083
Reviewed by Antti Koivisto.
scheduleSetNeedsStyleRecalc is only ever called on HTMLFrameOwnerElement, so
move it there, remove the Node implementation and make it non-virtual.
* dom/ContainerNode.cpp:
* dom/ContainerNode.h:
* dom/Node.h:
* html/HTMLFrameOwnerElement.cpp:
(WebCore::needsStyleRecalcCallback):
(WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc):
* html/HTMLFrameOwnerElement.h:
2013-12-20 Andy Estes <aestes@apple.com>
Remove an unneeded include of WebCoreSystemInterface.h.
Rubber-stamped by Dan Bernstein.
* platform/mac/ContentFilterMac.mm:
2013-12-20 Anders Carlsson <andersca@apple.com>
Node post attach callbacks should use references
https://bugs.webkit.org/show_bug.cgi?id=126081
Reviewed by Antti Koivisto.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::queuePostAttachCallback):
(WebCore::ContainerNode::dispatchPostAttachCallbacks):
(WebCore::needsStyleRecalcCallback):
(WebCore::ContainerNode::scheduleSetNeedsStyleRecalc):
* dom/ContainerNode.h:
* html/HTMLFormControlElement.cpp:
(WebCore::focusPostAttach):
(WebCore::HTMLFormControlElement::didAttachRenderers):
(WebCore::updateFromElementCallback):
(WebCore::HTMLFormControlElement::didRecalcStyle):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAttachRenderers):
(WebCore::HTMLPlugInImageElement::updateWidgetCallback):
(WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
* html/HTMLPlugInImageElement.h:
2013-12-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule
https://bugs.webkit.org/show_bug.cgi?id=126038
Reviewed by Timothy Hatcher.
Only inject the CommandLineAPIModule once, when the InjectedScript
is first created. This avoids running a small snippet of JavaScript
to check if the module is loaded every time we fetch the InjectedScript.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
Add new files to the build.
* inspector/InjectedScriptManager.h:
* inspector/InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createForPage):
(WebCore::InjectedScriptManager::injectedScriptFor):
(WebCore::InjectedScriptManager::didCreateInjectedScript):
Add didCreateInjectedScript hook for a subclass to inject more scripts.
* inspector/PageInjectedScriptManager.h: Added.
* inspector/PageInjectedScriptManager.cpp: Added.
(WebCore::PageInjectedScriptManager::didCreateInjectedScript):
For pages, inject the CommandLineAPIModule.
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::injectedScriptForEval):
This is replaced by PageInjectedScriptManager, we no longer need
to do extra work every time we fetch the injectedScriptForEval.
2013-12-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Extract CommandLineAPI into its own InjectedScriptModule
https://bugs.webkit.org/show_bug.cgi?id=126038
Reviewed by Timothy Hatcher.
No tests, no observable change in behavior.
Move the CommandLineAPI source into its own module. Load the module
in InjectedScripts for WebCore::Pages. Not for workers.
Moving CommandLineAPI into it's own module moves it from being inside
the same anonymous function to being evaluated outside the anonymous
function. To connect the two InjectedScript passes itself to the
injected module, and the CommandLineAPI module places its class on the
injectedScript as injectedScript.CommandLineAPI.
This essentially makes the CommandLineAPI module an InjectedScript
extension. InjectedScriptSource checks for the existence of
this.CommandLineAPI to see if the fuller version is available. Otherwise
it falls back to a BasicCommandLineAPI which only exposes "$_",
which is the "last evaluated result". That will be useful for JS Contexts
and Workers.
At the same time, this patch makes InjectedScriptModule more generic,
to support being used in a pure JavaScript environment, meaning one
without "window" as the global object.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
Add files. Minify the CommandLineAPIModuleSource in generation.
* inspector/CommandLineAPIModule.h: Added.
* inspector/CommandLineAPIModule.cpp: Added.
(WebCore::CommandLineAPIModule::CommandLineAPIModule):
(WebCore::CommandLineAPIModule::injectIfNeeded):
(WebCore::CommandLineAPIModule::source):
Inject the module that doesn't return an object, its just evaluated code
extending the original InjectedScript.
* inspector/InjectedScriptModule.h:
* inspector/InjectedScriptModule.cpp:
(WebCore::InjectedScriptModule::ensureInjected):
Only ASSERT the result was an object if the Module claims it returns an object.
* inspector/InjectedScriptCanvasModule.h:
(WebCore::InjectedScriptCanvasModule::returnsObject):
Return an object used later to call into the CanvasModule.
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::injectedScriptForEval):
Ensure the CommandLineAPIModule is loaded in the Page's InjectedScript.
* inspector/CommandLineAPIModuleSource.js: Added.
Create the CommandLineAPI class and place it on injectedScript.
* inspector/InjectedScriptSource.js:
(InjectedScript.prototype._evaluateOn):
Inject either the BasicCommandLineAPI or extended CommandLineAPI.
Derive the globalObject dynamically instead of assuming window.
Inject the commandLineAPI on window.console or the globalObject based on context.
Audit and rename uses of "window" to something like globalObject.
2013-12-20 Tim Horton <timothy_horton@apple.com>
WebKit2 View Gestures: Implement smartMagnifyWithEvent: and make it work
https://bugs.webkit.org/show_bug.cgi?id=125752
<rdar://problem/15664245>
Reviewed by Anders Carlsson.
* WebCore.exp.in:
Add some exports.
2013-12-20 Antti Koivisto <antti@apple.com>
http/tests/misc/object-image-error.html asserts
https://bugs.webkit.org/show_bug.cgi?id=126074
Reviewed by Andreas Kling.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAttachRenderers):
(WebCore::HTMLPlugInImageElement::updateWidgetCallback):
(WebCore::HTMLPlugInImageElement::startLoadingImage):
(WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
* html/HTMLPlugInImageElement.h:
Start image load from post-attach so we don't re-enter attach when image load fails synchronously.
2013-12-20 Antti Koivisto <antti@apple.com>
Crashes in AccessibilityRenderObject::computeAccessibilityIsIgnored()
https://bugs.webkit.org/show_bug.cgi?id=126073
Reviewed by Ryosuke Niwa.
Prevent the crash and try to catch in debug why it is happening.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::~AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::detach):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* accessibility/AccessibilityRenderObject.h:
2013-12-20 Antti Koivisto <antti@apple.com>
Fix asserting accesibility tests.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::supportsFocus): Accessibility code checks focus status during painting.
2013-12-20 Zan Dobersek <zdobersek@igalia.com>
Unreviewed GTK build fix after r160909.
Remove remaining uses of AttachLazily in code specific to the GTK port.
* html/shadow/MediaControlsGtk.cpp:
(WebCore::MediaControlsGtk::initializeControls):
(WebCore::MediaControlsGtk::createTextTrackDisplay):
2013-12-19 Antti Koivisto <antti@apple.com>
Create render tree lazily
https://bugs.webkit.org/show_bug.cgi?id=120685
Reviewed by Andreas Kling.
We currently recompute style and construct renderer for each DOM node immediately after they are added to
the tree. This is often inefficient as the style may change immediately afterwards and the work needs to be
redone.
With this patch we always compute style and construct render tree lazily, either on style recalc timer or
synchronously when they are needed. It also removes the 'attached' bit. If document has render tree then
all nodes are conceptually "attached" even if this happens lazily.
The patch slightly changes behavior of implicit CSS transitions. A synchronous style change during parsing
may not trigger the animation anymore as laziness means we don't see anything changing. This matches Firefox
and Chrome in our test cases.
* WebCore.exp.in:
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::appendChild):
All attaching is now lazy, remove AttachLazily.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
SVG renderers with !isValid() have empty display property value for some reason. Keep the behavior.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::updateTreeAfterInsertion):
* dom/ContainerNode.h:
* dom/Document.cpp:
(WebCore::Document::~Document):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::createRenderTree):
(WebCore::Document::destroyRenderTree):
Remove attach bit maintenance.
(WebCore::Document::webkitDidExitFullScreenForElement):
Do lazy render tree reconstruction after returning from full screen. That is the only reliable way
to get the render tree back to decent shape.
* dom/Element.cpp:
(WebCore::Element::isFocusable):
Remove pointless !renderer()->needsLayout() assert.
(WebCore::Element::addShadowRoot):
(WebCore::Element::childShouldCreateRenderer):
(WebCore::Element::resetComputedStyle):
Take care to reset computed style in all descendants. attachRenderTree no longer does this.
* dom/Element.h:
* dom/Node.cpp:
(WebCore::Node::insertBefore):
(WebCore::Node::replaceChild):
(WebCore::Node::appendChild):
(WebCore::Node::setNeedsStyleRecalc):
Propagate ReconstructRenderTree.
(WebCore::Node::attached):
Emulate the behavior of old attached bit for now so existing code calling this mostly stays working.
* dom/Node.h:
Add new ReconstructRenderTree value for StyleChangeType.
* dom/Range.cpp:
(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareNode):
(WebCore::Range::intersectsNode):
* editing/AppendNodeCommand.cpp:
(WebCore::AppendNodeCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::canRebalance):
* editing/InsertNodeBeforeCommand.cpp:
(WebCore::InsertNodeBeforeCommand::doApply):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::activeElement):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setInnerText):
TextControlInnerTextElement always preserves newline even if it doesn't have style yet.
(WebCore::HTMLElement::supportsFocus):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parseAttribute):
* html/HTMLFormControlElement.cpp:
(WebCore::shouldAutofocus):
Don't autofocus until we have renderer.
* html/HTMLFormControlElementWithState.cpp:
(WebCore::HTMLFormControlElementWithState::shouldSaveAndRestoreFormControlState):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
Lazy render tree construction.
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::defaultEventHandler):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::didAddUserAgentShadowRoot):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::executeTask):
Don't attach renderer after construction.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::invalidateDistribution):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::willAttachRenderers):
(WebCore::InsertionPoint::willDetachRenderers):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/shadow/MediaControls.cpp:
(WebCore::MediaControls::createTextTrackDisplay):
* html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsApple::createControls):
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::getDisplayTree):
* loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::preload):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachTextRenderer):
(WebCore::Style::detachTextRenderer):
Remove attached bit maintenance.
(WebCore::Style::attachChildren):
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachShadowRoot):
(WebCore::Style::detachRenderTree):
(WebCore::Style::resolveLocal):
* svg/SVGTests.cpp:
(WebCore::SVGTests::handleAttributeChange):
Make lazy.
* testing/Internals.cpp:
(WebCore::Internals::attached):
(WebCore::Internals::elementRenderTreeAsText):
(WebCore::Internals::markerAt):
(WebCore::Internals::nodesFromRect):
2013-12-20 Andreas Kling <akling@apple.com>
Devirtualize RenderElement::setStyle().
<https://webkit.org/b/126065>
setStyle() was only virtual in order to let RenderSVGBlock override
the display type in some cases. Devirtualized it and moved the fixup
logic to StyleResolver::adjustRenderStyle().
This hack had an evil twin in RenderElement::initializeStyle() that
also goes away. FIXME--!
Based on a Blink change by Elliott Sprehn.
Reviewed by Antti Koivisto.
2013-12-20 Radu Stavila <stavila@adobe.com>
[CSS Regions] When changing flow-from/flow-into on :hover, elements overflowing the region are not correctly repainted
https://bugs.webkit.org/show_bug.cgi?id=117259
Reviewed by Antti Koivisto.
When computing the repaint rect for a region, the existing visual overflow must be taken into consideration.
For this purpose, I overridden the visualOverflowRect method in RenderNamedFlowFragment, which ends up being
called from RenderBox::clippedOverflowRectForRepaint.
Test: fast/regions/hover-single-flow-from-none-overflow.html
fast/regions/hover-single-flow-from-none-overflow-top.html
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::visualOverflowRect):
* rendering/RenderNamedFlowFragment.h:
2013-12-20 Mario Sanchez Prada <mario.prada@samsung.com>
Programmatically-inserted children lack accessibility events
https://bugs.webkit.org/show_bug.cgi?id=100275
Reviewed by Chris Fleizach.
Test: accessibility/children-changed-sends-notification.html
Emit children-changed::add and children-changed::remove whenever
an object has been added/removed to the accessibility hierarchy,
that is, when a new AtkObject is being attached/detached.
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::detachWrapper): Added a new parameter and
updated all the prototypes in different ports.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache): Call detachWrapper()
specifying that we do it because the cache is being destroyed.
(WebCore::AXObjectCache::remove): Call detachWrapper() specifying
that we do it because an accessible element is being destroyed.
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::detachWrapper): Emit the children-changed
signal when needed. We rely on the cached reference to the parent
AtkObject (using the implementation of atk_object_get_parent from
the AtkObject class) to find the right object to emit the signal
from here, since the accessibility hierarchy from WebCore will no
longer be accessible at this point.
(WebCore::AXObjectCache::attachWrapper): Emit the children-change
signal from here unless we are in the middle of a layout update,
trying to provide as much information (e.g. the offset) as possible.
(WebCore::AXObjectCache::postPlatformNotification): Make sure we
update (touch) the subtree under an accessibility object whenever
we receive AXChildrenChanded from WebCore, to ensure that those
objects will also be visible rightaway to ATs, and that those get
properly notified of the event at that very same moment.
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper): Updated function signature.
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper): Ditto.
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::detachWrapper): Ditto.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::children): Add the option ot
request the AccessibilityChildrenVector without updating it if
needed, to avoid maybe recreating the child subtree when trying to
get the offset of a newly attached element from attachWrapper.
* accessibility/AccessibilityObject.h:
2013-12-20 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
Move function calls outside loop in dom
https://bugs.webkit.org/show_bug.cgi?id=125916
Reviewed by Csaba Osztrogonác.
Do not call length() in each iteration.
* dom/Element.cpp:
(WebCore::Element::cloneAttributesFromElement):
* dom/Node.cpp:
(WebCore::Node::dumpStatistics):
2013-12-19 Beth Dakin <bdakin@apple.com>
REGRESSION: cnn.com will continue to reveal 1 px of overhang after rubber-banding
at the top
https://bugs.webkit.org/show_bug.cgi?id=126054
Reviewed by Simon Fraser.
This regression was caused by http://trac.webkit.org/changeset/160791 It turns out
that the line of code I removed was not always a no-op. In some instances, like on
cnn.com, it would ensure that our final scroll position after a rubber-band was
not something within the overhang area. It was still wrong in its assumption that
rubber-band is always bouncing back the spot it originated from. So this patch
continues to ignore the rubber-bands origin, and instead finds the nearest point
that is not in the overhang area, and scrolls to that point instead of the origin.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
* platform/mac/ScrollAnimatorMac.h:
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::adjustScrollPositionToBoundsIfNecessary):
* platform/mac/ScrollElasticityController.h:
* platform/mac/ScrollElasticityController.mm:
(WebCore::ScrollElasticityController::snapRubberBandTimerFired):
2013-12-19 Simon Fraser <simon.fraser@apple.com>
Clarify the behavior of composited canvases
https://bugs.webkit.org/show_bug.cgi?id=126042
Reviewed by Tim Horton.
Different platforms composite 2D and 3D canvases in different ways.
"Accelerated 2D" canvases, and WebGL are always set as GraphicsLayer
contents.
"IOSurface" canvases (Mac and iOS-only) get a compositing layer, but
paint into it (because this is fast, and a convenient way to get
synchronization).
So make these behaviors explicit in RenderLayerBacking and RenderLayerCompositor.
No behavior changes on OS X, bug fix on iOS.
* rendering/RenderLayerBacking.cpp:
(WebCore::canvasCompositingStrategy):
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
(WebCore::RenderLayerBacking::containsPaintedContent):
(WebCore::RenderLayerBacking::contentChanged):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
2013-12-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add InspectorFrontendHost.debuggableType to let the frontend know it's backend is JavaScript or Web
https://bugs.webkit.org/show_bug.cgi?id=126016
Reviewed by Timothy Hatcher.
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::debuggableType):
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
Expose the debuggableType to the frontend. In WebCore it is always a "web" type.
2013-12-19 Benjamin Poulain <benjamin@webkit.org>
Add an utility class to simplify generating function calls
https://bugs.webkit.org/show_bug.cgi?id=125972
Reviewed by Geoffrey Garen.
FunctionCall is a little helper class to make function calls from the JIT
in 3 or 4 lines.
FunctionCall takes a StackAllocator, a RegisterAllocator and a function pointer.
When the call is generated, the helper saves the registers as necessary, aligns
the stack, does the call, restores the stack, and restore the registers.
* cssjit/FunctionCall.h: Added.
(WebCore::FunctionCall::FunctionCall):
(WebCore::FunctionCall::setFunctionAddress):
(WebCore::FunctionCall::setFirstArgument):
(WebCore::FunctionCall::call):
(WebCore::FunctionCall::callAndBranchOnCondition): Most test functions used
with FunctionCall return a boolean. When the boolean is the sole purpose of the function
call, this provides an easy way to branch on the boolean without worrying about registers.
The return register is tested first, then all the saved registers are restored from the stack
(which can include the return register), finally the flags are used for a jump.
(WebCore::FunctionCall::prepareAndCall):
(WebCore::FunctionCall::cleanupPostCall):
(WebCore::FunctionCall::saveAllocatedRegisters):
(WebCore::FunctionCall::restoreAllocatedRegisters):
* WebCore.xcodeproj/project.pbxproj:
* cssjit/FunctionCall.h: Added.
(WebCore::FunctionCall::FunctionCall):
(WebCore::FunctionCall::setFunctionAddress):
(WebCore::FunctionCall::setFirstArgument):
(WebCore::FunctionCall::call):
(WebCore::FunctionCall::callAndBranchOnCondition):
(WebCore::FunctionCall::prepareAndCall):
(WebCore::FunctionCall::cleanupPostCall):
(WebCore::FunctionCall::saveAllocatedRegisters):
(WebCore::FunctionCall::restoreAllocatedRegisters):
2013-12-19 Anders Carlsson <andersca@apple.com>
Begin stubbing out the KeyedDecoder class
https://bugs.webkit.org/show_bug.cgi?id=126031
Reviewed by Andreas Kling.
KeyedDecoder is going to be the new way to decode back forward trees.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::decodeBackForwardTree):
* history/HistoryItem.h:
* platform/KeyedCoding.h:
(WebCore::KeyedDecoder::~KeyedDecoder):
2013-12-19 Oliver Hunt <oliver@apple.com>
DOM bindings should use thisValue for attributes
https://bugs.webkit.org/show_bug.cgi?id=126011
Reviewed by Antti Koivisto.
Make all standard DOM attributes use the thisValue instead
of the slot object. This requires using a dynamic cast in
the attribute getters. Happily for normal uses this a single
indirect load and pointer compare, and we were already doing
it for many attributes.
Alas it's too expensive to do this on the window object still
due to the proxy indirection that intercepts global variable
access. I'll correct this in a follow on patch (bug 126013).
A number of custom getters have also been updated to use the
thisValue and full type checks.
This patch still leaves the index and generic named getters
on the slot based model as fixing these cases requires more
complicated changes.
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::cssPropertyGetterPixelOrPosPrefixCallback):
(WebCore::cssPropertyGetterCallback):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
(WebCore::jsTestActiveDOMObjectConstructor):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
(WebCore::jsTestEventConstructorConstructor):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
(WebCore::jsTestExceptionConstructor):
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorImplementsStaticAttr):
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
(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::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
(WebCore::jsTestObjConstructorStaticStringAttr):
(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):
(WebCore::jsTestObjConstructor):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::jsTestOverloadedConstructorsConstructor):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsConstructor):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
(WebCore::jsattributeConstructor):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::lengthGetter):
* bridge/runtime_method.cpp:
(JSC::RuntimeMethod::lengthGetter):
2013-12-19 Andy Estes <aestes@apple.com>
Remove WebFilterEvaluator wrappers from WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=126028
Reviewed by Anders Carlsson.
It's overkill to pipe access to WebFilterEvaluator through
WebKitSystemInterface. Instead, include WebFilterEvaluator.h when it
exists and re-declare WebFilterEvaluator when it doesn't.
WebKitSystemInterface used to soft-link WebContentAnalysis.framework
since OS X 10.7 didn't contain this framework. Since we no longer
support 10.7, we can now directly link against the framework.
* Configurations/WebCore.xcconfig: Add /System/Library/PrivateHeaders
to the system framework search path at both compile and link time so
that we can find WebContentAnalysis.framework.
* WebCore.exp.in: Don't export removed symbols.
* WebCore.xcodeproj/project.pbxproj: Added WebContentAnalysis.framework
to the 'Link Binary With Libraries' build phase.
* platform/mac/ContentFilterMac.mm: Included WebFilterEvaluator.h when
it exists and re-declared WebFilterEvaluator when it doesn't.
(WebCore::ContentFilter::ContentFilter): Directly called a method on
m_platformContentFilter rather than going through WKSI.
(WebCore::ContentFilter::isEnabled): Ditto.
(WebCore::ContentFilter::addData): Ditto.
(WebCore::ContentFilter::finishedAddingData): Ditto.
(WebCore::ContentFilter::needsMoreData): Ditto.
(WebCore::ContentFilter::didBlockData): Ditto.
* platform/mac/WebCoreSystemInterface.h: Removed function pointers for
calling into WKSI.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
2013-12-19 Andreas Kling <akling@apple.com>
Use CascadedProperties for page and keyframe style resolution as well.
<https://webkit.org/b/125997>
Port StyleResolver's styleForKeyframe() and styleForPage() over to
the new property cascading code. Neither of them care about !important
or matched properties caches, so the code is very simple.
Removed the old applyMatchedProperties and applyProperties code with
low/high priority passes.
Reviewed by Antti Koivisto.
2013-12-19 Eric Carlson <eric.carlson@apple.com>
tryAddEventListener uses local PassRefPtr<>
https://bugs.webkit.org/show_bug.cgi?id=126001
Reviewed by Daniel Bates.
* dom/Node.cpp:
(WebCore::tryAddEventListener): Put PassRefPtr<EventListener> parameter into a local RefPtr
because it is sometimes used twice.
2013-12-19 Ryosuke Niwa <rniwa@webkit.org>
overflowchanged event could cause a crash
https://bugs.webkit.org/show_bug.cgi?id=125978
Reviewed by Tim Horton.
Made the event asynchrnous by re-using Document's event queuing ability. Also removed
the infrastructure to queue up events in FrameView.
Test: fast/events/overflowchanged-inside-selection-collapse-crash.html
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
(WebCore::Document::enqueueOverflowEvent):
* dom/Document.h:
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::~FrameView):
(WebCore::FrameView::layout):
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::updateOverflowStatus):
* page/FrameView.h:
* rendering/RenderBlock.cpp:
(WebCore::OverflowEventDispatcher::~OverflowEventDispatcher):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::start):
2013-12-19 Daniel Bates <dabates@apple.com>
Fix the Windows build after <http://trac.webkit.org/changeset/160841>
(https://bugs.webkit.org/show_bug.cgi?id=125879)
Add ENABLE(CACHE_PARTITIONING)-guard around call to ResourceRequest::setCachePartition()
as this function is only compiled when building with cache partitioning enabled.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::addImageToCache):
2013-12-19 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/accessibility changes
https://bugs.webkit.org/show_bug.cgi?id=125925
Reviewed by Chris Fleizach.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionForPoint): Opt out of code when building for iOS.
2013-12-19 Alex Christensen <achristensen@webkit.org>
[WinCairo] Compile fix for VS2013 when using ACCELERATED_COMPOSITING.
https://bugs.webkit.org/show_bug.cgi?id=124866
Reviewed by Darin Adler.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
* platform/graphics/TiledBackingStore.h:
Added constructor overload to avoid compile errors
from using MSVC's make_unique as a default parameter.
2013-12-19 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/loader changes
https://bugs.webkit.org/show_bug.cgi?id=125879
Reviewed by Darin Adler.
* WebCore.exp.in: Added symbols for MemoryCache::{addImageToCache, removeImageFromCache}().
* loader/DocumentLoader.cpp:
(WebCore::areAllLoadersPageCacheAcceptable): Added.
(WebCore::DocumentLoader::DocumentLoader): Initialize m_subresourceLoadersArePageCacheAcceptable.
(WebCore::DocumentLoader::stopLoading): Modified to conditionally call areAllLoadersPageCacheAcceptable().
(WebCore::DocumentLoader::handleSubstituteDataLoadSoon): Modified to query FrameLoader::loadsSynchronously()
whether to load substitute data immediately or to schedule a load.
(WebCore::DocumentLoader::responseReceived): Modified to create a content filer when the response protocol
is either HTTP or HTTPS, assuming content filtering is enabled.
(WebCore::DocumentLoader::dataReceived): Modified to call DocumentLoader::setContentFilterForBlockedLoad()
as appropriate.
(WebCore::DocumentLoader::clearMainResourceLoader): Added PLATFORM(IOS)-guarded code. Also added a
FIXME comment to remove the PLATFORM(IOS)-guard once we upstream the iOS changes to ResourceRequest.h.
(WebCore::DocumentLoader::setResponseMIMEType): Added; guard by PLATFORM(IOS). Also added FIXME comment.
(WebCore::DocumentLoader::startLoadingMainResource): Added PLATFORM(IOS)-guarded code. Also added a
FIXME comment to remove the PLATFORM(IOS)-guard once we upstream the iOS changes to ResourceRequest.h.
I also substituted static NeverDestroyed<> for DEFINE_STATIC_LOCAL.
(WebCore::DocumentLoader::setContentFilterForBlockedLoad): Added; guarded by USE(CONTENT_FILTERING).
(WebCore::DocumentLoader::handleContentFilterRequest): Added; guarded by USE(CONTENT_FILTERING) and PLATFORM(IOS).
Also added a FIXME comment to remove the PLATFORM(IOS) guard inside its function body once we upstream
file ContentFilterIOS.mm and implement ContentFilter::requestUnblockAndDispatchIfSuccessful() for Mac.
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::setResponse): Added; guard by PLATFORM(IOS). Also added a FIXME comment as
this method seems to violate the encapsulation of DocumentLoader.
(WebCore::DocumentLoader::subresourceLoadersArePageCacheAcceptable): Added.
(WebCore::DocumentLoader::documentURL): Added; returns the URL of the document resulting from the DocumentLoader.
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument): Added iOS-specific code to create a PDF document.
* loader/EmptyClients.cpp:
(WebCore::EmptyChromeClient::openDateTimeChooser): Opt out of compiling this code for iOS. Also substituted
nullptr for 0.
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameProgressTracker::~FrameProgressTracker):
(WebCore::FrameLoader::FrameLoader): Initialize m_loadsSynchronously.
(WebCore::FrameLoader::initForSynthesizedDocument): Added; guarded by PLATFORM(IOS). Also added FIXME comment.
(WebCore::FrameLoader::checkCompleted): Added iOS-specific code with FIXME comment.
(WebCore::FrameLoader::willLoadMediaElementURL): Added iOS-specific code.
(WebCore::FrameLoader::stopForUserCancel): Added iOS-specific code and FIXME comment.
(WebCore::FrameLoader::commitProvisionalLoad): Added iOS-specific code and FIXME comment.
(WebCore::FrameLoader::transitionToCommitted): Opt out of ENABLE(TOUCH_EVENTS) logic when building for iOS.
(WebCore::FrameLoader::didFirstLayout): Added iOS-specific code.
(WebCore::FrameLoader::connectionProperties): Added; guarded by PLATFORM(IOS).
(WebCore::createWindow): Added iOS-specific code and FIXME comment.
* loader/FrameLoader.h:
(WebCore::FrameLoader::setLoadsSynchronously): Added.
(WebCore::FrameLoader::loadsSynchronously): Added.
* loader/FrameLoaderClient.h:
* loader/HistoryController.cpp:
(WebCore::HistoryController::restoreScrollPositionAndViewState): Opt out of scroll position logic when building for iOS.
(WebCore::HistoryController::replaceCurrentItem): Added.
* loader/HistoryController.h:
* loader/PlaceholderDocument.h: Changed access control of constructor from private to protected and removed the FINAL
keyword from the class so that we can subclass PlaceholderDocument on iOS.
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy): Added USE(QUICK_LOOK)- and USE(CONTENT_FILTERING)-guarded code.
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::shouldUsePurgeableMemory): Added; guarded by PLATFORM(IOS).
* loader/ResourceBuffer.h:
* loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest): Added USE(QUICK_LOOK)-guarded code.
* loader/ResourceLoadScheduler.cpp:
(WebCore::ResourceLoadScheduler::scheduleSubresourceLoad): Added iOS-specific code.
(WebCore::ResourceLoadScheduler::scheduleLoad): Ditto.
(WebCore::ResourceLoadScheduler::remove): Added iOS-specific code with FIXME comment.
(WebCore::ResourceLoadScheduler::crossOriginRedirectReceived): Added null-check for variable oldHost. Also added
iOS-specific code.
(WebCore::ResourceLoadScheduler::servePendingRequests): Added iOS-specific code.
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::init): Ditto.
(WebCore::ResourceLoader::willSendRequest): Ditto.
(WebCore::ResourceLoader::connectionProperties): Added; guarded by PLATFORM(IOS).
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::startLoading): Added; guarded by PLATFORM(IOS).
(WebCore::ResourceLoader::iOSOriginalRequest): Added; iOS-specific.
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadPlugin): Added iOS-specific code.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create): Ditto.
(WebCore::SubresourceLoader::startLoading): Added; guarded by PLATFORM(IOS).
(WebCore::SubresourceLoader::didFinishLoading): Added iOS-specific code.
(WebCore::SubresourceLoader::willCancel): Ditto.
(WebCore::SubresourceLoader::notifyDone): Ditto.
(WebCore::SubresourceLoader::releaseResources): Ditto.
* loader/SubresourceLoader.h:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCacheGroup): Added iOS-specific code.
(WebCore::ApplicationCacheStorage::loadManifestHostHashes): Ditto.
(WebCore::ApplicationCacheStorage::cacheGroupForURL): Ditto.
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL): Ditto.
(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin): Ditto.
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin): Ditto.
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache): Ditto.
(WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin): Ditto.
(WebCore::ApplicationCacheStorage::executeSQLCommand): Ditto.
(WebCore::ApplicationCacheStorage::verifySchemaVersion): Ditto.
(WebCore::ApplicationCacheStorage::openDatabase): Ditto.
(WebCore::ApplicationCacheStorage::executeStatement): Ditto.
(WebCore::ApplicationCacheStorage::store): Ditto.
(WebCore::ApplicationCacheStorage::storeUpdatedType): Ditto.
(WebCore::ApplicationCacheStorage::ensureOriginRecord): Ditto.
(WebCore::ApplicationCacheStorage::loadCache): Ditto.
(WebCore::ApplicationCacheStorage::remove): Ditto.
(WebCore::ApplicationCacheStorage::empty): Ditto.
(WebCore::ApplicationCacheStorage::storeCopyOfCache): Ditto.
(WebCore::ApplicationCacheStorage::manifestURLs): Ditto.
(WebCore::ApplicationCacheStorage::cacheGroupSize): Ditto.
(WebCore::ApplicationCacheStorage::deleteCacheGroup): Ditto.
(WebCore::ApplicationCacheStorage::vacuumDatabaseFile): Ditto.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImage): Added.
(WebCore::CachedImage::imageSizeForRenderer): Added iOS-specific code.
(WebCore::CachedImageManual::CachedImageManual): Added; guarded by USE(CF). Also added FIXME comment to incorporate
the functionality of this class into CachedImage and to remove the USE(CF)-guard once we make MemoryCache::addImageToCache()
platform-independent.
(WebCore::CachedImageManual::mustRevalidateDueToCacheHeaders): Added; guarded by USE(CF).
* loader/cache/CachedImage.h: Removed FINAL keyword from class so that we can define derived class CachedImageManual.
(WebCore::CachedImage::isManual): Added; guarded by USE(CF). Also added FIXME comment.
(WebCore::CachedImageManual::addFakeClient): Added; guarded by USE(CF).
(WebCore::CachedImageManual::removeFakeClient): Added; guarded by USE(CF).
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load): Added iOS-specific code.
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadDone): Added argument shouldPerformPostLoadActions, defaults to true. Modified
to conditionally call performPostLoadActions() with respect to the argument shouldPerformPostLoadActions.
(WebCore::CachedResourceLoader::preload): Added iOS-specific code.
(WebCore::CachedResourceLoader::checkForPendingPreloads): Ditto.
* loader/cache/CachedResourceLoader.h:
* loader/cache/MemoryCache.cpp:
(WebCore::memoryCache):
(WebCore::MemoryCache::add): Added iOS-specific code.
(WebCore::MemoryCache::revalidationFailed): Ditto.
(WebCore::MemoryCache::resourceForRequest): Ditto.
(WebCore::MemoryCache::addImageToCache): Added; guarded by USE(CF). Also added FIXME comment.
(WebCore::MemoryCache::removeImageFromCache): Added; guarded by USE(CF). Also added FIXME comment.
(WebCore::MemoryCache::pruneLiveResources): Modified to take argument shouldDestroyDecodedDataForAllLiveResources.
(WebCore::MemoryCache::pruneLiveResourcesToSize): Modified to take argument shouldDestroyDecodedDataForAllLiveResources,
defaults to false. When this argument is true we destroy the decoded data for all live resources from the memory cache.
Such functionality is useful when the system is running low on memory.
(WebCore::MemoryCache::evict): Added iOS-specific code.
* loader/cache/MemoryCache.h:
* loader/cf/SubresourceLoaderCF.cpp:
(WebCore::SubresourceLoader::didReceiveDataArray): Actually make this code compile. In particular, there is no
method called sendDataToResource on SubresourceLoader or in its class hierarchy.
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::DocumentLoader::schedule): This method has an empty implementation when building for iOS.
(WebCore::DocumentLoader::unschedule): Ditto.
* platform/graphics/BitmapImage.h: Exposed decodedSize() to access the decoded size of the bitmap image.
This functionality is used in MemoryCache::addImageToCache().
2013-12-19 Jer Noble <jer.noble@apple.com>
Build fix for platforms which do not define -[AVSampleBufferAudioRenderer muted].
Rubber-stamped by Eric Carlson.
To work around platforms with broken AVSampleBufferAudioRenderer headers, just
declare only those functions we need, and update isAvalable to bail out early if
those methods are not present.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2013-12-16 Darin Adler <darin@apple.com>
Improve "bad parent" and "bad child list" assertions in line boxes
https://bugs.webkit.org/show_bug.cgi?id=125656
Reviewed by Sam Weinig.
* rendering/InlineBox.cpp:
(WebCore::InlineBox::root): Use parent() function with assertions rather than
using m_parent function, which skips the assertions.
* rendering/RenderText.cpp:
(WebCore::RenderText::removeAndDestroyTextBoxes): Call invalidateParentChildLists
if we are in the optimized document-destruction code path and destroying children
without removing them from their parents.
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::invalidateParentChildLists): Added.
* rendering/RenderTextLineBoxes.h: Added invalidateParentChildLists.
2013-12-19 Dan Bernstein <mitz@apple.com>
<rdar://problem/15696824> [CFNetwork] Loading stops at server redirects
https://bugs.webkit.org/show_bug.cgi?id=125984
Reviewed by Anders Carlsson.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::willSendRequest): If the client uses async callbacks, call its
willSendRequestAsync callback instead if willSendRequest.
2013-12-19 Andreas Kling <akling@apple.com>
CascadedProperties: Deferred properties should have inline capacity.
<https://webkit.org/b/125994>
Give CascadedProperties::m_deferredProperties an inline capacity
of 8 to sidestep malloc churn (0.2% of HTML5-8266 profile.)
Reviewed by Antti Koivisto.
2013-12-19 Andreas Kling <akling@apple.com>
Two small refinements to matched properties cache.
<https://webkit.org/b/125992>
- Avoid computing the matched properties hash if we're banned from
using the cache anyway.
- When adding a new entry to the cache, use move semantics to avoid
creating a transient copy of all the data.
Reviewed by Antti Koivisto.
2013-12-19 Andreas Kling <akling@apple.com>
CascadedProperties should use a bitset to track property presence.
<https://webkit.org/b/125991>
Avoid zeroing out a bunch of memory in the CascadedProperties ctor
by using a bitset to track whether each property is present in the
cascaded set.
Reviewed by Antti Koivisto.
2013-12-19 Seokju Kwon <seokju@webkit.org>
Web Inspector: Fix description of parameters in Page.setGeolocationOverride
https://bugs.webkit.org/show_bug.cgi?id=125983
Reviewed by Joseph Pecoraro.
No new tests, no changes in behavior.
* inspector/protocol/Page.json:
2013-12-18 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Add AVSampleBufferRendererSynchronizer support.
https://bugs.webkit.org/show_bug.cgi?id=125954
Reviewed by Eric Carlson.
Instead of slaving all the various renderer's CMTimebases to one master timebase,
use AVSampleBufferRenderSynchronizer, which essentially does the same thing.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::CMTimebaseEffectiveRateChangedCallback): Added; call effectiveRateChanged().
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Set up
the synchronizer and all the observers.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC): Tear down
the same.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable): Require the
AVSampleBufferRenderSynchronizer class.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): Convert Clock -> Synchronizer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paused): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setRateDouble): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::effectiveRateChanged): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer): Ditto.
Drive-by fix; audio samples can't be subdivided, and video samples are
rarely combined, so remove the call to CMSampleBufferCallForEachSample:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID):
2013-12-18 Andreas Kling <akling@apple.com>
CSS: Fall back to cache-less cascade when encountering explicitly inherited value.
<https://webkit.org/b/125968>
When encountering an explicitly inherited value for a property that's not
"statically inherited", drop out of the matched properties cache path
immediately instead of waiting for some coincidence to trigger it later on.
Fixes 3 asserting table tests:
- fast/table/border-collapsing/cached-69296.html
- tables/mozilla/bugs/bug27038-3.html
- tables/mozilla_expected_failures/marvin/backgr_border-table-row-group.html
Reviewed by Antti Koivisto.
2013-12-18 Ryosuke Niwa <rniwa@webkit.org>
Crash in WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches
https://bugs.webkit.org/show_bug.cgi?id=125970
Reviewed by Antti Koivisto.
The bug was caused by containingBlockForAbsolutePosition returning a non-RenderBlock render object.
Fixed the bug by obtaining its containg block.
Also changed the return type of containingBlockForFixedPosition, containingBlockForAbsolutePosition,
containingBlockForObjectInFlow from RenderElement to RenderBlock as all callers of these functions
had assumed the return value to be an instance of RenderBlock.
Test: svg/text/select-text-inside-non-static-position.html
* rendering/LogicalSelectionOffsetCaches.h:
(WebCore::containingBlockForFixedPosition):
(WebCore::containingBlockForAbsolutePosition):
(WebCore::containingBlockForObjectInFlow):
(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):
2013-12-18 Andreas Kling <akling@apple.com>
Don't waste cycles on zeroing every CascadedProperties::Property.
<https://webkit.org/b/125966>
The CascadedProperties constructor already zeroes out the whole
property array. Move the memset() to setDeferred() which is the only
other place we create a Property.
Brought to you by Instruments.app. Profile your code today!
Reviewed by Antti Koivisto.
2013-12-18 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Simplify the BoxShape implementation
https://bugs.webkit.org/show_bug.cgi?id=125548
Reviewed by Andreas Kling.
Reduce BoxShape's footprint by about 2/3rds. Instead of caching the
FloatRoundedRects which represent a BoxShape's shape-padding and shape-margin
boundaries, compute them as needed.
No new tests, this is just an internal refactoring.
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::shapeMarginLogicalBoundingBox): Now just computes the bounding box rect.
(WebCore::BoxShape::shapePaddingLogicalBoundingBox): Ditto.
(WebCore::BoxShape::shapeMarginBounds): Removed the caching logic.
(WebCore::BoxShape::shapePaddingBounds): Ditto.
(WebCore::BoxShape::getExcludedIntervals): Use the computed margin bounds, instead of the cached one.
(WebCore::BoxShape::getIncludedIntervals): Ditto (padding bounds).
* rendering/shapes/BoxShape.h:
(WebCore::BoxShape::BoxShape): Simplified the constructor.
* rendering/shapes/Shape.cpp:
(WebCore::createBoxShape):
(WebCore::Shape::createShape):
2013-12-17 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Add AVSampleBufferAudioRenderer support.
https://bugs.webkit.org/show_bug.cgi?id=125905
Reviewed by Eric Carlson.
On platforms which support AVSampleBufferAudioRenderer, add support
for playback of audio CMSampleBufferRefs generated by AVStreamDataParser.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable): Require AVSampleBufferAudioRenderer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVolume): Pass through to every audio renderer.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setMuted): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer): Slave the renderer's
timebase to the master clock.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): Drive by fix; initialize
m_enabledVideoTrackID.
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): Call destroyRenderers().
(WebCore::callProcessCodedFrameForEachSample): Drive by fix; convert the bool return to an OSErr.
(WebCore::SourceBufferPrivateAVFObjC::destroyRenderers): Added; flush and destroy the audio
renderers.
(WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Call destroyRenderers().
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): Enable or disable the audio
renderer in response.
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples): Added audio
specific version.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::didBecomeReadyForMoreSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples): Ditto.
2013-12-18 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove leftover code from InspectorController after r108965
https://bugs.webkit.org/show_bug.cgi?id=125956
Reviewed by Joseph Pecoraro.
No new tests, no changes in behavior.
* inspector/InspectorController.h: PostWorkerNotificationToFrontendTask was removed in r108965.
2013-12-18 Andreas Kling <akling@apple.com>
CSS: Add a property cascading pass to style application.
<https://webkit.org/b/125213>
Add an intermediate pass to style application where we cascade all
style properties to figure out their final values before starting
to build RenderStyles.
This opens up various opportunities for further optimization.
Reviewed by Antti Koivisto.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::CascadedProperties::Property::Property):
(WebCore::StyleResolver::CascadedProperties::CascadedProperties):
(WebCore::StyleResolver::CascadedProperties::property):
(WebCore::StyleResolver::CascadedProperties::set):
(WebCore::StyleResolver::CascadedProperties::addStyleProperties):
(WebCore::StyleResolver::CascadedProperties::addMatches):
(WebCore::StyleResolver::CascadedProperties::Property::apply):
Added. CascadedProperties is something of a container class
that takes CSS property/value/linkMatchType as input and boils
them down to the final values that will actually be used.
Most properties are poked into an unfancy array where latest
is greatest (unless !important, of course.) Some properties are
queued up to be applied in parse order, more on that below.
(WebCore::StyleResolver::applyCascadedProperties):
(WebCore::StyleResolver::applyMatchedProperties):
The brains of this patch. applyMatchedProperties() now creates
a CascadedProperties and uses it to figure out the final values
and uses applyCascadedProperties() to apply them. Deferred
properties (parse order) are applied last.
We may discover during property application that we won't be
able to use a matched properties cache item. This happens if
the effective zoom or font changes. If that happens, we start
the process over, now with the cache disabled. This may need
some optimization work.
(WebCore::extractDirectionAndWritingMode):
Directional properties ending in e.g -before or -after depend on
the direction and writing mode in effect, so we must begin with
resolving those properties before doing the full cascade.
This is done by simply walking the set of matched properties and
manually applying '-webkit-writing-mode' and 'direction'.
If this starts showing up in profiles, we can easily cache some
of the information in e.g RuleData to avoid the traversal here.
(WebCore::elementTypeHasAppearanceFromUAStyle):
To determine whether a form element is styled beyond the default
UA style sheet, StyleResolver caches the border and background
values from RenderStyle after applying the UA style sheet.
Those values are then compared against after all style is applied
and if some (platform-dependent) values differ, the element is
considered "styled."
This really only affects elements with -webkit-appearance values
in the default UA style sheet, so this function determines if an
element should take the goofy slow path for this.
(WebCore::shouldApplyPropertyInParseOrder):
(WebCore::StyleResolver::CascadedProperties::setDeferred):
(WebCore::StyleResolver::CascadedProperties::applyDeferredProperties):
Some CSS properties will write to the same RenderStyle fields when
applied, so in order to maintain previous behavior, we must apply
them in the order they were parsed.
We accomplish this by keeping an ordered queue of such properties
to apply separately after all the other properties.
(WebCore::StyleResolver::CascadedProperties::setPropertyInternal):
Helper for poking values into a CascadedProperties::Property.
* css/StyleResolver.h:
(WebCore::StyleResolver::state):
Expose the StyleResolver::State so CascadedProperties can access it.
2013-12-16 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Add support for building WebKit1
https://bugs.webkit.org/show_bug.cgi?id=116377
Reviewed by Gustavo Noronha Silva.
* PlatformGTK.cmake: Add a missing source required by WebKit1 to
the WebCore build.
2013-12-18 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Simplify RectangleShape implementation
https://bugs.webkit.org/show_bug.cgi?id=125536
Reviewed by Andreas Kling.
Instead of caching an instance of a private FloatRoundedRect (ish) class for
RectangleShape's shape-margin and shape-padding bounds, we just compute
the FloatRect and radii as needed. This reduces the classes footprint a little
and it simplifies the implementation.
Removed the private RectangleShape::ShapeBounds class and made its
cornerInterceptForWidth() method a static function. Added members for
the RectangleShape constructor args, and private getters for their properties.
There are no new tests because this is just an internal refactoring.
* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::shapePaddingBounds):
(WebCore::RectangleShape::shapeMarginBounds):
(WebCore::ellipseXIntercept):
(WebCore::ellipseYIntercept):
(WebCore::RectangleShape::getExcludedIntervals):
(WebCore::RectangleShape::getIncludedIntervals):
(WebCore::cornerInterceptForWidth):
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
(WebCore::RectangleShape::buildPath):
* rendering/shapes/RectangleShape.h:
(WebCore::RectangleShape::RectangleShape):
(WebCore::RectangleShape::rx):
(WebCore::RectangleShape::ry):
(WebCore::RectangleShape::x):
(WebCore::RectangleShape::y):
(WebCore::RectangleShape::width):
(WebCore::RectangleShape::height):
* rendering/shapes/Shape.cpp:
(WebCore::createCircleShape): Renamed this internal function (it was createShapeCircle) because it was inconsistent.
(WebCore::createEllipseShape): Ditto.
(WebCore::Shape::createShape):
2013-12-18 Benjamin Poulain <benjamin@webkit.org>
Add a simple stack abstraction for x86_64
https://bugs.webkit.org/show_bug.cgi?id=125908
Reviewed by Geoffrey Garen.
StackAllocator provides an abstraction to make it hard to make mistakes and protects from obvious
issues at runtime.
The key roles of StackAllocators are:
-Provide the necessary stack alignment for function calls (only x86_64 stack for now).
-Provide ways to save registers on the stack, restore or discard them as needed.
-Crash at runtime if an operation would obviously cause a stack inconsistency.
The way simple inconsistencies are detected is through the StackReference object
returned whenever something is added on the stack.
The object keeps a reference to the offset of what has been pushed. When the StackReference
is used to recover the register, if the offset is different, there is a missmatch between
push() and pop() after the object was pushed.
* cssjit/StackAllocator.h: Added.
(WebCore::StackAllocator::StackReference::StackReference):
(WebCore::StackAllocator::StackReference::operator unsigned):
(WebCore::StackAllocator::StackAllocator):
(WebCore::StackAllocator::~StackAllocator):
(WebCore::StackAllocator::push):
(WebCore::StackAllocator::pop):
(WebCore::StackAllocator::alignStackPreFunctionCall):
(WebCore::StackAllocator::unalignStackPostFunctionCall):
Those helpers provide a simple way to have a valid stack prior to a function call.
Since StackAllocator knows the offset and the platform rules, it can adjust the stack
if needed for x86_64.
(WebCore::StackAllocator::discard): Discard a single register or the full stack.
(WebCore::StackAllocator::combine): combining stacks is the way to solve branches
where the stack is used differently in each case.
To do that, the stack is first copied to A and B. Each branch works on its own
StackAllocator copy, then the two copies are linked together to the original stack.
The copies ensure the local consistency in each branch, linking the copies ensure global
consistencies and that both branches end in the same stack state.
(WebCore::StackAllocator::offsetToStackReference): Helper function to access the stack by address
through its StackReference.
(WebCore::StackAllocator::reset):
2013-12-18 Alex Christensen <achristensen@webkit.org>
[WinCairo] Preparation for GStreamer on Windows.
https://bugs.webkit.org/show_bug.cgi?id=125946
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCore.vcxproj:
Use new GStreamer property sheets for WinCairo.
* WebCore.vcxproj/WebCoreCairo.props:
Include GStreamer directory.
2013-12-18 Oliver Hunt <oliver@apple.com>
Refactor CodeGeneratorJS - Move attribute function creation out of getOwnPropertyName guard
https://bugs.webkit.org/show_bug.cgi?id=125940
Reviewed by Simon Fraser.
This is just a huge block move of code out from behind the
ImplementationOverridesGetOwnProperty guard.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
2013-12-18 Tim Horton <timothy_horton@apple.com>
[iOS] Frequent ASSERT(hasOneRef()) in SharedBuffer::releasePurgeableBuffer
https://bugs.webkit.org/show_bug.cgi?id=125939
Reviewed by Simon Fraser.
r146082 fixed these assertions by not making a purgeable buffer if a SharedBuffer
has multiple refs, but the check was put in ResourceBuffer::createPurgeableBuffer
instead of down in SharedBuffer::createPurgeableBuffer.
This is fine for most WebKit ports, because ResourceBuffer::createPurgeableBuffer
is the only caller of SharedBuffer::createPurgeableBuffer, but causes trouble for
not-quite-yet-upstreamed iOS SharedBuffer code, which adds another caller
of SharedBuffer::createPurgeableBuffer.
Push the early-return down into SharedBuffer::createPurgeableBuffer to ensure
that all callers are protected from creating a purgeable buffer if the SharedBuffer
has previously been vended elsewhere.
No new tests, has no effect on the current Open Source tree.
* loader/ResourceBuffer.cpp:
(WebCore::ResourceBuffer::createPurgeableBuffer):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::createPurgeableBuffer):
2013-12-18 Beth Dakin <bdakin@apple.com>
Starting a momentum scroll while rubber banding can cause scrolling to jump back
when the rubberband snaps
https://bugs.webkit.org/show_bug.cgi?id=119507
-and corresponding-
<rdar://problem/14655893>
Reviewed by Simon Fraser.
This line of code was added with the very first implementation of rubber-banding.
As far as I can tell, it was always a belt-and-suspenders line of code that is a
no-op in all normal rubber-banding. In this J-shaped scrolling case, this line of
code is what causes the bug to occur because this line of code assumes that your
rubber-band is always trying to take you back to the origin.
* platform/mac/ScrollElasticityController.mm:
(WebCore::ScrollElasticityController::snapRubberBandTimerFired):
2013-12-18 Chris Fleizach <cfleizach@apple.com>
AX: make aria-hidden=false work with subtrees
https://bugs.webkit.org/show_bug.cgi?id=125592
Reviewed by Mario Sanchez Prada.
When a hidden object uses aria-hidden=false, that needs to apply to
the entire sub-tree (not just the object with aria-hidden on it as it does now).
Enabling this had the side effect of exposing non-rendered text nodes, so there's
some extra checks to ensure we don't include those elements in this cases.
Test: accessibility/aria-hidden-false-works-in-subtrees.html
* accessibility/AXObjectCache.cpp:
(WebCore::isNodeAriaVisible):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored):
2013-12-18 Oliver Hunt <oliver@apple.com>
Simplify bindings codegen for adding getOwnPropertySlot overrides
https://bugs.webkit.org/show_bug.cgi?id=125934
Reviewed by Alexey Proskuryakov.
Simple refactoring no change in behavior.
* bindings/scripts/CodeGeneratorJS.pm:
(InstanceOverridesGetOwnPropertySlot):
(PrototypeOverridesGetOwnPropertySlot):
(GenerateHeader):
(GenerateImplementation):
2013-12-18 Conrad Shultz <conrad_shultz@apple.com>
AudioSessionManagerMac.cpp: kLowPowerVideoBufferSize unused before OS X 10.9
https://bugs.webkit.org/show_bug.cgi?id=125935
Reviewed by Jer Noble.
* platform/audio/mac/AudioSessionManagerMac.cpp:
Add __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 guard.
2013-12-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Some basic DebuggerAgent cleanup
https://bugs.webkit.org/show_bug.cgi?id=125901
Reviewed by Timothy Hatcher.
* inspector/InspectorDebuggerAgent.h:
Remove virtual from not really virtual method.
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::enable):
(WebCore::InspectorDebuggerAgent::disable):
Use member variable instead of private function.
(WebCore::InspectorDebuggerAgent::setPauseOnExceptions):
Inline the three lines from the private function.
2013-12-18 Martin Hodovan <mhodovan@inf.u-szeged.hu>
REGRESSION (r155536): Broken error recovery in @media at-rule
https://bugs.webkit.org/show_bug.cgi?id=125637
Reviewed by Darin Adler.
Error recovery in @media is broken if any of its rules misses the opening '{'.
The problem is that when the parser recognises the mistake it removes only the last
WHITESPACE token instead of the whole selector and tries to recover the selector again.
it swallows everything until it finds the next opening bracket. thats why the '}' brackets
of both subrules and even the @media rule are ignored, and the whole @media will be
considered invalid. By joining the selector and its trailing whitespace the error recovery
ignores the bad selector only and keep the @media rule.
Test: fast/css/media-error-recovery.html
* css/CSSGrammar.y.in:
2013-12-18 Chris Fleizach <cfleizach@apple.com>
AX: WebKit not sending AXMenuClosed notification
https://bugs.webkit.org/show_bug.cgi?id=125783
Reviewed by Mario Sanchez Prada.
When an object with a role=menu is removed, we need to send out a notification informing that the menu has closed.
This means detecting the right kind of destruction event for an element, because we do not want to
send this notification when the entire cache is being torn down.
Test: platform/mac/accessibility/aria-menu-closed-notification.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::remove):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::document):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::detach):
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::detach):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::detach):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::detach):
* accessibility/AccessibilityScrollView.h:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
2013-12-18 Eric Carlson <eric.carlson@apple.com>
Do not create cue subtree just to delete it
https://bugs.webkit.org/show_bug.cgi?id=125904
Reviewed by Jer Noble.
No new tests, covered by existing tests.
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::setIsActive): Return early if display tree is NULL.
(WebCore::TextTrackCue::removeDisplayTree): Ditto.
2013-12-17 Oliver Hunt <oliver@apple.com>
Remove JSInlineGetOwnPropertySlot attribute as it is no longer necessary
https://bugs.webkit.org/show_bug.cgi?id=125875
Reviewed by Brady Eidson.
Tested this on dromaeo and acid3 (the original reason for this attribute)
and it no longer provided any benefit. This makes it easier to reason about
creation of getOwnPropertySlot during binding generation.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* dom/Document.idl:
* dom/Element.idl:
* dom/Node.idl:
2013-12-18 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
Fix ASSERTION FAILED in WebCore::SVGLengthContext::determineViewport
https://bugs.webkit.org/show_bug.cgi?id=120284
Reviewed by Philip Rogers.
Added handling of root <svg> elements.
Blink merge: https://chromium.googlesource.com/chromium/blink/+/a7dedf81eb7008276bb6854f0e46465e039788f8
SVGLengthContext::determineViewport() currently asserts that we're not
resolving lengths for the topmost element, but there's nothing to
prevent such calls.
The patch updates determineViewport() to handle root elements geracefully
(using their current viewport). It also changes the signature slightly
to operate directly on a FloatSize, reducing some of the boiler-plate
client code.
Tests: svg/custom/svg-length-value-handled.svg
svg/dom/svg-root-lengths.html
* svg/SVGLengthContext.cpp:
(WebCore::SVGLengthContext::convertValueFromUserUnitsToPercentage):
(WebCore::SVGLengthContext::convertValueFromPercentageToUserUnits):
(WebCore::SVGLengthContext::determineViewport):
* svg/SVGLengthContext.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::platformApplySoftware):
2013-12-18 Darin Adler <darin@apple.com>
Additional refinement in MathMLSelectElement toggle implementation
https://bugs.webkit.org/show_bug.cgi?id=125785
Reviewed by Andreas Kling.
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::defaultEventHandler): Call setDefaultHandled
so this will be handled by only one element.
(WebCore::MathMLSelectElement::willRespondToMouseClickEvents): Return true
only when action is set to toggle, since other select elements will not
respond to mouse click events.
(WebCore::MathMLSelectElement::toggle): Simplified code a bit and gave
local a clearer variable name.
2013-12-18 Rob Buis <rob.buis@samsung.com>
[CSS Shapes] Implement interpolation between keywords in basic shapes
https://bugs.webkit.org/show_bug.cgi?id=125108
Reviewed by Simon Fraser.
Allow blending for all center coordinates since top/left and bottom/right default to correct
Length values of 0% and 100%. For mixed keyword and value positions compute the length's used
for blending to percentages. This is possible since we compute the reference box bounds given the
renderer.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc): Pass additional RenderBox parameter.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend): Don't check circle/ellipse center anymore, but do check that both
shapes use the same reference box.
(WebCore::BasicShape::referenceBoxSize): Compute box dimension depending on reference box.
(WebCore::BasicShapeCenterCoordinate::lengthForBlending): Convert to percentage for Bottom/Right.
(WebCore::BasicShapeRectangle::blend):
(WebCore::DeprecatedBasicShapeCircle::blend):
(WebCore::BasicShapeCircle::blend):
(WebCore::DeprecatedBasicShapeEllipse::blend):
(WebCore::BasicShapeEllipse::blend):
(WebCore::BasicShapePolygon::blend):
(WebCore::BasicShapeInsetRectangle::blend):
(WebCore::BasicShapeInset::blend):
* rendering/style/BasicShapes.h:
(WebCore::BasicShapeCenterCoordinate::blend): Use new lengthForBlending.
2013-12-18 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com>
CSS: Null-pointer dereference with negative 'orphans' value.
https://bugs.webkit.org/show_bug.cgi?id=125924
Reviewed by Andreas Kling.
orphans and widows should be positive integer.
spec link:
http://www.w3.org/TR/CSS2/page.html#propdef-orphans
Backported from Blink: https://codereview.chromium.org/108663009
Test: fast/css/negative-orphans-crash.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
2013-12-18 Andreas Kling <akling@apple.com>
Make more computed style helpers return values by PassRef.
<https://webkit.org/b/125923>
Tighten yet another handful of CSS computed style helper functions
to return their CSSValues by PassRef where we never return null.
Reviewed by Antti Koivisto.
2013-12-18 Andreas Kling <akling@apple.com>
Use range for syntax in Frame and FrameView.
<https://webkit.org/b/125922>
Convert code in Frame and FrameView to use C++11's range for syntax.
Reviewed by Antti Koivisto.
2013-12-18 Andreas Kling <akling@apple.com>
RenderElement-ize adjustForAbsoluteZoom() and friends.
<https://webkit.org/b/125921>
Make adjustForAbsoluteZoom() take a const RenderElement& instead
of a RenderObject* so we can avoid the extra branch in style().
All call sites already had RenderElements.
Reviewed by Antti Koivisto.
2013-12-18 Chris Fleizach <cfleizach@apple.com>
AX: HTML spec change indicates @aria-required should trump @required on any element
https://bugs.webkit.org/show_bug.cgi?id=122145
Reviewed by Mario Sanchez Prada.
aria-required should win over the native "required" attribute.
Updated tests: accessibility/aria-required.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isRequired):
2013-12-18 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am:
* GNUmakefile.list.am:
2013-12-18 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com>
[soup] Fix unused parameter warnings in ResourceHandleSoup.
https://bugs.webkit.org/show_bug.cgi?id=125918
Reviewed by Martin Robinson.
Comment out the method parameters to avoid the warnings.
No tests required.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveData):
2013-12-17 Jer Noble <jer.noble@apple.com>
[MSE] Periodically monitor source buffers.
https://bugs.webkit.org/show_bug.cgi?id=125898
Reviewed by Eric Carlson.
Test: media/media-source/media-source-monitor-source-buffers.html
The MSE spec requires that the SourceBuffer Monitoring step is run
periodically during playback. No specific update interval is specified
so we will re-use the existing HTMLMediaElement playback progress
timer to signal the media source monitoring.
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::playbackProgressTimerFired):
2013-12-17 Jer Noble <jer.noble@apple.com>
[MSE] Add per-track signalling between SourceBuffer and SourceBufferPrivate.
https://bugs.webkit.org/show_bug.cgi?id=125899
Reviewed by Eric Carlson.
To accommodate the future addition of audio support to MSE in the Mac
port, add the concept of trackIDs to the communication between
SourceBuffer and SourceBufferPrivate.
The following virtual methods now take a trackID parameter:
* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::isReadyForMoreSamples):
(WebCore::SourceBufferPrivate::stopAskingForMoreSamples):
(WebCore::SourceBufferPrivate::notifyClientWhenReadyForMoreSamples):
* platform/graphics/SourceBufferPrivateClient.h:
(WebCore::SourceBufferPrivateClient::sourceBufferPrivateDidBecomeReadyForMoreSamples):
Update overridden methods in subclasses:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
* Modules/mediasource/SourceBuffer.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
* platform/mock/mediasource/MockSourceBufferPrivate.h:
Change the logic in provideMediaData to update a single TrackBuffer
rather than iterating over all of them:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
(WebCore::SourceBuffer::appendBufferTimerFired):
(WebCore::SourceBuffer::provideMediaData):
2013-12-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove InspectorAgent::hasFrontend
https://bugs.webkit.org/show_bug.cgi?id=125907
Reviewed by Timothy Hatcher.
Remove InspectorAgent::hasFrontend only used by
InspectorInstrumentation::collectingHTMLParseErrors. However,
following the single callers of that, the result is unused
in the HTMLDocumentParser and HTMLTreeBuilder. So remove
more stale / unused code.
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::createParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/parser/HTMLDocumentParser.h:
(WebCore::HTMLDocumentParser::create):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
* html/parser/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::create):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::TextDocumentParser):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchDocument):
* inspector/InspectorAgent.h:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorInstrumentation.h:
2013-12-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Some basic InjectedScriptHost cleanup
https://bugs.webkit.org/show_bug.cgi?id=125902
Reviewed by Timothy Hatcher.
Remove InjectedScriptHost::scriptDebugServer. Nobody accesses
the ScriptDebugServer through the injected script host. This
also lets us remove the reference to the DebuggerAgent.
* inspector/InjectedScriptHost.cpp:
* inspector/InjectedScriptHost.h:
(WebCore::InjectedScriptHost::init):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
2013-12-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove InspectorFrontendHost.setInjectedScriptForOrigin
https://bugs.webkit.org/show_bug.cgi?id=125906
Reviewed by Timothy Hatcher.
Remove stale code related to a since removed feature,
Inspector extensions. This allows us to remove a number
of entry points into InspectorAgent.
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::willDestroyFrontendAndBackend):
* inspector/InspectorAgent.h:
(WebCore::InspectorAgent::create):
Remove setInjectedScriptForOrigin and InjectedScript management.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
Remove the API and calling through InspectorController.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
Remove now unnecessary calls into InspectorAgent.
2013-12-17 Jer Noble <jer.noble@apple.com>
Fix TimeRanges::intersectWith
https://bugs.webkit.org/show_bug.cgi?id=118802
Test: TestWebKitAPI/Tests/WebCore/TimeRanges.cpp.
Reviewed by Eric Carlson.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* html/TimeRanges.cpp:
(TimeRanges::invert):
(TimeRanges::intersectWith):
Merge
https://chromium.googlesource.com/chromium/blink/+/f557582b6c6283a8b165514f52d01cfd98130e85
2013-12-17 Eric Carlson <eric.carlson@apple.com>
ASSERT setting pseudoID with registered DOMSubtreeModified listener
https://bugs.webkit.org/show_bug.cgi?id=125900
Reviewed by Ryosuke Niwa.
Test: fast/dom/attribute-set-before-element-in-tree.html
* dom/Node.cpp:
(WebCore::Node::dispatchSubtreeModifiedEvent): Return early if the node does not have a
parent and does not have a DOMSubtreeModified listener.
2013-12-17 Ryosuke Niwa <rniwa@webkit.org>
Remove dead code for reflected attributes from audio, video, and track elements
https://bugs.webkit.org/show_bug.cgi?id=125838
Reviewed by Eric Carlson.
Merge https://chromium.googlesource.com/chromium/blink/+/310514e2f0fd934975b841d463bad0cd62e6fd64
Where [Reflect] is used in the IDL, the getters and setters in C++ are
only for internal convenience, and these were unused.
* html/HTMLMediaElement.cpp:
* html/HTMLMediaElement.h:
* html/HTMLTrackElement.cpp:
* html/HTMLTrackElement.h:
* html/HTMLVideoElement.cpp:
* html/HTMLVideoElement.h:
2013-12-17 Simon Fraser <simon.fraser@apple.com>
Rename "canRubberBands" to "canRubberBand"
https://bugs.webkit.org/show_bug.cgi?id=125897
Reviewed by Anders Carlsson.
Rename "canRubberBands" to "canRubberBand" in various places.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::setCanRubberBandState):
* page/scrolling/ScrollingTree.h:
2013-12-17 Jer Noble <jer.noble@apple.com>
[MSE] Update duration after appending samples, per spec.
https://bugs.webkit.org/show_bug.cgi?id=125703
Reviewed by Eric Carlson.
Test: media/media-source/media-source-duration-after-append.html
After appending a sample, update the MediaSource duration if the sample's
presentation end time is greater than the existing duration.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::setDuration): Notify the MediaPlayer.
2013-12-17 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Null-deref in CMSampleBufferIsRandomAccess().
https://bugs.webkit.org/show_bug.cgi?id=125698
Reviewed by Sam Weinig.
If a given CMSampleBufferRef does not have a sample attachments array (which is unlikely, but
possible), CMSampleBufferGetAttachmentsArray() will return a null value.
Additionally, the CMSampleBuffer documentation states that "samples are assumed to be sync
samples by default", so the absence of an attachment array (or the absense of a
kCMSampleAttachmentKey_NotSync entry in any of the attachment dictionaries) indicates the
sample is sync.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::CMSampleBufferIsRandomAccess):
2013-12-17 Ryosuke Niwa <rniwa@webkit.org>
Video element's width and height content attributes should not influence intrinsic width and height
https://bugs.webkit.org/show_bug.cgi?id=125822
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/022ce34efb5b70cb964c3ca29f23c8980ffaef05
The width/height content attributes already influence specified style via
HTMLVideoElement::collectStyleForPresentationAttribute, to also influence the intrinsic size has never
been part of the spec: http://www.w3.org/TR/2013/WD-html51-20130528/embedded-content-0.html#dom-dim-width
The test case passes in Firefox Nightly and IE11 Release Preview, but fails in Opera Presto, which has
no default intrinsic size.
Test: media/video-intrinsic-width-height.html
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::calculateIntrinsicSize):
2013-12-16 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/html changes
https://bugs.webkit.org/show_bug.cgi?id=125765
Reviewed by Darin Adler.
* WebCore.xcodeproj/project.pbxproj:
* html/Autocapitalize.cpp: Added.
* html/Autocapitalize.h: Added. Also, added FIXME comment to forward declare AtomicString once we upstream
more of the iOS port.
* html/BaseChooserOnlyDateAndTimeInputType.cpp:
(WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent): Opt out of code when building for iOS.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::isKeyboardFocusable): Added; iOS-specific.
* html/BaseDateAndTimeInputType.h:
* html/FileInputType.cpp:
(WebCore::FileInputType::FileInputType): Added iOS-specific code.
(WebCore::FileInputType::~FileInputType): Opt out of code when building for iOS. Also, added FIXME comment.
(WebCore::FileInputType::requestIcon): Ditto.
(WebCore::FileInputType::filesChosen): Added; iOS-specific.
(WebCore::FileInputType::displayString): Added; iOS-specific.
(WebCore::FileInputType::receiveDroppedFiles): Guarded code with ENABLE(DRAG_SUPPORT).
* html/FileInputType.h:
* html/FormController.cpp:
(WebCore::FormController::formElementsCharacterCount): Added.
* html/FormController.h:
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::updateWidget): Opt out of code when building for iOS.
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::computePath): Changed argument datatype from RenderElement* to RenderObject*.
Also, added FIXME comment to fix this up once we upstream iOS's DOMUIKitExtensions.{h, mm}.
(WebCore::HTMLAreaElement::computeRect): Ditto.
* html/HTMLAreaElement.h:
* html/HTMLAttributeNames.in: Added attributes ongesture{start, change, end}, autocorrect, autocapitalize,
data-youtube-id, onwebkit{currentplaybacktargetiswirelesschanged, playbacktargetavailabilitychanged}, webkit-playsinline,
x-webkit-airplay, and x-webkit-wirelessvideoplaybackdisabled.
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::scrollLeft): Added iOS-specific code.
(WebCore::HTMLBodyElement::scrollTop): Ditto.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::HTMLCanvasElement): Added iOS-specific code and FIXME comment.
(WebCore::HTMLCanvasElement::createImageBuffer): Added iOS-specific code.
* html/HTMLCanvasElement.h: Added iOS-specific code and FIXME comment.
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument): Added argument isSynthesized (default to false), which is
passed through to Document::Document(), to create a synthesized document.
* html/HTMLDocument.h:
(WebCore::HTMLDocument::createSynthesizedDocument): Added.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::collectStyleForPresentationAttribute): Added iOS-specific code.
(WebCore::populateEventNameForAttributeLocalNameMap): Ditto.
(WebCore::HTMLElement::willRespondToMouseMoveEvents): Added; iOS-specific.
(WebCore::HTMLElement::willRespondToMouseWheelEvents): Added; iOS-specific.
(WebCore::HTMLElement::willRespondToMouseClickEvents): Added; iOS-specific.
* html/HTMLElement.h:
* html/HTMLFormControlElement.cpp: Added FIXME comment to share more code with class HTMLFormElement.
(WebCore::HTMLFormControlElement::autocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormControlElement::setAutocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormControlElement::autocapitalizeType): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormControlElement::autocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormControlElement::setAutocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp: Added FIXME comment to share more code with class HTMLFormControlElement.
(WebCore::HTMLFormElement::submitImplicitly): Modified to code to allow implicit submission of multi-input
forms only if Settings::allowMultiElementImplicitSubmission() returns true. Such behavior is expected by older
iOS apps. Also, changed datatype of variable submissionTriggerCount from int to unsigned because it represents
a non-negative value.
(WebCore::HTMLFormElement::autocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormElement::setAutocorrect): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormElement::autocapitalizeType): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormElement::autocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
(WebCore::HTMLFormElement::setAutocapitalize): Added; guarded by PLATFORM(IOS_AUTOCORRECT_AND_AUTOCAPITALIZE).
* html/HTMLFormElement.h:
* html/HTMLFormElement.idl: Added iOS-specific attributes: autocorrect and autocapitalize.
* html/HTMLIFrameElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::displayString): Added; guarded by PLATFORM(IOS).
(WebCore::HTMLInputElement::dateType): Added; guarded by PLATFORM(IOS).
* html/HTMLInputElement.h:
* html/HTMLInputElement.idl: Added iOS-specific attributes: autocorrect and autocapitalize.
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::willRespondToMouseClickEvents): Added iOS-specific code.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Added iOS-specific code and FIXME comment.
(WebCore::HTMLMediaElement::~HTMLMediaElement): Added iOS-specific code.
(WebCore::HTMLMediaElement::parseMediaPlayerAttribute): Added; iOS-specific.
(WebCore::HTMLMediaElement::parseAttribute): Added iOS-specific code.
(WebCore::HTMLMediaElement::insertedInto): Ditto.
(WebCore::HTMLMediaElement::load): Ditto.
(WebCore::HTMLMediaElement::prepareForLoad): Ditto.
(WebCore::HTMLMediaElement::autoplay): Ditto.
(WebCore::HTMLMediaElement::play): Ditto.
(WebCore::HTMLMediaElement::playInternal): Ditto.
(WebCore::HTMLMediaElement::pauseInternal): Ditto.
(WebCore::HTMLMediaElement::setVolumne): Opt out of code when building for iOS.
(WebCore::HTMLMediaElement::setMuted): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Added iOS-specific code.
(WebCore::HTMLMediaElement::updateVolume): Ditto.
(WebCore::HTMLMediaElement::updatePlayState): Ditto.
(WebCore::HTMLMediaElement::userCancelledLoad): Added iOS-specific code and FIXME comment.
(WebCore::HTMLMediaElement::resume): Added iOS-specific comment. See <rdar://problem/9751303>.
(WebCore::HTMLMediaElement::deliverNotification): Added iOS-specific code.
(WebCore::HTMLMediaElement::getPluginProxyParams): Added iOS-specific code. Also, changed src() to getNonEmptyURLAttribute()
in the non-iOS code as their doesn't exist a method called src in this class or its superclasses.
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLMediaElement::mediaPlayerPlaybackTargetAvailabilityChanged): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLMediaElement::addEventListener): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLMediaElement::removeEventListener): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLMediaElement::enterFullscreen): Added iOS-specific code.
(WebCore::HTMLMediaElement::exitFullscreen): Ditto.
(WebCore::HTMLMediaElement::createMediaPlayer): Added ENABLE(IOS_AIRPLAY)-guarded code.
(WebCore::HTMLMediaElement::userRequestsMediaLoading): Added; guarded by PLATFORM(IOS).
(WebCore::HTMLMediaElement::shouldUseVideoPluginProxy): Use dot operator instead of dereference operator (->)
when accessing Document::settings().
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Added ENABLE(PLUGIN_PROXY_FOR_VIDEO)-guarded code.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::userGestureRequiredToShowPlaybackTargetPicker): Added; guarded by ENABLE(IOS_AIRPLAY).
* html/HTMLMediaElement.idl: Added ENABLE_IOS_AIRPLAY-guarded attributes and functions:webkitCurrentPlaybackTargetIsWireless,
onwebkit{currentplaybacktargetiswirelesschanged, playbacktargetavailabilitychanged}, and webkitShowPlaybackTargetPicker().
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process): Added iOS-specific code.
* html/HTMLObjectElement.cpp:
(WebCore::shouldNotPerformURLAdjustment): Added; iOS-specific.
(WebCore::HTMLObjectElement::parametersForPlugin): Modified to call shouldNotPerformURLAdjustment() when
building for iOS.
* html/HTMLPlugInElement.h:
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::createRenderer): Added iOS-specific code.
(WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree): Added; iOS-specific.
* html/HTMLPlugInImageElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::usesMenuList): Added iOS-specific code.
(WebCore::HTMLSelectElement::createRenderer): Ditto.
(WebCore::HTMLSelectElement::childShouldCreateRenderer): Ditto.
(WebCore::HTMLSelectElement::willRespondToMouseClickEvents): Added; iOS-specific.
(WebCore::HTMLSelectElement::updateListBoxSelection): Added iOS-specific code.
(WebCore::HTMLSelectElement::scrollToSelection): Ditto.
(WebCore::HTMLSelectElement::setOptionsChangedOnRenderer): Ditto.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Opt out of code when building for iOS.
(WebCore::HTMLSelectElement::defaultEventHandler): Added iOS-specific code.
* html/HTMLSelectElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::willRespondToMouseClickEvents): Added; iOS-specific.
* html/HTMLTextAreaElement.h:
* html/HTMLTextAreaElement.idl: Added iOS-specific attributes: autocorrect and autocapitalize.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::select): Added iOS-specific code and FIXME comment.
(WebCore::HTMLTextFormControlElement::setSelectionRange): Opt out of code when building for iOS.
(WebCore::HTMLTextFormControlElement::hidePlaceholder): Added; guarded by PLATFORM(IOS).
(WebCore::HTMLTextFormControlElement::showPlaceholderIfNecessary): Added; guarded by PLATFORM(IOS).
* html/HTMLTextFormControlElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::createRenderer): Fix up call to HTMLMediaElement::createRenderer().
(WebCore::HTMLVideoElement::parseAttribute): Added iOS-specific code.
(WebCore::HTMLVideoElement::supportsFullscreen): Ditto.
(WebCore::HTMLVideoElement::webkitWirelessVideoPlaybackDisabled): Added; guarded by ENABLE(IOS_AIRPLAY).
(WebCore::HTMLVideoElement::setWebkitWirelessVideoPlaybackDisabled): Added; guarded by ENABLE(IOS_AIRPLAY).
* html/HTMLVideoElement.h:
* html/HTMLVideoElement.idl: Added ENABLE_IOS_AIRPLAY-guarded attribute: webkitWirelessVideoPlaybackDisabled.
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure): Added iOS-specific code.
(WebCore::ImageDocument::scale): Ditto.
(WebCore::ImageDocument::resizeImageToFit): Ditto.
(WebCore::ImageDocument::imageClicked): Ditto.
(WebCore::ImageDocument::imageFitsInWindow): Ditto.
(WebCore::ImageDocument::windowSizeChanged): Ditto.
* html/InputType.cpp:
(WebCore::InputType::dateType): Added; guarded by PLATFORM(IOS).
(WebCore::InputType::isKeyboardFocusable): Added iOS-specific code.
(WebCore::InputType::displayString): Added; guarded by PLATFORM(IOS).
* html/InputType.h:
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure): Added iOS-specific code.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleTouchEvent): Ditto.
(WebCore::RangeInputType::disabledAttributeChanged): Added; iOS-specific.
* html/RangeInputType.h:
* html/SearchInputType.cpp:
(WebCore::SearchInputType::addSearchResult): Opt out of code when building for iOS.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::isKeyboardFocusable): Added iOS-specific code.
* html/TextFieldInputType.h:
* html/WebAutocapitalize.h: Added.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createImageData): Added iOS-specific code.
(WebCore::CanvasRenderingContext2D::getImageData): Ditto.
* html/parser/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSite::isTelephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
* html/parser/HTMLParserScheduler.h:
(WebCore::HTMLParserScheduler::checkForYieldBeforeToken): Added iOS-specific code.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::insertPhoneNumberLink): Added; guarded by PLATFORM(IOS).
(WebCore::HTMLTreeBuilder::linkifyPhoneNumbers): Added; guarded by PLATFORM(IOS).
(WebCore::disallowTelephoneNumberParsing): Added; guarded by PLATFORM(IOS).
(WebCore::shouldParseTelephoneNumbersInNode): Added; guarded by PLATFORM(IOS).
(WebCore::HTMLTreeBuilder::processCharacterBufferForInBody): Added iOS-specific code.
* html/parser/HTMLTreeBuilder.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Guarded member initialization of m_controls with ENABLE(VIDEO_TRACK). Also added UNUSED_PARAM(event) when building with
VIDEO_TRACK disabled.
(WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler): Added UNUSED_PARAM(event) when
building with VIDEO_TRACK disabled.
* html/shadow/MediaControls.h:
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::SliderThumbElement): Added iOS-specific code.
(WebCore::SliderThumbElement::dragFrom): Opt out of code when building for iOS.
(WebCore::SliderThumbElement::willDetachRenderers): Added iOS-specific code.
(WebCore::SliderThumbElement::exclusiveTouchIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::setExclusiveTouchIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::clearExclusiveTouchIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::findTouchWithIdentifier): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::handleTouchStart): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::handleTouchMove): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::handleTouchEndAndCancel): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::didAttachRenderers): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::handleTouchEvent): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::shouldAcceptTouchEvents): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::registerForTouchEvents): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::unregisterForTouchEvents): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
(WebCore::SliderThumbElement::disabledAttributeChanged): Added; guarded by ENABLE(TOUCH_EVENTS) && PLATFORM(IOS).
* html/shadow/SliderThumbElement.h:
* html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Opt out of code when building for iOS.
* html/shadow/TextControlInnerElements.h:
* page/Settings.in: Added setting allowMultiElementImplicitSubmission to enable/disable multi-input implicit form
submission (disabled by default). Also added FIXME comment to rename this setting to allowMultiElementImplicitFormSubmission
once we upstream the iOS changes to WebView.mm.
2013-12-17 Brady Eidson <beidson@apple.com>
DatabaseProcess: Pipe through object store IDs and transaction mode for "openTransaction"
https://bugs.webkit.org/show_bug.cgi?id=125872
Reviewed by Alexey Proskuryakov.
Make these enums into enum classes.
Add const maximums for each enum class that might be serialized to allow for conversion later:
* Modules/indexeddb/IndexedDB.h:
Add cross-thread copying for these new enum classes.
* platform/CrossThreadCopier.cpp:
(WebCore::::copy):
* platform/CrossThreadCopier.h:
Adopt the new enum classes throughout the rest of WebCore:
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::stringToDirection):
(WebCore::IDBCursor::directionToString):
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBCursorBackend.cpp:
(WebCore::IDBCursorBackend::deleteFunction):
* Modules/indexeddb/IDBCursorBackend.h:
(WebCore::IDBCursorBackend::value):
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::createObjectStore):
(WebCore::IDBDatabaseBackend::deleteObjectStore):
(WebCore::IDBDatabaseBackend::createIndex):
(WebCore::IDBDatabaseBackend::deleteIndex):
(WebCore::IDBDatabaseBackend::get):
(WebCore::IDBDatabaseBackend::put):
(WebCore::IDBDatabaseBackend::setIndexKeys):
(WebCore::IDBDatabaseBackend::openCursor):
(WebCore::IDBDatabaseBackend::deleteRange):
(WebCore::IDBDatabaseBackend::clearObjectStore):
(WebCore::IDBDatabaseBackend::transactionStarted):
(WebCore::IDBDatabaseBackend::transactionFinished):
(WebCore::IDBDatabaseBackend::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackend::transactionFinishedAndCompleteFired):
(WebCore::IDBDatabaseBackend::createTransaction):
(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):
* Modules/indexeddb/IDBDatabaseBackend.h:
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::open):
(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::openCursor):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::IDBRequest):
(WebCore::IDBRequest::setResultCursor):
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::stringToMode):
(WebCore::IDBTransaction::modeToString):
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::PutOperation::perform):
* Modules/indexeddb/IDBTransactionCoordinator.cpp:
(WebCore::IDBTransactionCoordinator::processStartedTransactions):
(WebCore::IDBTransactionCoordinator::canRunTransaction):
* Modules/indexeddb/IDBVersionChangeEvent.h:
(WebCore::IDBVersionChangeEvent::create):
(WebCore::IDBVersionChangeEvent::newVersion):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::objectStoreCursorOptions):
(WebCore::indexCursorOptions):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::get):
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::count):
(WebCore::IDBServerConnectionLevelDB::deleteRange):
(WebCore::IDBServerConnectionLevelDB::cursorPrefetchIteration):
* WebCore.exp.in:
2013-12-17 Gavin Barraclough <barraclough@apple.com>
Remove PageVisibilityStateUnloaded
https://bugs.webkit.org/show_bug.cgi?id=125869
Reviewed by Anders Carlsson.
This is not currently supported by WebKit, remove this enum value.
We can always add this back later if/when we add support for this state.
* page/PageVisibilityState.cpp:
(WebCore::pageVisibilityStateString):
* page/PageVisibilityState.h:
- removed PageVisibilityStateUnloaded
2013-12-12 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Build the plugin process against GTK+ 2
https://bugs.webkit.org/show_bug.cgi?id=116374
Reviewed by Gustavo Noronha Silva.
* PlatformGTK.cmake: Split off the GTK+-dependent sources into
libWebCorePlatformGTK and compile libWebCorePlatformGTK2 when
WebKit2 is enabled.
2013-12-17 Alex Christensen <achristensen@webkit.org>
Compile fix for WebGL on Windows without GRAPHICS_SURFACE.
https://bugs.webkit.org/show_bug.cgi?id=125867
Reviewed by Martin Robinson.
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::createOffScreenSurface):
Protect reference to EGLOffScreenSurface with USE(GRAPHICS_SURFACE).
2013-12-17 Radu Stavila <stavila@adobe.com>
[CSS Regions] Positioned elements in regions get clipped if they fall outside the region
https://bugs.webkit.org/show_bug.cgi?id=117120
Reviewed by Mihnea Ovidenie.
Fixed the computing of the box decorations clip rect when having statically positioned
elements inside positioned elements. The existing algorithm computed the rect in a loop
running up the containing block chain and only checked for positioned elements before
starting the loop. If a positioned elements was found in the middle of a loop (as would
be the case with a positioned element parenting a non-positioned element), it was not
correctly handled.
Also changed it so the clip is only performed in the fragmentation direction as that was
the original purpose of this method.
Tests: fast/regions/absolute-in-relative-overflow.html
fast/regions/static-in-relative-overflow.html
fast/regions/sticky-border-overflow.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
2013-12-17 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r160717.
http://trac.webkit.org/changeset/160717
https://bugs.webkit.org/show_bug.cgi?id=125863
New tests are failing, and possibly broke an existing test
(Requested by ap on #webkit).
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::collectFixedPositionedLayers):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintFixedLayersInNamedFlows):
(WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
2013-12-17 Ryosuke Niwa <rniwa@webkit.org>
Invalid dir attributes should resolve to ltr
https://bugs.webkit.org/show_bug.cgi?id=125830
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/2d592d1c998bec9438e421e1ce1ee6caba05a884
The dir attribute should resolve to direction: ltr by default when the attribute value is
"not in a defined state": http://www.w3.org/TR/2013/WD-html51-20130528/dom.html#the-directionality
Test: fast/dom/HTMLElement/set-and-clear-dir-attribute.html
* html/HTMLElement.cpp:
(WebCore::isLTROrRTLIgnoringCase): Extracted from HTMLElement::directionality.
(WebCore::HTMLElement::collectStyleForPresentationAttribute):
(WebCore::HTMLElement::directionality):
2013-12-17 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Incorrect repaint of fixed element with transformed parent
https://bugs.webkit.org/show_bug.cgi?id=125756
Reviewed by Darin Adler.
When collecting the layers for fixed positioned elements with named flow
as a containing block, use layers collection at named flow layer level
instead of relying on the positioned elements collection.
Modified also FlowThreadController::collectFixedPositionedLayers function
to always return the layers sorted by z-index, as this operation was always
done at the call sites.
Tests: fast/regions/repaint/fixed-in-named-flow-cb-changed.html
fast/regions/repaint/fixed-in-named-flow-cb-changed2.html
* rendering/FlowThreadController.cpp:
(WebCore::compareZIndex):
(WebCore::FlowThreadController::collectFixedPositionedLayers):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintFixedLayersInNamedFlows):
(WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
2013-12-17 Bem Jones-Bey <bjonesbe@adobe.com>
REGRESSION(r159166?): fast/block/float/float-with-fractional-height-vertical-lr.html, fast/block/float/float-with-fractional-height.html are failing
https://bugs.webkit.org/show_bug.cgi?id=124506
Reviewed by Dirk Schulze.
Floor the endpoints of the floating object interval to keep the old
behavior until a better fix can be created.
No new tests, fixes regression in existing tests.
* rendering/FloatingObjects.cpp:
(WebCore::FloatingObjects::intervalForFloatingObject):
2013-12-17 Alex Christensen <achristensen@webkit.org>
[Win] Visual Studio workaround for compiling WebGL.
https://bugs.webkit.org/show_bug.cgi?id=125808
Reviewed by Darin Adler.
* platform/graphics/GraphicsContext3D.cpp:
Don't inline outermost function to prevent Visual Studio crash.
2013-12-17 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Expose accessibility objects for <dl>, <dt> and <dd>
https://bugs.webkit.org/show_bug.cgi?id=125857
Reviewed by Chris Fleizach.
Map description lists to the newly introduced ATK roles
ATK_ROLE_DESCRIPTION_LIST, ATK_ROLE_DESCRIPTION_TERM and
ATK_ROLE_DESCRIPTION_VALUE, introduced in ATK 2.11.4.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole): Do the right mapping.
(webkitAccessibleGetRole): Update call to atkRole, now that it
receives an AccessibilityObject* as parameter.
2013-12-17 Frédéric Wang <fred.wang@free.fr>
Ensure inferred mrows for msqrt, mstyle, merror, mphantom and math.
https://bugs.webkit.org/show_bug.cgi?id=124841
Reviewed by Darin Adler.
Tests: mathml/presentation/inferred-mrow-baseline.html
mathml/presentation/inferred-mrow-stretchy.html
* css/mathml.css: make merror, mphantom and mstyle behave like an mrow.
(mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts, mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle):
(math, mrow, mfenced, msqrt, mroot, merror, mphantom, mstyle):
* mathml/MathMLInlineContainerElement.cpp: ditto
(WebCore::MathMLInlineContainerElement::createRenderer):
* mathml/mathtags.in: ditto
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::paint): fix failure in mathml/presentation/phantom.html now that phantom can stretch operators.
2013-12-17 Simon Pena <simon.pena@samsung.com>
[NIX] Enable full debug builds by having ar creating thin archives
https://bugs.webkit.org/show_bug.cgi?id=125850
Reviewed by Csaba Osztrogonác.
By default, CMake uses ar to generate libWebCore.a with cr parameters
(do not warn if the library has to be created, and replace existing
files in the archive). That results in a very large file, and ar fails
with sizes over 4GB.
By using thin archives (the T option of ar), the generated
libWebCore.a is much smaller, and can be successfully archived. As a
result, we can generate a full debug build. This patch is based on Xan
López's webkit.org/b/110580.
* PlatformNix.cmake: Instruct cmake to invoke ar with T option.
2013-12-17 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update GObject DOM symbols file after r160336.
* bindings/gobject/webkitdom.symbols: Add new methods exposed for
VideoPlaybackQuality.
2013-12-17 Mihai Maerean <mmaerean@adobe.com>
Fix hit testing for divs with a hierarchy of css transformed and non-transformed elements
https://bugs.webkit.org/show_bug.cgi?id=124777
Reviewed by Darin Adler.
After bug #124647, the hit test will still behave incorrectly for transformed divs with non
transformed siblings that are all inside a transformed element (tested by the
hover-rotated-with-children-negative-z.html layout test).
The fix is to not take zOffset into account during hit-testing when child layers are in the
same 3D rendering context. Only when preserve3d is true, should hit-testing compute the
zOffset of the layers with transformations and, when two layers overlap, to return the layer
with the highest zOffset.
The patch includes the work of a.renevier from https://codereview.chromium.org/79943002/
Tests: transforms/3d/hit-testing/hover-rotated-with-children-negative-z.html
transforms/3d/hit-testing/negative-zoffset-hit-test.html
transforms/3d/hit-testing/overlapping-layers-hit-test.html
* rendering/RenderLayer.cpp:
(WebCore::computeZOffset):
(WebCore::RenderLayer::hitTestLayer):
2013-12-17 Carlos Garcia Campos <cgarcia@igalia.com>
Remove a few more guards mistakenly added in r160367
Reviewed by Martin Robinson.
r160367 was too liberal in hiding APIs from the GObject DOM bindings.
* Modules/battery/NavigatorBattery.idl: Expose NavigatorBattery.
2013-12-17 Benjamin Poulain <benjamin@webkit.org>
Add a simple register allocator to WebCore for x86_64
https://bugs.webkit.org/show_bug.cgi?id=125771
Reviewed by Geoffrey Garen.
Add a brain dead register allocator to simplify the use of registers
when writting code generators.
RegisterAllocator has two purposes:
-make it easy to name registers properly.
-make it hard to reuse a register accidentally.
A helper class LocalRegister is also defined to provide an easy
way to work with registers within a C++ scope. For example:
LocalRegister elementPointer(allocator);
assembler.load(address, elementPointer);
RegisterAllocator makes no attempt at optimizing register allocations, but it reduces
implicit dependencies by returning used register at the end of the queue, making it less
likely they will be reused before their last instruction is executed.
The current implementation only support unix x86_64, it only uses caller saved registers.
* WebCore.xcodeproj/project.pbxproj:
* cssjit/RegisterAllocator.h: Added.
(WebCore::RegisterAllocator::allocateRegister): Provides any available register.
To restrict runtime exploitation of compiler bugs, the method crashes in release
if the register pool is empty.
(WebCore::RegisterAllocator::reserveRegister): Reserve a particular register.
(WebCore::RegisterAllocator::returnRegister): Return a previously allocated or reserved register.
(WebCore::RegisterAllocator::allocatedRegisters):
(WebCore::LocalRegister::LocalRegister):
(WebCore::LocalRegister::~LocalRegister):
(WebCore::LocalRegister::operator JSC::MacroAssembler::RegisterID):
(WebCore::RegisterAllocator::RegisterAllocator):
2013-12-16 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Checking RTCPeerConnection signalingState before setting local/remoteDescription
https://bugs.webkit.org/show_bug.cgi?id=125655
Reviewed by Eric Carlson.
Before setting a session description RTCPeerConnection must check if it is in valid state for that SDP type.
New tests: fast/mediastream/RTCPeerConnection-have-local-answer.html
fast/mediastream/RTCPeerConnection-have-local-offer.html
fast/mediastream/RTCPeerConnection-have-local-pranswer.html
fast/mediastream/RTCPeerConnection-have-remote-offer.html
fast/mediastream/RTCPeerConnection-have-remote-pranswer.html
fast/mediastream/RTCPeerConnection-stable.html
Modified: fast/mediastream/RTCPeerConnection-remoteDescription.html
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::checkStateForLocalDescription): Checks if the current state of RTCPeerConnection is
valid for the local SDP that is being set.
(WebCore::RTCPeerConnection::checkStateForRemoteDescription): Checks if the current state of RTCPeerConnection
is valid for the remote SDP that is being set.
(WebCore::RTCPeerConnection::setLocalDescription): Now calls checkStateForLocalDescription prior to set the
local SDP.
(WebCore::RTCPeerConnection::setRemoteDescription): Now Calls checkStateForRemoteDescription prior to set the
remote SDP.
* Modules/mediastream/RTCPeerConnection.h:
* platform/mock/RTCNotifiersMock.cpp: Adding new class to notify RTCPeerConnection about a signaling state
change: SignalingStateNotifier.
(WebCore::SignalingStateNotifier::SignalingStateNotifier):
(WebCore::SignalingStateNotifier::fire):
* platform/mock/RTCNotifiersMock.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::signalingStateFromSDP): Defines the new state that RTCPeerConnection
should be, according the SDP that is being set.
(WebCore::RTCPeerConnectionHandlerMock::setLocalDescription): Calls signalingStateFromSDP, in order to get the
new signaling state and notify RTCPeerConnection object.
(WebCore::RTCPeerConnectionHandlerMock::setRemoteDescription): Ditto.
* platform/mock/RTCPeerConnectionHandlerMock.h:
2013-12-16 Tim Horton <timothy_horton@apple.com>
Revert a mysterious and inexplicable part of http://trac.webkit.org/changeset/160685
* platform/KeyedCoding.h:
(WebCore::KeyedEncoder::encodeEnum):
(WebCore::KeyedEncoder::encodeObject):
(WebCore::KeyedEncoder::encodeConditionalObject):
(WebCore::KeyedEncoder::encodeObjects):
2013-12-16 Anders Carlsson <andersca@apple.com>
Remove EnumClass.h from WTF
https://bugs.webkit.org/show_bug.cgi?id=125820
Reviewed by Darin Adler.
Replace uses of ENUM_CLASS with real enum class declarations.
* Modules/webdatabase/DatabaseBasicTypes.h:
* Modules/webdatabase/DatabaseError.h:
* Modules/webdatabase/SQLTransactionState.h:
* bindings/js/JSSubtleCryptoCustom.cpp:
* bindings/js/SerializedScriptValue.cpp:
* crypto/CryptoAlgorithmIdentifier.h:
* crypto/CryptoAlgorithmParameters.h:
* crypto/CryptoKey.h:
* crypto/CryptoKeyData.h:
* crypto/CryptoKeyType.h:
* crypto/keys/CryptoKeyDataRSAComponents.h:
* inspector/InspectorTimelineAgent.h:
2013-12-16 Tim Horton <timothy_horton@apple.com>
WebKit2 View Gestures: Pinching beyond the extremes doesn't animate back to the min/max
https://bugs.webkit.org/show_bug.cgi?id=125750
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export a few things so WebKit2 can use them.
2013-12-16 Joseph Pecoraro <pecoraro@apple.com>
Fix some whitespace issues in inspector code
https://bugs.webkit.org/show_bug.cgi?id=125814
Reviewed by Darin Adler.
* inspector/protocol/DOM.json:
* inspector/protocol/DOMStorage.json:
* inspector/protocol/Timeline.json:
2013-12-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Use JSC::SourceID and JSC::BreakpointID instead of WebCore dups
https://bugs.webkit.org/show_bug.cgi?id=125818
Reviewed by Mark Lam.
Remove the WebCore typedefs of JSC types. Prefer JSC namespace
prefixed types throughout WebCore's Inspector code.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/BreakpointID.h: Removed.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::dispatchDidParseSource):
* bindings/js/ScriptDebugServer.h:
* bindings/js/SourceID.h: Removed.
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::parseLocation):
(WebCore::InspectorDebuggerAgent::setBreakpoint):
(WebCore::InspectorDebuggerAgent::continueToLocation):
(WebCore::InspectorDebuggerAgent::resolveBreakpoint):
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::getScriptSource):
(WebCore::InspectorDebuggerAgent::didParseSource):
(WebCore::InspectorDebuggerAgent::didPause):
(WebCore::InspectorDebuggerAgent::clear):
* inspector/InspectorDebuggerAgent.h:
* inspector/ScriptDebugListener.h:
2013-12-16 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/dom changes
https://bugs.webkit.org/show_bug.cgi?id=125646
Reviewed by David Kilzer.
* WebCore.exp.in: Added symbol __ZN7WebCore8Settings17setLayoutIntervalEi and removed symbol
__ZN7WebCore24cLayoutScheduleThresholdE.
* dom/ActiveDOMObject.h: Add suspension reason DocumentWillBePaused.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Opt-out of ENABLE(VIDEO) logic when
building for iOS.
* dom/DeviceMotionClient.h: Made class non-copyable.
(WebCore::DeviceMotionClient::DeviceMotionClient): Added;
* dom/DeviceMotionController.cpp: Added FIXME comment to reconcile iOS and OpenSource differences.
(WebCore::DeviceMotionController::suspendUpdates): Added; guarded by PLATFORM(IOS).
(WebCore::DeviceMotionController::resumeUpdates): Added; guarded by PLATFORM(IOS).
* dom/DeviceMotionController.h: Added FIXME comment to reconcile iOS and OpenSource differences.
* dom/DeviceOrientationClient.h: Made class non-copyable.
(WebCore::DeviceOrientationClient::DeviceOrientationClient): Added.
* dom/DeviceOrientationController.cpp: Added FIXME comment to reconcile iOS and OpenSource differences.
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::suspendUpdates): Added; guarded by PLATFORM(IOS).
(WebCore::DeviceOrientationController::resumeUpdates): Added; guarded by PLATFORM(IOS).
* dom/DeviceOrientationController.h: Added FIXME comment to reconcile iOS and OpenSource differences.
* dom/DeviceOrientationData.cpp:
(WebCore::DeviceOrientationData::create): Added; iOS-specific. Added FIXME comment.
(WebCore::DeviceOrientationData::DeviceOrientationData): Added iOS-specific code.
(WebCore::DeviceOrientationData::compassHeading): Added; guarded by PLATFORM(IOS).
(WebCore::DeviceOrientationData::compassAccuracy): Added; guarded by PLATFORM(IOS).
(WebCore::DeviceOrientationData::canProvideCompassHeading): Added; guarded by PLATFORM(IOS).
(WebCore::DeviceOrientationData::canProvideCompassAccuracy): Added; guarded by PLATFORM(IOS).
* dom/DeviceOrientationData.h:
* dom/DeviceOrientationEvent.idl: Added iOS-specific code.
* dom/Document.cpp: Moved constant cLayoutScheduleThreshold to Settings.cpp and renamed it
layoutScheduleThreshold towards allowing a port to configure the layout interval.
(WebCore::Document::Document): Added optional argument isSynthesized, defaults false.
(WebCore::Document::~Document): Added iOS-specific code to destroy the device motion
and device orientation controllers.
(WebCore::Document::didBecomeCurrentDocumentInFrame): Added iOS-specific code with FIXME comment.
(WebCore::Document::prepareForDestruction): Added iOS-specific touch event code.
(WebCore::Document::removeAllEventListeners): Ditto.
(WebCore::Document::platformSuspendOrStopActiveDOMObjects): Added; compiles to an empty function on
non-iOS port.
(WebCore::Document::suspendActiveDOMObjects): Modified to call platformSuspendOrStopActiveDOMObjects().
(WebCore::Document::resumeActiveDOMObjects): Ditto.
(WebCore::Document::stopActiveDOMObjects): Added.
(WebCore::Document::implicitClose): Modified to query Settings::layoutInterval().
(WebCore::Document::minimumLayoutDelay): Ditto.
(WebCore::Document::processViewport): Added iOS-specific code.
(WebCore::Document::updateViewportArguments): Ditto.
(WebCore::setParserFeature): Added; guarded by PLATFORM(IOS).
(WebCore::Document::processFormatDetection): Added; guarded by PLATFORM(IOS).
(WebCore::Document::processWebAppOrientations): Added; guarded by PLATFORM(IOS).
(WebCore::Document::isTelephoneNumberParsingEnabled): Added; guarded by PLATFORM(IOS).
(WebCore::Document::setIsTelephoneNumberParsingAllowed): Added; guarded by PLATFORM(IOS).
(WebCore::Document::isTelephoneNumberParsingAllowed): Added; guarded by PLATFORM(IOS).
(WebCore::Document::initSecurityContext): Added iOS-specific code.
(WebCore::Document::suspendScheduledTasks): Added; guarded by PLATFORM(IOS).
(WebCore::Document::deviceMotionController): Added; iOS-specific.
(WebCore::Document::deviceOrientationController): Added; iOS-specific.
(WebCore::Document::adjustFloatQuadsForScrollAndAbsoluteZoomAndFrameScale): Added iOS-specific code.
(WebCore::Document::adjustFloatRectForScrollAndAbsoluteZoomAndFrameScale): Added iOS-specific code.
* dom/Document.h: Register gesture events gesture{change, end, start}; guarded by ENABLE(IOS_GESTURE_EVENTS).
(WebCore::Document::isSynthesized): Added.
(WebCore::Document::platformSuspendOrStopActiveDOMObjects): Added.
* dom/Document.idl:
* dom/DocumentMarker.h: Added iOS-specific changes. We should look to reconcile the differences between
iOS and OpenSource. See <rdar://problem/11306422>.
(WebCore::DocumentMarker::AllMarkers::AllMarkers):
(WebCore::DocumentMarker::DocumentMarker): Added; iOS-specific.
(WebCore::DocumentMarker::alternatives): Added; iOS-specific.
(WebCore::DocumentMarker::setAlternative): Added; iOS-specific.
(WebCore::DocumentMarker::metadata): Added; iOS-specific.
(WebCore::DocumentMarker::setMetadata): Added; iOS-specific.
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::addMarker):
(WebCore::DocumentMarkerController::addDictationPhraseWithAlternativesMarker):
(WebCore::DocumentMarkerController::addDictationResultMarker):
(WebCore::DocumentMarkerController::shiftMarkers):
* dom/DocumentMarkerController.h:
* dom/Element.cpp:
(WebCore::Element::focus): Add iOS-specific workaround for <rdar://problem/6699741>.
* dom/Element.h: Register gesture events gesture{change, end, start}; guarded by ENABLE(IOS_GESTURE_EVENTS).
* dom/EventContext.cpp: Opt-out of ENABLE(TOUCH_EVENTS)-guarded code when building the iOS port.
* dom/EventContext.h: Ditto.
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedNodeResolver::EventRelatedNodeResolver): Ditto.
(WebCore::EventDispatcher::dispatchEvent): Ditto.
(WebCore::EventPath::EventPath): Ditto.
* dom/EventNames.h: Added events webkit{currentplaybacktargetiswirelesschanged, playbacktargetavailabilitychanged}
and gesture{change, end, start}.
* dom/EventNames.in: Added event names GestureEvent and WebKitPlaybackTargetAvailabilityEvent conditioned on
the macro defines ENABLE_IOS_GESTURE_EVENTS and ENABLE_IOS_AIRPLAY.
* dom/MouseRelatedEvent.cpp:
(WebCore::contentsScrollOffset): Added iOS-specific code.
(WebCore::MouseRelatedEvent::MouseRelatedEvent): Ditto.
* dom/Node.cpp:
(WebCore::Node::willBeDeletedFrom): Ditto.
(WebCore::Node::isDescendantOf): Fixed style issue in function prototype; moved '*' to the left side.
(WebCore::Node::isDescendantOrShadowDescendantOf): Added.
(WebCore::tryAddEventListener): Added iOS-specific code; also added FIXME comment.
(WebCore::tryRemoveEventListener): Ditto.
(WebCore::Node::dispatchEvent): Opt-out of ENABLE(TOUCH_EVENTS)-guarded code when building the iOS port.
(WebCore::Node::defaultEventHandler): Added iOS-specific code.
(WebCore::Node::willRespondToMouseMoveEvents): Added iOS-specific code; also added FIXME comment.
(WebCore::Node::willRespondToMouseClickEvents): Added iOS-specific code; also added FIXME comment.
(WebCore::Node::willRespondToMouseWheelEvents): Added.
* dom/Node.h:
* dom/Position.h:
(WebCore::operator<): Added.
(WebCore::operator>): Added.
(WebCore::operator>=): Added.
(WebCore::operator<=): Added.
* dom/Range.cpp:
(WebCore::Range::create): Added iOS-specific code; also added FIXME comment.
(WebCore::intervalsSufficientlyOverlap): Added; guarded by PLATFORM(IOS).
(WebCore::printRects): Added; guarded by PLATFORM(IOS).
(WebCore::adjustLineHeightOfSelectionRects): Added; guarded by PLATFORM(IOS).
(WebCore::coalesceSelectionRects): Added; guarded by PLATFORM(IOS).
(WebCore::Range::collectSelectionRects): Added; guarded by PLATFORM(IOS).
* dom/Range.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects): Added iOS-specific code.
(WebCore::ScriptExecutionContext::dispatchErrorEvent): Ditto.
* dom/TreeScope.cpp:
(WebCore::nodeFromPoint): Ditto.
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes): Ditto.
(WebCore::setViewportFeature): Added iOS-specific code.
(WebCore::finalizeViewportArguments): Added; iOS-specific.
* dom/ViewportArguments.h:
* dom/make_names.pl: Added support to find the path to gcc with respect to the environment
variable SDKROOT.
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::suspend):
* page/Settings.cpp:
(WebCore::Settings::Settings): Initialize setting m_layoutInterval to layoutScheduleThreshold.
(WebCore::Settings::setLayoutInterval): Added.
* page/Settings.h:
(WebCore::Settings::layoutInterval): Added.
2013-12-16 Simon Fraser <simon.fraser@apple.com>
Attempt to fix the Windows build after r160672.
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::PlatformCALayerWin):
* platform/graphics/ca/win/PlatformCALayerWin.h:
2013-12-16 Simon Fraser <simon.fraser@apple.com>
Apply overhang shadow and linen to UI-side layers
https://bugs.webkit.org/show_bug.cgi?id=125807
Reviewed by Tim Horton.
With UI-side compositing, we need to apply the overhang shadow and linen
background to layers in the UI process. Achieve this by setting a "custom
appearance" flag on layers that need a shadow or linen background, and
migrating this flag to the UI process. Static functions on ScrollbarThemeMac
are exposed to do the actual setting.
* WebCore.exp.in: Export ScrollbarThemeMac and GraphicsLayerCA functions.
* WebCore.xcodeproj/project.pbxproj: ScrollbarThemeMac.h and ScrollbarThemeComposite.h
need to be Private.
* platform/graphics/GraphicsLayer.cpp: Initialize m_customAppearance.
(WebCore::GraphicsLayer::GraphicsLayer):
* platform/graphics/GraphicsLayer.h: Getter/setter for CustomAppearance.
(WebCore::GraphicsLayer::setCustomAppearance):
(WebCore::GraphicsLayer::customAppearance):
* platform/graphics/ca/GraphicsLayerCA.cpp: Update CustomAppearanceChanged as
we do other properties.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateCustomAppearance):
(WebCore::GraphicsLayerCA::setCustomAppearance):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm: When we have a custom
appearance, use ScrollbarThemeMac functions to update the layer. Ensure
that if the bounds change, we update the shadow (whose path depends on the bounds).
(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::clone):
(PlatformCALayerMac::setBounds):
(PlatformCALayerMac::requiresCustomAppearanceUpdateOnBoundsChange):
(PlatformCALayerMac::updateCustomAppearance):
* platform/mac/ScrollbarThemeMac.h: Export some static functions.
* platform/mac/ScrollbarThemeMac.mm: Change code to use static functions.
(WebCore::ScrollbarThemeMac::setUpOverhangAreaBackground):
(WebCore::ScrollbarThemeMac::removeOverhangAreaBackground):
(WebCore::ScrollbarThemeMac::setUpOverhangAreaShadow):
(WebCore::ScrollbarThemeMac::removeOverhangAreaShadow):
(WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents):
(WebCore::ScrollbarThemeMac::setUpContentShadowLayer):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateRootLayerPosition): No need to call
setUpContentShadowLayer() now when size changes; PlatformCALayer takes
care of that.
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers): Now set
custom appearance via GraphicsLayer.
2013-12-16 Brent Fulgham <bfulgham@apple.com>
[Win] Remove dead code after converstion to VS2013
https://bugs.webkit.org/show_bug.cgi?id=125795
Reviewed by Darin Adler.
* WebCorePrefix.h: Remove VS2012 include kludge.
* loader/FTPDirectoryParser.cpp: Remove gmtime workaround code.
* page/DOMWindow.cpp: Remove older pointer-based open implementation.
* page/DOMWindow.h: Ditto
* platform/text/TextEncodingRegistry.cpp:
(WebCore::TextEncodingNameHash::equal): Remove optimization bug workaround
* testing/Internals.cpp:
(WebCore::Internals::openDummyInspectorFrontend): Remove compiler workaround
2013-12-16 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/history changes
https://bugs.webkit.org/show_bug.cgi?id=125769
Reviewed by Darin Adler.
* history/BackForwardClient.h:
* history/BackForwardList.cpp:
(WebCore::BackForwardList::current): Added; guard by PLATFORM(IOS). Also added FIXME comment.
(WebCore::BackForwardList::setCurrent): Added; guard by PLATFORM(IOS). Also added FIXME comment.
(WebCore::BackForwardList::clearAllPageCaches): Added; guarded by PLATFORM(IOS).
* history/BackForwardList.h:
* history/CachedFrame.cpp:
(WebCore::CachedFrameBase::restore): Added iOS-specific code.
(WebCore::CachedFrame::CachedFrame): Ditto.
* history/CachedPage.cpp:
(WebCore::CachedPage::restore): Ditto.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem): Ditto.
* history/HistoryItem.h:
(WebCore::HistoryItem::scale): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::scaleIsInitial): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::setScale): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::viewportArguments): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::setViewportArguments): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::bookmarkID): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::setBookmarkID): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::sharedLinkUniqueIdentifier): Added; guarded by PLATFORM(IOS).
(WebCore::HistoryItem::setSharedLinkUniqueIdentifier): Added; guarded by PLATFORM(IOS).
* history/PageCache.cpp:
(WebCore::logCanCacheFrameDecision): Added iOS-specific code.
(WebCore::logCanCachePageDecision): Ditto.
(WebCore::PageCache::canCachePageContainingThisFrame): Ditto.
(WebCore::PageCache::canCache): Ditto.
(WebCore::PageCache::pruneToCapacityNow): Added.
* history/PageCache.h:
2013-12-16 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/svg changes
https://bugs.webkit.org/show_bug.cgi?id=125784
Reviewed by Darin Adler.
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::willRespondToMouseClickEvents): Added.
* svg/SVGAElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::parseAttribute): Added attribute listeners for touch{cancel, end, move, start},
and gesture{change, end, start}.
2013-12-13 Jeffrey Pfau <jpfau@apple.com>
[Mac] Cache partitioning asserts when associated NSURLRequest is nil
https://bugs.webkit.org/show_bug.cgi?id=125716
Reviewed by Darin Adler.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::doUpdateResourceRequest):
2013-12-16 Brady Eidson <beidson@apple.com>
DatabaseProcess: Fix a few bugs with opening an IDB connection
https://bugs.webkit.org/show_bug.cgi?id=125798
Reviewed by Alexey Proskuryakov.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::processPendingCalls): As the comment says, we should only
early return when there *are* pending delete calls. The logic here was backwards,
preventing the backend from ever getting to processPendingOpenCalls().
2013-12-16 Alex Christensen <achristensen@webkit.org>
Fixed Win64 build on VS2013.
https://bugs.webkit.org/show_bug.cgi?id=125753
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCoreTestSupport.vcxproj:
Added correct PlatformToolset for 64-bit builds.
2013-12-16 Simon Fraser <simon.fraser@apple.com>
Package up some data about scrollability into a struct for use in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=125792
Reviewed by Beth Dakin.
Both scrolling state nodes and scrolling nodes share a set of parameters
relating to scrollability and rubberbanding, so package them into a struct
for re-use. Send the struct wholesale to the scrolling thread.
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollableAreaParameters::ScrollableAreaParameters): New struct.
(WebCore::ScrollableAreaParameters::operator==):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): Reordering.
(WebCore::ScrollingStateScrollingNode::setScrollOrigin): Moved.
(WebCore::ScrollingStateScrollingNode::setScrollableAreaParameters): Set the parameters all at once.
(WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition):
* page/scrolling/ScrollingStateScrollingNode.h: Getters access the struct. Reorder member variables.
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::scrollOrigin):
(WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
(WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
(WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
(WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
(WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm: Removed setScrollParametersForNode().
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated): Set the params in this
function. Reordering.
2013-12-16 Sam Weinig <sam@webkit.org>
CTTE: Convert more of SVG to use references
https://bugs.webkit.org/show_bug.cgi?id=125762
Reviewed by Darin Adler.
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::imageChanged):
* 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/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
(WebCore::RenderSVGResourceContainer::markClientForInvalidation):
(WebCore::RenderSVGResourceContainer::removeClient):
* rendering/svg/RenderSVGResourceContainer.h:
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::removeClientFromCache):
(WebCore::RenderSVGResourceFilter::postApplyResource):
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
* 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:
(WebCore::RenderSVGResourceSolidColor::removeClientFromCache):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::invalidateResourcesOfChildren):
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::removeClientFromCache):
* rendering/svg/SVGResources.h:
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::clientLayoutChanged):
(WebCore::SVGResourcesCache::clientStyleChanged):
(WebCore::SVGResourcesCache::clientWasAddedToTree):
(WebCore::SVGResourcesCache::clientWillBeRemovedFromTree):
(WebCore::SVGResourcesCache::clientDestroyed):
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::applyResultsToTarget):
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged):
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::notifyFinished):
* svg/SVGFELightElement.cpp:
(WebCore::SVGFELightElement::childrenChanged):
* svg/SVGFilterPrimitiveStandardAttributes.cpp:
(WebCore::invalidateFilterPrimitiveParent):
* svg/SVGFilterPrimitiveStandardAttributes.h:
(WebCore::SVGFilterPrimitiveStandardAttributes::invalidate):
(WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged):
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::svgAttributeChanged):
* svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::svgAttributeChanged):
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged):
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::invalidateMPathDependencies):
(WebCore::SVGPathElement::pathSegListChanged):
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::svgAttributeChanged):
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):
(WebCore::SVGSVGElement::setupInitialView):
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::svgAttributeChanged):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::svgAttributeChanged):
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::svgAttributeChanged):
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::svgAttributeChanged):
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::svgAttributeChanged):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged):
2013-12-16 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Add support for the computing the included intervals for a BoxShape
https://bugs.webkit.org/show_bug.cgi?id=124605
Reviewed by Andreas Kling.
Setting shape-inside to content-box now works.
Changed FloatRoundedRect::xInterceptsAtY() to include the bottom edge of
the rectangle and to check for the special cases where any or all of the
corner radii are empty.
Test: fast/shapes/shape-inside/shape-inside-content-box.html
* platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::xInterceptsAtY):
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::getIncludedIntervals): Replaced the stub implementation with logic that's similar to getExcludedIntervals().
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::computedShape): Removed a meaningless assert.
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::isEnabledFor):
2013-12-16 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Expose accessibility objects for more WAI-ARIA roles
https://bugs.webkit.org/show_bug.cgi?id=125596
Reviewed by Chris Fleizach.
Exposed accessibility objects with the proper AtkRoles, some of
them to be provided by the next stable release of ATK.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
2013-12-16 Eric Carlson <eric.carlson@apple.com>
Fix QuickTime plug-in replacement scripting bugs
https://bugs.webkit.org/show_bug.cgi?id=125717
Reviewed by Sam Weinig.
No new tests, existing test updated.
* Modules/plugins/QuickTimePluginReplacement.js:
(Replacement): Change '' to "" to avoid "Empty character constant" warning when creating
Derived Sources.
(Replacement.prototype.createVideoElement): Handle qtsrc attribute. Remember base url.
(Replacement.prototype.setURL): Resolve urls relative to base.
2013-12-15 Darin Adler <darin@apple.com>
Catch callers who forget to use initializeStyle
https://bugs.webkit.org/show_bug.cgi?id=125763
Reviewed by Andreas Kling.
A recent fix was because a caller used setStyle first rather than using
initializeStyle. This patch adds an assertion to catch cases where we do
that so we see the mistake right away instead of indirectly later.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::initializeStyle): Simplified an assertion.
(WebCore::RenderElement::setStyle): Added an assertion that m_hasInitializedStyle
is true, with an exception for RenderView, which needs to be created before we
have the correct style computed for it (at least for now). Also broke out an
assertion that was using &&, since we would prefer to know which clause failed,
making separate assertions more useful than a combined assertion.
2013-12-16 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Expose accessibility objects with ATK_ROLE_CHECK_MENU_ITEM
https://bugs.webkit.org/show_bug.cgi?id=125594
Reviewed by Chris Fleizach.
Exposed accessibility objects with checkmenuitem role with the
proper AtkRole, to be provided by the next stable release of ATK.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
2013-12-16 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Expose accessibility objects with ATK_ROLE_ARTICLE
https://bugs.webkit.org/show_bug.cgi?id=125587
Reviewed by Chris Fleizach.
Exposed accessibility objects with article role with the proper
AtkRole, to be provided by the next stable release of ATK.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
2013-11-27 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Fix the preferred logical widths code to work with spanning grid items
https://bugs.webkit.org/show_bug.cgi?id=123994
Reviewed by Andreas Kling.
From Blink r159189 by <jchaffraix@chromium.org>
There was no definition in the specs for the intrinsic / preferred
logical widths on the grid element. The following was proposed to
the WG and later accepted:
- The sum of the grid tracks' UsedBreadth is the minimum logical width
- The sum of the grid tracks' MaxBreadth is the maximum logical width
http://lists.w3.org/Archives/Public/www-style/2013Oct/0054.html
for more information.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
* rendering/RenderGrid.h:
2013-12-15 Frédéric Wang <fred.wang@free.fr>
Add support for maction@toggle
https://bugs.webkit.org/show_bug.cgi?id=120059
Reviewed by Chris Fleizach.
Test: mathml/presentation/maction-toggle.html
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::getSelectedChildAndIndex):
(WebCore::MathMLSelectElement::updateSelectedChild):
(WebCore::MathMLSelectElement::defaultEventHandler):
(WebCore::MathMLSelectElement::willRespondToMouseClickEvents):
(WebCore::MathMLSelectElement::toggle):
* mathml/MathMLSelectElement.h:
2013-12-15 Darin Adler <darin@apple.com>
More nullptr in RenderElement
https://bugs.webkit.org/show_bug.cgi?id=125764
Reviewed by Andreas Kling.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::uncachedFirstLineStyle):
(WebCore::RenderElement::updateShapeImage):
(WebCore::RenderElement::destroyLeftoverChildren):
(WebCore::RenderElement::findNextLayer):
Use nullptr in a few more places.
2013-12-15 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION: 2x regression on Dromaeo DOM query tests
https://bugs.webkit.org/show_bug.cgi?id=125377
Reviewed by Filip Pizlo.
The bug was caused by JSC not JIT'ing property accesses on document because of its having
custom named getter (named properties). This resulted in resolution of methods on document
such as getElementById to happen inside the interpreter.
Fixed the bug by using the new JSC type info flag which tells JSC to JIT property access on
document, and then notifying JSC whenever a new named property appeared on document.
Tests: js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-2.html
js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-3.html
js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-4.html
js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-2.html
js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-3.html
js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-4.html
* bindings/js/JSDOMBinding.cpp:
(WebCore::addImpureProperty): Wraps VM::addImpureProperty.
* bindings/js/JSDOMBinding.h:
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader): Added the support for NewImpurePropertyFiresWatchpoints.
* bindings/scripts/IDLAttributes.txt: Ditto.
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::addDocumentNamedItem): Calls addImpureProperty.
* html/HTMLDocument.idl: Added NewImpurePropertyFiresWatchpoints.
2013-12-15 Brent Fulgham <bfulgham@webkit.org>
[WIn] Unreviewed build fix after r160599
* rendering/RenderMediaControls.cpp:
(WebCore::determineState): RenderObject::theme now returns
a reference.
2013-12-15 Brent Fulgham <bfulgham@webkit.org>
[Win] Unreviewed build fix
The build system continues to attempt to build QTMovieWin, even
though it is excluded from the build solution. I'm actually
removing the project files to prevent this.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj: Removed.
* WebCore.vcxproj/QTMovieWin/QTMovieWin.vcxproj.filters: Removed.
2013-12-15 Rob Buis <rob.buis@samsung.com>
[CSS Shapes] shape-outside animation does not handle 'auto' well
https://bugs.webkit.org/show_bug.cgi?id=125700
Reviewed by Dirk Schulze.
Handle the case where we are blending/animating with a null ShapeValue due to 'auto'.
Adapted LayoutTests/fast/shapes/shape-outside-floats/shape-outside-animation.html for testing this.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
2013-12-15 Andy Estes <aestes@apple.com>
[iOS] Upstream changes to FeatureDefines.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=125742
Reviewed by Dan Bernstein.
* Configurations/FeatureDefines.xcconfig:
2013-12-14 Darin Adler <darin@apple.com>
Crash in CSSImageGeneratorValue and RenderScrollbar
https://bugs.webkit.org/show_bug.cgi?id=125702
Reviewed by Alexey Proskuryakov.
This crash had two causes at two different levels. The crash fixes both.
At the RenderScrollbar level, we were setting up a new renderer, a
RenderScrollbarPart, and never calling initializeStyle. This meant that
we did not do proper style setup, which meant we did not end up calling
CSSImageGeneratorValue::addClient and so had a removeClient that was not
properly balanced by an addClient. This is the primary bug.
At the CSSImageGeneratorValue level, the addClient and removeClient
functions were not properly handling possibly-mismatched calls. It was
easy to fix the functions to work even if the calls are not perfectly
matched up, which makes the consequences of a missed addClient call
much less dire, no longer messing up reference counting. Fixing this
mitigates the risk if we made this same mistake elsewhere, although I
could not find any other places with some quick searches.
Test: fast/css/scrollbar-image-crash.html
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::addClient): Only call ref if this will
add the first client.
(WebCore::CSSImageGeneratorValue::removeClient): Only call deref if this
removes the last client. Also added an assertion that can fire if we call
removeClient without first calling addClient, which is illegal. However,
the function handles that case without over-deref'ing itself.
* rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::updateScrollbarPart): Simplify the logic for
needRenderer a bit. Use initializeStyle rather than setStyle when first
creating the RenderScrollbarPart. Also use add and take properly so we
don't do extra hash lookups the old code did with get/set and get/remove.
2013-12-14 Sam Weinig <sam@webkit.org>
CTTE: SVGResourcesCache::cachedResourcesForRenderObject() should take a reference
https://bugs.webkit.org/show_bug.cgi?id=125743
Reviewed by Dan Bernstein.
* rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::selfWillPaint):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::imageChanged):
* rendering/svg/RenderSVGResource.cpp:
(WebCore::requestPaintingResource):
(WebCore::removeFromCacheAndInvalidateDependencies):
(WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintReplaced):
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::shouldGenerateMarkerPositions):
(WebCore::RenderSVGShape::markerRect):
(WebCore::RenderSVGShape::drawMarkers):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::invalidateResourcesOfChildren):
(WebCore::SVGRenderSupport::layoutChildren):
(WebCore::SVGRenderSupport::intersectRepaintRectWithResources):
(WebCore::SVGRenderSupport::filtersForceContainerLayout):
(WebCore::SVGRenderSupport::pointInClippingArea):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::cachedResourcesForRenderObject):
(WebCore::SVGResourcesCache::clientLayoutChanged):
(WebCore::SVGResourcesCache::clientDestroyed):
* rendering/svg/SVGResourcesCache.h:
* rendering/svg/SVGResourcesCycleSolver.cpp:
(WebCore::SVGResourcesCycleSolver::resourceContainsCycles):
2013-12-14 Dan Bernstein <mitz@apple.com>
Clean up the project after r160487
* WebCore.xcodeproj/project.pbxproj: Moved reference to Security.framework from the top
level of the project to the Frameworks group, and made it SDK-relative.
2013-12-14 Andreas Kling <akling@apple.com>
Page::theme() should return a reference.
<https://webkit.org/b/125737>
There's always a RenderTheme, and not a single call site was checking
for null pointers anyway. Updated RenderObject::theme() as well.
Reviewed by Antti Koivisto.
2013-12-13 Sam Weinig <sam@webkit.org>
CTTE: Convert Element and RenderObject iterator usage to use range-based for loops
https://bugs.webkit.org/show_bug.cgi?id=125731
Reviewed by Andreas Kling.
Perform straight forward conversions. A few stragglers that do odd things remain.
2013-12-14 Joseph Pecoraro <pecoraro@apple.com>
Small string improvements to JSInjectedScriptHost::type and other bindings
https://bugs.webkit.org/show_bug.cgi?id=125722
Reviewed by Timothy Hatcher.
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::type):
Use SmallStrings, jsNontrivialString and ASCIILiteral.
* bindings/js/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::type):
Use jsNontrivialString.
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::stringValue):
Use jsNontrivialString and ASCIILiteral.
2013-12-14 Andreas Kling <akling@apple.com>
Move a couple of inlines from RenderObject to RenderElement.
<https://webkit.org/b/125734>
Take most of the inline functions on RenderObject that call style()
and move them over to RenderElement where style() is branchless.
Reviewed by Antti Koivisto.
2013-12-14 Andreas Kling <akling@apple.com>
RenderElement::rendererForRootBackground() should return a reference.
<https://webkit.org/b/125735>
This function always finds a renderer to return.
Reviewed by Antti Koivisto.
2013-12-14 Mark Rowe <mrowe@apple.com>
Build fix after r160557.
* Configurations/WebCore.xcconfig: Find JavaScriptCore.framework below SDKROOT so that we'll pick
up the built version in production builds rather than the system version.
2013-12-14 Brendan Long <b.long@cablelabs.com>
[GStreamer] Use GMutexLocker instead of g_mutex_lock
https://bugs.webkit.org/show_bug.cgi?id=125588
Reviewed by Philippe Normand.
No new tests because this is just code simplification.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkTimeoutCallback):
(webkitVideoSinkRender):
(unlockBufferMutex):
(webkitVideoSinkUnlockStop):
(webkitVideoSinkStart):
2013-12-13 Andreas Kling <akling@apple.com>
Move RenderObject::repaintAfterLayoutIfNeeded() to RenderElement.
<https://webkit.org/b/125712>
This function is only ever called on RenderElements, so move it there.
Removes some RenderObject::style() branchiness.
Reviewed by Darin Adler.
2013-12-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move Inspector and Debugger protocol domains into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=125707
Reviewed by Timothy Hatcher.
- Switch TypeBuilder::Page::SearchMatch to TypeBuilder::GenericTypes::SearchMatch
which comes from InspectorJSTypeBuilders.
- Remove domains that moved to JavaScriptCore.
No new tests, this only moves code around. There are no functional changes.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
Add new files.
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::buildObjectForSearchMatch):
(WebCore::ContentSearchUtils::searchInTextByLines):
* inspector/ContentSearchUtils.h:
* inspector/InspectorAgent.cpp:
* inspector/InspectorAgent.h:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::searchInResource):
* inspector/InspectorPageAgent.h:
* inspector/protocol/Page.json:
Update includes and type builder type names.
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::breakpointActionTypeForString):
(WebCore::InspectorDebuggerAgent::searchInContent):
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
Use the new getEnum function names.
2013-12-13 Brent Fulgham <bfulgham@apple.com>
[Win] Remove pre-VS2013 support code.
https://bugs.webkit.org/show_bug.cgi?id=125693
Reviewed by Darin Adler.
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::setQuota): Use C99 format arguments
* loader/FTPDirectoryParser.cpp:
(WebCore::parseOneFTPLine): Ditto
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::pruneUnretainedIcons): Ditto
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::setMaximumSize): Ditto
2013-12-13 Brent Fulgham <bfulgham@apple.com>
SVG bindings are improperly being generated with "fastGetAttribute"
https://bugs.webkit.org/show_bug.cgi?id=125670
Reviewed by Darin Adler.
A bug was introduced in r152845 that improperly called the
IsSVGAnimatedType using the $attribute hash, rather than the
expected $attribute->signature->type.
* bindings/scripts/CodeGenerator.pm:
(GetterExpression): Clean up attribute type confusion.
2013-12-13 Brent Fulgham <bfulgham@apple.com>
[Win] Unreviewed build fix after r160548
* WebCore.vcxproj/WebCore.vcxproj: Exclude MediaPlayerPrivateQuickTimeVisualContext from
Windows build.
* platform/graphics/MediaPlayer.cpp: Don't use QuickTime as the PlatformMediaEngine.
2013-12-13 Joseph Pecoraro <pecoraro@apple.com>
[GTK] Remove Warnings in building about duplicate INSPECTOR variables
https://bugs.webkit.org/show_bug.cgi?id=125710
Reviewed by Tim Horton.
* GNUmakefile.am:
2013-12-13 Roger Fong <roger_fong@apple.com>
[WebGL] Check for global variable precision mismatch between vertex and fragment shaders.
https://bugs.webkit.org/show_bug.cgi?id=125546.
<rdar://problem/15203364>
Reviewed by Brent Fulgham.
Covered Khronos conformances tests:
webgl/1.0.2/glsl/misc/shader-with-global-variable-precision-mismatch.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::linkProgram):
* platform/graphics/GraphicsContext3D.h: Rename areProgramSymbolsValid since it currently only serves one purpose.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::precisionsMatch):
2013-12-13 Brent Fulgham <bfulgham@apple.com>
[Win] Unreviewed build fix after r160548
* WebCore.vcxproj/WebCoreGenerated.vcxproj: Specify that we are
using the vs120_xp build target for Makefile-based projects.
2013-12-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add Inspector Code Generation to JavaScriptCore for Runtime Domain
https://bugs.webkit.org/show_bug.cgi?id=125595
Reviewed by Timothy Hatcher.
- CodeGeneration changed to output Frontend and Backend dispatchers
in namespace Inspector. So update all the agent's appropriately.
- Update Derived Sources code generation to use the Scripts that had
moved to JavaScriptCore. Some ports just use JSC/inspector/scripts
directly, but others have to use the Scripts exported by JSC
in JavaScriptCore's PrivateHeaders.
- Add ForwardingHeaders for the files generated in JavaScriptCore.
- Update the names of Inspector DerivedSources files, since they
were renamed to InspectorWeb*.
No new tests, this only moves code around. There are no functional changes.
* CMakeLists.txt:
* DerivedSources.make:
* ForwardingHeaders/inspector/InspectorJSBackendDispatchers.h: Added.
* ForwardingHeaders/inspector/InspectorJSFrontendDispatchers.h: Added.
* ForwardingHeaders/inspector/InspectorJSTypeBuilders.h: Added.
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.vcxproj/build-generated-files.sh:
* WebCore.xcodeproj/project.pbxproj:
Remove files, rename files, update code generation.
* make-generated-sources.sh:
Update this standalone developer script to fill in the new InspectorScripts variable.
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.cpp:
* inspector/InspectorAgent.cpp:
* inspector/InspectorAgent.h:
* inspector/InspectorApplicationCacheAgent.cpp:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.cpp:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.cpp:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDatabaseResource.cpp:
* inspector/InspectorDatabaseResource.h:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorFrontendClientLocal.cpp:
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.cpp:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorTimelineAgent.cpp:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
* inspector/InspectorWorkerAgent.h:
* inspector/PageRuntimeAgent.h:
* inspector/ScriptCallFrame.cpp:
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerRuntimeAgent.h:
Updates header names and class namespace changes.
2013-12-13 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding RTCPeerConnectionErrorCallback
https://bugs.webkit.org/show_bug.cgi?id=125574
Reviewed by Eric Carlson.
According to the spec there should be a RTCPeerConnectionErrorCallback function type for createOffer/Answer,
setLocal/RemoteDescription and updateIce function calls. This callback must handle a DOMError object.
Existing tests were updated.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
(WebCore::RTCPeerConnection::setLocalDescription):
(WebCore::RTCPeerConnection::setRemoteDescription):
(WebCore::RTCPeerConnection::addIceCandidate):
* Modules/mediastream/RTCErrorCallback.h: Removed.
* Modules/mediastream/RTCErrorCallback.idl: Removed.
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCPeerConnectionErrorCallback.h: Added.
* Modules/mediastream/RTCPeerConnectionErrorCallback.idl: Added.
* Modules/mediastream/RTCSessionDescriptionRequestImpl.cpp:
(WebCore::RTCSessionDescriptionRequestImpl::create):
(WebCore::RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl):
(WebCore::RTCSessionDescriptionRequestImpl::requestFailed):
* Modules/mediastream/RTCSessionDescriptionRequestImpl.h:
* Modules/mediastream/RTCVoidRequestImpl.cpp:
(WebCore::RTCVoidRequestImpl::create):
(WebCore::RTCVoidRequestImpl::RTCVoidRequestImpl):
(WebCore::RTCVoidRequestImpl::requestFailed):
* Modules/mediastream/RTCVoidRequestImpl.h:
* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(WebCore::RTCPeerConnectionHandler::incompatibleConstraintsErrorName):
(WebCore::RTCPeerConnectionHandler::invalidSessionDescriptionErrorName):
(WebCore::RTCPeerConnectionHandler::incompatibleSessionDescriptionErrorName):
(WebCore::RTCPeerConnectionHandler::internalErrorName):
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mock/RTCNotifiersMock.cpp:
(WebCore::SessionRequestNotifier::SessionRequestNotifier):
(WebCore::SessionRequestNotifier::fire):
(WebCore::VoidRequestNotifier::VoidRequestNotifier):
(WebCore::VoidRequestNotifier::fire):
* platform/mock/RTCNotifiersMock.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createOffer):
(WebCore::RTCPeerConnectionHandlerMock::createAnswer):
2013-12-13 Brent Fulgham <bfulgham@apple.com>
[Win] Switch WebKit solution to Visual Studio 2013
https://bugs.webkit.org/show_bug.cgi?id=125192
Reviewed by Anders Carlsson.
* WebCore.vcxproj/WebCore.vcxproj: Update for VS2013
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto
* WebCore.vcxproj/WebCoreTestSupport.vcxproj: Ditto
2013-12-13 Alexey Proskuryakov <ap@apple.com>
WebCrypto Key.usages should be ordered alphabetically
https://bugs.webkit.org/show_bug.cgi?id=125696
Reviewed by Darin Adler.
* crypto/CryptoKey.cpp: (WebCore::CryptoKey::usages): Do it.
2013-12-13 Darin Adler <darin@apple.com>
Make some optimizations for DOM bindings involving vectors
https://bugs.webkit.org/show_bug.cgi?id=125680
Reviewed by Andreas Kling.
* bindings/js/JSDOMBinding.h:
(WebCore::toJS): Removed unnecessary copying of vectors when converting them
to JavaScript values.
(WebCore::toRefPtrNativeArray): Use reserveInitialCapacity and uncheckedAppend.
(WebCore::toNativeArray): Ditto.
(WebCore::toNativeArguments): Ditto.
2013-12-13 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r155784): [GTK] Some methods incorrectly removed in r155784 and deprecated in r158662
https://bugs.webkit.org/show_bug.cgi?id=125692
Reviewed by Martin Robinson.
In r155784 the build was fixed by skipping Console::profile() and
Console::profileEnd(), but the patch also skipped other methods
containing the profile method name. Those were incorrectly
deprecated in r158662 thinking that the property had been removed
in the idl.
* bindings/gobject/WebKitDOMDeprecated.cpp: Undeprecate
webkit_dom_html_head_element_get_profile and
webkit_dom_html_head_element_set_profile.
* bindings/gobject/WebKitDOMDeprecated.h: Ditto.
* bindings/gobject/WebKitDOMDeprecated.symbols: Ditto.
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction): Skip webkit_dom_console_profile and
webkit_dom_console_profile_end.
2013-12-13 Rob Buis <rob.buis@samsung.com>
Clean up SVGScriptElement
https://bugs.webkit.org/show_bug.cgi?id=125527
Reviewed by Darin Adler.
From the Blink port of this bug it becomes clear that svg/dom/SVGScriptElement/script-set-href.svg and
svg/dom/svg-element-attribute-js-null.xhtml still hit an assert in Debug because SVGNames::typeAttr can't
be used with fastGetAttribute in all cases, because it can be animatable. However for SVGScriptElement
it is not animatable, so make isAnimatableAttribute virtual (note Debug only method) and allow typeAttr
in the SVGScriptElement case to be useable for fastGetAttribute.
Test: svg/dom/SVGScriptElement/script-type-attribute.svg
* svg/SVGElement.h:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::isAnimatableAttribute):
* svg/SVGScriptElement.h:
2013-12-13 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Expose also webkit_dom_document_get_url
https://bugs.webkit.org/show_bug.cgi?id=125691
Reviewed by Martin Robinson.
For some reason we expose the URL property, so it can be accessed
with g_object_get(), but we have a special case to not provide a
public getter.
* bindings/gobject/webkitdom.symbols: Add new symbol.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunctions): Remove the special case of URL property.
2013-12-13 Andreas Kling <akling@apple.com>
CSSFilterImageValue constructor should require both image and filter.
<https://webkit.org/b/125056>
Make the CSSFilterImageValue::create() helper take both the image and
filter CSSValues by PassRef since they should never be null.
Tweaked ComputedStyleExtractor::valueForFilter() to return a PassRef
for this to work.
Reviewed by Anders Carlsson.
2013-12-12 Andreas Kling <akling@apple.com>
StyleResolver::adjustRenderStyle() should take RenderStyle references.
<https://webkit.org/b/125623>
This function doesn't handle null styles being passed, so prevent
it at compile time.
Reviewed by Anders Carlsson.
2013-12-13 Darin Adler <darin@apple.com>
Eliminate awkward virtualComputedStyle construction
https://bugs.webkit.org/show_bug.cgi?id=125681
Reviewed by Andreas Kling.
* dom/Element.cpp:
(WebCore::Element::computedStyle): Tweak coding style a bit.
* dom/Element.h: Marked computedStyle virtual and got rid of virtualComputedStyle.
This fixes a bug that we would not call SVGElement::computedStyle if we called
it through an Element pointer or reference. Not sure how to get test coverage for this.
* dom/Node.cpp:
(WebCore::Node::computedStyle): Use a loop instead of recursive virtual calls.
* dom/Node.h: Made computedStyle virtual and got rid of virtualComputedStyle.
* svg/SVGElement.cpp:
(WebCore::SVGElement::computedStyle): Tweak coding style a bit.
* svg/SVGElement.h: Made computedStyle virtual (and FINAL) and got rid fo
virtualComputedStyle.
2013-12-13 Darin Adler <darin@apple.com>
Fix a couple stray uses of RefPtr that should release
https://bugs.webkit.org/show_bug.cgi?id=125679
Reviewed by Andreas Kling.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFilter): Add calls to release, in
one case rearranging the order of operations slightly so we
don't release the pointer before using it.
2013-12-12 Alexey Proskuryakov <ap@apple.com>
WebCrypto wrapKey operation doesn't check key usage
https://bugs.webkit.org/show_bug.cgi?id=125675
Reviewed by Darin Adler.
Tests: crypto/subtle/unwrapKey-check-usage.html
crypto/subtle/wrapKey-check-usage.html
* bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::wrapKey):
Added accidentally omitted code. Other operations are fine.
2013-12-12 Darin Adler <darin@apple.com>
Make some improvements in CSSImageGeneratorValue code
https://bugs.webkit.org/show_bug.cgi?id=125676
Reviewed by Simon Fraser.
* css/CSSCrossfadeValue.cpp:
(WebCore::subimageKnownToBeOpaque): Take a reference to the CSSValue, since
it's known not to be null. Used checked cast.
(WebCore::CSSCrossfadeValue::knownToBeOpaque): Updated to pass a reference.
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::saveCachedImageForSize): Use
make_unique instead of adoptPtr.
(WebCore::CSSImageGeneratorValue::subimageIsPending): Use checked cast.
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue): Ditto, also
use nullptr.
* css/CSSImageGeneratorValue.h: Removed unneeded includes, added some forward
declarations, used unique_ptr instead of OwnPtr, and used CSS_VALUE_TYPE_CASTS
macro to create cast functions.
* css/CSSValue.cpp: Removed unneeded include of CSSImageGeneratorValue.h.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear): Use nullptr instead of 0.
(WebCore::StyleResolver::applyProperty): Use checked cast and pass references
instead of pointers to StyleGeneratedImage::create.
(WebCore::StyleResolver::styleImage): Use checked cast and pass references
instead of pointers to generatedOrPendingFromValue.
(WebCore::StyleResolver::generatedOrPendingFromValue): Take the value as a
reference instead of a pointer.
(WebCore::StyleResolver::loadPendingImage): Pass a refernece instead of a
pointer to StyleGeneratedImage::create.
(WebCore::StyleResolver::loadPendingImages): Use auto for iteration instead of
a lot type name.
* css/StyleResolver.h: Changed generatedOrPendingFromValue to take the value
as a reference instead of a pointer.
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilter): Pass a reference insted of a pointer to
StyleGeneratedImage::create.
(WebCore::crossfadeBlend): Ditto.
(WebCore::blendFunc): Ditto. Also use references for local variables.
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::StyleGeneratedImage): Use PassRef instead of
PassRefPtr for the argument type.
(WebCore::StyleGeneratedImage::cssValue): Updated since m_imageGeneratorValue
is now a Ref instead of a RefPtr. Sadly this requires a const_cast that we can
come back and get rid of later.
(WebCore::StyleGeneratedImage::imageSize): Ditto.
(WebCore::StyleGeneratedImage::image): Ditto.
* rendering/style/StyleGeneratedImage.h: Changed create function and constructor
to take a PassRef. Made imageValue non-const since it returns a non-const value,
to be consistent with "conceptual const". Changed m_imageGeneratorValue to be a
Ref instead of a RefPtr.
* rendering/style/StyleImage.h: Made WrappedImagePtr be const void*, since it's
a pointer used only for equality checks. Not a great idiom, but fine to use a
const pointer instead of non-const, and avoids the const_cast we'd otherwise
need in StyleGeneratedImage::data.
2013-12-12 KyungTae Kim <ktf.kim@samsung.com>
Improve the find word boundary performance
https://bugs.webkit.org/show_bug.cgi?id=125619
In endWordBoundary case, the textBreakPrevious call in findWordBoundary is unnecessary.
So use separate function for endWordBoundary can improve the performance.
Reviewed by Darin Adler.
No tests because no operation changes.
* editing/VisibleUnits.cpp: Use findEndWordBoundary in endWordBoundary
(WebCore::endWordBoundary):
* platform/text/TextBoundaries.cpp: Add findEndWordBoundary function
(WebCore::findEndWordBoundary):
* platform/text/TextBoundaries.h:
* platform/text/mac/TextBoundaries.mm: Add findEndWordBoundary function
(WebCore::findEndWordBoundary):
2013-12-12 Benjamin Poulain <bpoulain@apple.com>
Fix a silly mistake of r160467
https://bugs.webkit.org/show_bug.cgi?id=125657
Reviewed by Alexey Proskuryakov.
Fix a typo. The validity check was missing the logical not.
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):
2013-12-12 Tim Horton <timothy_horton@apple.com>
[wk2] Handle pinch-to-zoom gesture
https://bugs.webkit.org/show_bug.cgi?id=125604
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export some TransformationMatrix functions.
* WebCore.xcodeproj/project.pbxproj:
Make some headers private so that RenderLayerCompositor/Backing can be used from WebKit2.
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::layerForContentShadow):
Add a getter for the content shadow layer.
2013-12-12 Brady Eidson <beidson@apple.com>
DatabaseProcess IndexedDB: Establish a metadata backing store on disk
https://bugs.webkit.org/show_bug.cgi?id=125258
Reviewed by Alexey Proskuryakov, Anders Carlsson, and Tim Horton.
Teach CrossThreadCopier how to handle IDBDatabaseMetadata.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBDatabaseMetadata.cpp: Added.
(WebCore::IDBDatabaseMetadata::isolatedCopy):
(WebCore::IDBObjectStoreMetadata::isolatedCopy):
(WebCore::IDBIndexMetadata::isolatedCopy):
* Modules/indexeddb/IDBDatabaseMetadata.h:
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPath::isolatedCopy):
* Modules/indexeddb/IDBKeyPath.h:
* platform/CrossThreadCopier.cpp:
(WebCore::::copy): Add an IDBDatabaseMetadata specialization.
* platform/CrossThreadCopier.h:
2013-12-12 Alexey Proskuryakov <ap@apple.com>
Add support for RSAES-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=125647
Build fix.
* crypto/CommonCryptoUtilities.h: Declare a newly used private constant.
2013-12-12 Alexey Proskuryakov <ap@apple.com>
Add support for RSAES-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=125647
Reviewed by Anders Carlsson.
Tests: crypto/subtle/rsaes-pkcs1-v1_5-decrypt.html
crypto/subtle/rsaes-pkcs1-v1_5-wrap-unwrap-aes.html
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
* crypto/algorithms/CryptoAlgorithmAES_KW.h:
Removed meaningless parameters arguments from private functions. The base arguments
class is always empty.
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
(WebCore::JSCryptoKeySerializationJWK::keySizeIsValid):
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp: Added.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::CryptoAlgorithmRSAES_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::~CryptoAlgorithmRSAES_PKCS1_v1_5):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::create):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::identifier):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
* crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h: Added.
* crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp: Added.
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Added support for this algorithm.
2013-12-12 Andreas Kling <akling@apple.com>
[Mac] Stop not caching HTTP resources with "Vary" header in response.
<https://webkit.org/b/125483>
<rdar://problem/11781097>
Remove the workaround preventing resources with the "Vary" header
from going into cache, as the CFNetwork cache has supported this
for quite a while now.
31.5 MB progression on Membuster3, because we can now mmap those
resources from disk once they are in the cache.
We keep the workaround on PLATFORM(WIN) for now.
Reviewed by Antti Koivisto.
2013-12-12 Sam Weinig <sam@webkit.org>
Replace uses of WTF::BitArray with std::bitset
https://bugs.webkit.org/show_bug.cgi?id=125642
Reviewed by Anders Carlsson.
* css/CSSParser.cpp:
(WebCore::filterProperties):
(WebCore::CSSParser::createStyleProperties):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::asText):
2013-12-12 Alexey Proskuryakov <ap@apple.com>
Public key in a generated KeyPair should always be extractable
https://bugs.webkit.org/show_bug.cgi?id=125643
Reviewed by Sam Weinig.
The spec doesn't explain how generateKey works with key pairs (there are open bugs
about that). Making public keys non-extractable makes no sense one way or another.
Test: crypto/subtle/rsa-oaep-generate-non-extractable-key.html
* crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::generatePair):
2013-12-12 Alexey Proskuryakov <ap@apple.com>
Make algorithm.name return registered name, not normalized one
https://bugs.webkit.org/show_bug.cgi?id=125641
Reviewed by Anders Carlsson.
Currently, WebCrypto editor's draft stipulates that algorithm name is lowercased
as part of normalization.
But it makes little sense to register algorithms as mixed (mostly upper) case, yet
return the name lowercased. Other implementations don't bother respecting this,
and signs are that the spec will change.
I'd like to match other implementations here, because sticking to the spec only
makes us fail 3rd party test suites for no good reason.
Updated many existing tests.
* crypto/CryptoAlgorithmRegistry.cpp:
(WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
* crypto/CryptoAlgorithmRegistry.h:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
* crypto/algorithms/CryptoAlgorithmSHA1.cpp:
* crypto/algorithms/CryptoAlgorithmSHA224.cpp:
* crypto/algorithms/CryptoAlgorithmSHA256.cpp:
* crypto/algorithms/CryptoAlgorithmSHA384.cpp:
* crypto/algorithms/CryptoAlgorithmSHA512.cpp:
2013-12-12 Csaba Osztrogonác <ossy@webkit.org>
Move CertificateInfo to WebCore
https://bugs.webkit.org/show_bug.cgi?id=124720
Reviewed by Darin Adler.
Based on the patch by Kwang Yul Seo <skyul@company100.net>
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/mac/CertificateInfo.h: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.h.
(WebCore::CertificateInfo::setCertificateChain): Added, because WebCoreArgumentCoders needs it.
* platform/network/mac/CertificateInfoMac.mm: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.mm.
(WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersMac.mm.
* platform/network/soup/CertificateInfo.cpp: Copied from Source/WebKit2/Shared/WebCertificateInfo.h.
(WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersSoup.cpp.
* platform/network/soup/CertificateInfo.h: Renamed from Source/WebKit2/Shared/soup/CertificateInfo.h.
(WebCore::CertificateInfo::setCertificate): Added, because WebCoreArgumentCoders needs it.
(WebCore::CertificateInfo::setTLSErrors): Added, because WebCoreArgumentCoders needs it.
2013-12-12 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r160417.
http://trac.webkit.org/changeset/160417
https://bugs.webkit.org/show_bug.cgi?id=125629
The patch is causing crashes (Requested by zdobersek1 on
#webkit).
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::remove):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::detachWrapper):
(WebCore::AXObjectCache::attachWrapper):
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper):
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::detachWrapper):
2013-12-12 Martin Robinson <mrobinson@igalia.com>
Remove a few more guards mistakenly added in r160367
Reviewed by Carlos Garcia Campos
r160367 was too liberal in hiding APIs from the GObject DOM bindings.
We should expose the BatteryManager and the text and audio tracks.
* Modules/battery/BatteryManager.idl:
* html/HTMLMediaElement.idl:
2013-12-11 Darin Adler <darin@apple.com>
StylePendingImage needs to correctly manage the CSSValue pointer lifetime
https://bugs.webkit.org/show_bug.cgi?id=125468
Reviewed by Andreas Kling.
Test: fast/css/pending-image-crash.xhtml
Disconnect the reference counted StylePendingImage from the CSSValue that owns
it when it's not needed any more, otherwise we could end up using a pointer
that might no longer be valid.
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::detachPendingImage): Added. Calls detachFromCSSValue
on the current image if it is a StylePendingImage.
(WebCore::CSSCursorImageValue::~CSSCursorImageValue): Call detachPendingImage.
(WebCore::CSSCursorImageValue::cachedImage): Call detachPendingImage before changing
m_image to a new value.
(WebCore::CSSCursorImageValue::clearCachedImage): Ditto.
* css/CSSCursorImageValue.h: Added detachPendingImage.
* css/CSSImageSetValue.cpp:
(WebCore::CSSImageSetValue::detachPendingImage): Added. Calls detachFromCSSValue
on the current image set if it is a StylePendingImage.
(WebCore::CSSImageSetValue::~CSSImageSetValue): Call detachPendingImage.
(WebCore::CSSImageSetValue::cachedImageSet): Call detachPendingImage before changing
m_imageSet to a new value.
* css/CSSImageSetValue.h: Added detachPendingImage.
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::detachPendingImage): Added. Calls detachFromCSSValue on the
current image if it is a StylePendingImage.
(WebCore::CSSImageValue::~CSSImageValue): Call detachPendingImage.
(WebCore::CSSImageValue::cachedImage): Call detachPendingImage before changing m_image
to a new value.
* css/CSSImageValue.h: Added detachPendingImage.
* rendering/style/StylePendingImage.h:
(WebCore::StylePendingImage::cssImageValue): Added a null check.
(WebCore::StylePendingImage::cssImageGeneratorValue): Added a null check.
(WebCore::StylePendingImage::cssCursorImageValue): Added a null check.
(WebCore::StylePendingImage::cssImageSetValue): Added a null check.
(WebCore::StylePendingImage::detachFromCSSValue): Added. Sets m_value to null since
the style is no longer using this StylePendingImage.
(WebCore::StylePendingImage::data): Changed to use the "this" pointer since all we
need is some arbitrary pointer uniquely identifying the image. Before loading the image,
we have no suitable weak identifier, so it suffices to use the unique pointer to each
StylePendingImage object. This function is used only in a limited way; it would be nice
to find a way to make the code less strange long term.
2013-12-11 Darin Adler <darin@apple.com>
Remove some unneeded code noticed while looking at StylePendingImage
https://bugs.webkit.org/show_bug.cgi?id=125618
Reviewed by Andreas Kling.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage): Removed redundant function calls.
* rendering/RenderImageResource.cpp: Removed unneeded nullImage and
usesImageContainerSize member functions.
(WebCore::RenderImageResource::image): Use Image::nullImage directly instead of
through RenderImageResourceImage::nullImage.
* rendering/RenderImageResource.h: Removed unneeded usesImageContainerSize
and nullImage functions. Also removed unneeded includes.
* rendering/RenderImageResourceStyleImage.h: Removed unneeded
usesImageContainerSize override. Nobody was calling it.
2013-12-11 Benjamin Poulain <bpoulain@apple.com>
Add the CFNetwork implementation of the asynchronous ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=124440
Reviewed by Alexey Proskuryakov.
Add a second subclass of ResourceHandleCFURLConnectionDelegate: ResourceHandleCFURLConnectionDelegateWithOperationQueue.
The difference is those objects handle the network callback on a different queue.
Some common code has been refactored in ResourceHandleCFURLConnectionDelegate to reduce duplicated code.
The initialization of the request and connection is moved to the subclass to clean up initialization.
* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::willCacheResponseAsync):
* platform/network/ResourceHandleClient.h:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp: Added.
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::ResourceHandleCFURLConnectionDelegateWithOperationQueue):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::~ResourceHandleCFURLConnectionDelegateWithOperationQueue):
(WebCore::connectionWasCancelled):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupConnectionScheduling):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFinishLoading):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didFail):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveChallenge):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didSendBodyData):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueWillSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueDidReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueShouldUseCredentialStorage):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueWillCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueCanAuthenticateAgainstProtectionSpace):
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h: Copied from Source/WebCore/platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
(WebCore::ResourceHandle::continueShouldUseCredentialStorage):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillCacheResponse):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegate::releaseHandle):
(WebCore::ResourceHandleCFURLConnectionDelegate::synthesizeRedirectResponseIfNecessary):
(WebCore::ResourceHandleCFURLConnectionDelegate::createResourceRequest):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::setupRequest):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::setupConnectionScheduling):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueWillSendRequest):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueDidReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueShouldUseCredentialStorage):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueWillCacheResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::continueCanAuthenticateAgainstProtectionSpace):
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
2013-12-11 David Kilzer <ddkilzer@apple.com>
Define m_hasBadParent in InlineBox if defined(ADDRESS_SANITIZER)
<http://webkit.org/b/125329>
Reviewed by Darin Adler.
No tests since this is a build fix for:
$ ./Tools/Scripts/build-webkit --release OTHER_CFLAGS="$inherited -DADDRESS_SANITIZER=1"
* rendering/InlineBox.cpp:
* rendering/InlineBox.h:
- Replace ASSERT_DISABLED use with
ASSERT_WITH_SECURITY_IMPLICATION_DISABLED for m_hasBadParent.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::~InlineFlowBox):
- Use !ASSERT_WITH_SECURITY_IMPLICATION_DISABLED instead of
#ifndef NDEBUG since this calls setHasBadParent().
(WebCore::InlineFlowBox::checkConsistency):
- Move ASSERT(!m_hasBadChildList) outside of
#if CHECK_CONSISTENCY and change to
ASSERT_WITH_SECURITY_IMPLICATION(!m_hasBadChildList).
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::InlineFlowBox):
(WebCore::InlineFlowBox::setHasBadChildList):
- Change #ifndef NDEBUG to
#if !ASSERT_WITH_SECURITY_IMPLICATION_DISABLED for code using
m_hasBadChildList.
2013-12-11 Ralph Thomas <ralpht@gmail.com>
[WebGL] Fix build on GL ES 2.0 targets after r160119
https://bugs.webkit.org/show_bug.cgi?id=125541
Reviewed by Brent Fulgham.
GL ES 2.0 doesn't define GL_HALF_FLOAT_ARB, so pass through HALF_FLOAT_OES (which is defined for GL ES 2.0).
This change also reverts r160324 which incorrectly defined GL_HALF_FLOAT_ARB for the Windows ANGLE target.
No new tests, no change in functionality.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::texSubImage2D):
2013-12-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Push More Inspector Required Classes Down into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=125324
Reviewed by Timothy Hatcher.
Part 1: Push down core inspector classes.
- Move InspectAgentBase, InspectorAgentRegistry, InspectorBackendDispatcher, InspectorValues
down to JavaScriptCore and into the Inspector namespace.
- Add forwarding headers for JavaScriptCore/inspector files.
- Use the Inspector namespace where appropriate.
- Rename InspectorBaseAgent to InspectorAgentBase for clarity.
Part 2: Push Script wrapper classes down into JavaScriptCore/bindings.
- Move ScriptObject and ScriptValue into JavaScriptCore but namespace Deprecated
- Add forwarding headers
- Use Deprecated::ScriptObject and Deprecated::ScriptValue everywhere.
Part 3: Push Down ScriptFunctionCall
- Move ScriptFunctionCall to JavaScriptCore/bindings into namespace Deprecated.
- Give constructor a function to all for a different JSC::call, because
WebCore ScriptFunctionCall's use JSMainThreadExecState when isMainThread.
- Prefer Deprecated::ScriptFunctionCall everywhere it is used in WebCore.
Part 4: Extract InspectorTypeBuilder helper functions
- There is a chunk of InspectorTypeBuilder that never changes. Extract it into
its own file, InspectorTypeBuilder.h in JSC/inspector, Inspector namespace.
- This moves TypeBuilder from namespace WebCore to namespace Inspector
- Rename the WebCore generated InspectorTypeBuilder to InspectorWebTypeBuilders,
eventually the CodeGenerator script will do this for more then TypeBuilders
and there will be "JS" TypeBuilders and "Web" TypeBuilders files.
No new tests. No change in functionality, just moving things around.
* CMakeLists.txt:
* ForwardingHeaders/bindings/ScriptFunctionCall.h: Added.
* ForwardingHeaders/bindings/ScriptObject.h: Added.
* ForwardingHeaders/bindings/ScriptValue.h: Added.
* ForwardingHeaders/inspector/InspectorAgentBase.h: Added.
* ForwardingHeaders/inspector/InspectorAgentRegistry.h: Added.
* ForwardingHeaders/inspector/InspectorBackendDispatcher.h: Added.
* ForwardingHeaders/inspector/InspectorTypeBuilder.h: Added.
* ForwardingHeaders/inspector/InspectorValues.h: Added.
* GNUmakefile.am:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBAny.cpp:
(WebCore::IDBAny::scriptValue):
(WebCore::IDBAny::IDBAny):
* Modules/indexeddb/IDBAny.h:
* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::key):
(WebCore::IDBCursor::primaryKey):
(WebCore::IDBCursor::value):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::setValueReady):
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::cmp):
* Modules/indexeddb/IDBFactory.h:
* Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::openKeyCursor):
* Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::lowerValue):
(WebCore::IDBKeyRange::upperValue):
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
* Modules/indexeddb/IDBKeyRange.h:
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::get):
(WebCore::generateIndexKeysForValue):
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::count):
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::setResultCursor):
(WebCore::IDBRequest::onSuccess):
(WebCore::IDBRequest::onSuccessInternal):
* Modules/indexeddb/IDBRequest.h:
* Modules/mediastream/CapabilityRange.cpp:
(WebCore::scriptValue):
(WebCore::CapabilityRange::min):
(WebCore::CapabilityRange::max):
* Modules/mediastream/CapabilityRange.h:
* Modules/mediastream/MediaTrackConstraint.h:
* Modules/mediastream/RTCIceCandidate.cpp:
* Modules/plugins/QuickTimePluginReplacement.cpp:
* Modules/plugins/QuickTimePluginReplacement.h:
* UseJSC.cmake:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/Dictionary.h:
(WebCore::Dictionary::getEventListener):
* bindings/js/IDBBindingUtilities.cpp:
(WebCore::createIDBKeyFromScriptValueAndKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::deserializeIDBValue):
(WebCore::deserializeIDBValueBuffer):
(WebCore::idbKeyToScriptValue):
(WebCore::scriptValueToIDBKey):
* bindings/js/IDBBindingUtilities.h:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
* bindings/js/JSDictionary.h:
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::scriptValueAsNode):
(WebCore::InjectedScriptHost::nodeAsScriptValue):
(WebCore::JSInjectedScriptHost::inspectedObject):
(WebCore::JSInjectedScriptHost::inspect):
* bindings/js/JSInjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::createInjectedScript):
* bindings/js/JSMainThreadExecState.cpp:
(WebCore::functionCallHandlerFromAnyThread):
* bindings/js/JSMainThreadExecState.h:
(WebCore::JSMainThreadExecState::currentState):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::data):
(WebCore::handleInitMessageEvent):
* bindings/js/ScheduledAction.cpp:
* bindings/js/ScriptCallStackFactory.cpp:
(WebCore::createScriptArguments):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::evaluate):
(WebCore::ScriptController::executeScriptInWorld):
(WebCore::ScriptController::executeScript):
(WebCore::ScriptController::executeIfJavaScriptURL):
* bindings/js/ScriptController.h:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setScriptSource):
(WebCore::ScriptDebugServer::updateCallStack):
(WebCore::ScriptDebugServer::dispatchDidPause):
(WebCore::ScriptDebugServer::runScript):
* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptGlobalObject.cpp: Renamed from Source/WebCore/bindings/js/ScriptObject.cpp.
(WebCore::handleException):
(WebCore::ScriptGlobalObject::set):
(WebCore::ScriptGlobalObject::get):
(WebCore::ScriptGlobalObject::remove):
* bindings/js/ScriptGlobalObject.h: Copied from Source/WebCore/inspector/ScriptCallStack.h.
(WebCore::ScriptGlobalObject::ScriptGlobalObject):
* bindings/js/ScriptObject.h: Removed.
* bindings/js/ScriptProfile.cpp:
(WebCore::buildInspectorObjectFor):
(WebCore::ScriptProfile::buildInspectorObjectForHead):
(WebCore::ScriptProfile::buildInspectorObjectForBottomUpHead):
* bindings/js/ScriptProfile.h:
* bindings/js/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::objectByHeapObjectId):
(WebCore::ScriptProfiler::getHeapObjectId):
* bindings/js/ScriptProfiler.h:
* bindings/js/ScriptState.h:
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::deserializeForInspector):
(WebCore::SerializedScriptValue::serialize):
(WebCore::SerializedScriptValue::deserialize):
* bindings/js/SerializedScriptValue.h:
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):
* bindings/js/WorkerScriptController.h:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjAnyAttribute):
* dom/CustomEvent.cpp:
(WebCore::CustomEvent::initCustomEvent):
* dom/CustomEvent.h:
(WebCore::CustomEvent::detail):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::initMessageEvent):
* dom/MessageEvent.h:
(WebCore::MessageEvent::create):
(WebCore::MessageEvent::dataAsScriptValue):
* dom/PopStateEvent.h:
(WebCore::PopStateEvent::state):
* dom/ScriptElement.cpp:
* html/HTMLMediaElement.cpp:
* html/parser/XSSAuditor.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/CodeGeneratorInspector.py:
(RawTypes.BaseType.get_raw_validator_call_text):
(RawTypes.Object.get_array_item_raw_c_type_text):
(RawTypes.Any.get_array_item_raw_c_type_text):
(RawTypes.Array.get_array_item_raw_c_type_text):
(CommandReturnPassModel.OptOutput.get_return_var_type):
(CommandReturnPassModel.OptOutput.get_output_parameter_type):
(TypeModel.ExactlyInt.get_input_param_type_text):
(TypeModel.ExactlyInt.get_opt_output_type_):
(TypeModel.init_class):
(TypeBindings.create_named_type_declaration.Helper):
(TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
(TypeBindings.create_type_declaration_.EnumBinding.get_setter_value_expression_pattern):
(TypeBindings.create_type_declaration_.ClassBinding.get_code_generator.CodeGenerator.generate_type_builder):
(Inspector):
(ArrayBinding.get_array_item_c_type_text):
(Generator.go):
(Generator.process_command):
* inspector/CodeGeneratorInspectorStrings.py:
(void):
(InspectorFrontend_h):
(InspectorBackendDispatchers_h):
* inspector/ConsoleMessage.cpp:
(WebCore::messageSourceValue):
(WebCore::messageTypeValue):
(WebCore::messageLevelValue):
(WebCore::ConsoleMessage::addToFrontend):
* inspector/ConsoleMessage.h:
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::buildObjectForSearchMatch):
(WebCore::ContentSearchUtils::searchInTextByLines):
* inspector/ContentSearchUtils.h:
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::InjectedScript):
(WebCore::InjectedScript::evaluate):
(WebCore::InjectedScript::callFunctionOn):
(WebCore::InjectedScript::evaluateOnCallFrame):
(WebCore::InjectedScript::getFunctionDetails):
(WebCore::InjectedScript::getProperties):
(WebCore::InjectedScript::getInternalProperties):
(WebCore::InjectedScript::nodeForObjectId):
(WebCore::InjectedScript::releaseObject):
(WebCore::InjectedScript::wrapCallFrames):
(WebCore::InjectedScript::wrapObject):
(WebCore::InjectedScript::wrapTable):
(WebCore::InjectedScript::wrapNode):
(WebCore::InjectedScript::findObjectById):
(WebCore::InjectedScript::inspectNode):
(WebCore::InjectedScript::releaseObjectGroup):
(WebCore::InjectedScript::nodeAsScriptValue):
* inspector/InjectedScript.h:
* inspector/InjectedScriptBase.cpp:
(WebCore::InjectedScriptBase::InjectedScriptBase):
(WebCore::InjectedScriptBase::initialize):
(WebCore::InjectedScriptBase::injectedScriptObject):
(WebCore::InjectedScriptBase::callFunctionWithEvalEnabled):
(WebCore::InjectedScriptBase::makeCall):
(WebCore::InjectedScriptBase::makeEvalCall):
* inspector/InjectedScriptBase.h:
* inspector/InjectedScriptCanvasModule.cpp:
(WebCore::InjectedScriptCanvasModule::wrapCanvas2DContext):
(WebCore::InjectedScriptCanvasModule::wrapWebGLContext):
(WebCore::InjectedScriptCanvasModule::callWrapContextFunction):
(WebCore::InjectedScriptCanvasModule::markFrameEnd):
(WebCore::InjectedScriptCanvasModule::callStartCapturingFunction):
(WebCore::InjectedScriptCanvasModule::callVoidFunctionWithTraceLogIdArgument):
(WebCore::InjectedScriptCanvasModule::traceLog):
(WebCore::InjectedScriptCanvasModule::replayTraceLog):
(WebCore::InjectedScriptCanvasModule::resourceInfo):
(WebCore::InjectedScriptCanvasModule::resourceState):
* inspector/InjectedScriptCanvasModule.h:
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::inspectImpl):
(WebCore::InjectedScriptHost::InspectableObject::get):
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptManager.cpp:
(WebCore::InjectedScriptManager::injectedScriptFor):
* inspector/InjectedScriptManager.h:
* inspector/InjectedScriptModule.cpp:
(WebCore::InjectedScriptModule::ensureInjected):
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::didCreateFrontendAndBackend):
(WebCore::InspectorAgent::inspect):
* inspector/InspectorAgent.h:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
(WebCore::InspectorApplicationCacheAgent::didCreateFrontendAndBackend):
(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
(WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
(WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
(WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
(WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::SelectorProfile::toInspectorObject):
(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::didCreateFrontendAndBackend):
(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::getInlineStylesForNode):
(WebCore::InspectorCSSAgent::getComputedStyleForNode):
(WebCore::InspectorCSSAgent::getAllStyleSheets):
(WebCore::InspectorCSSAgent::getStyleSheet):
(WebCore::InspectorCSSAgent::setStyleText):
(WebCore::InspectorCSSAgent::setPropertyText):
(WebCore::InspectorCSSAgent::toggleProperty):
(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):
(WebCore::InspectorCSSAgent::getSupportedCSSProperties):
(WebCore::InspectorCSSAgent::getNamedFlowCollection):
(WebCore::InspectorCSSAgent::stopSelectorProfiler):
(WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
(WebCore::InspectorCSSAgent::asInspectorStyleSheet):
(WebCore::InspectorCSSAgent::collectStyleSheets):
(WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
(WebCore::InspectorCSSAgent::detectOrigin):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildArrayForRuleList):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
(WebCore::InspectorCSSAgent::buildArrayForRegions):
(WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend):
(WebCore::InspectorCanvasAgent::wrapCanvas2DRenderingContextForInstrumentation):
(WebCore::InspectorCanvasAgent::wrapWebGLRenderingContextForInstrumentation):
(WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
(WebCore::InspectorCanvasAgent::injectedScriptCanvasModule):
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorCanvasInstrumentation.h:
(WebCore::InspectorInstrumentation::wrapCanvas2DRenderingContextForInstrumentation):
(WebCore::InspectorInstrumentation::wrapWebGLRenderingContextForInstrumentation):
* inspector/InspectorClient.cpp:
* inspector/InspectorClient.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::didCreateFrontendAndBackend):
(WebCore::InspectableHeapObject::get):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::getDocument):
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
(WebCore::InspectorDOMAgent::querySelectorAll):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::getSearchResults):
(WebCore::InspectorDOMAgent::resolveNode):
(WebCore::InspectorDOMAgent::getAttributes):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
(WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::didCommitLoad):
(WebCore::InspectorDOMAgent::didInsertDOMNode):
(WebCore::InspectorDOMAgent::styleAttributeInvalidated):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent):
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
(WebCore::InspectorDOMStorageAgent::storageId):
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
(WebCore::InspectorDatabaseAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDatabaseResource.cpp:
(WebCore::InspectorDatabaseResource::bind):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::didCreateFrontendAndBackend):
(WebCore::breakpointActionTypeForString):
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::setBreakpoint):
(WebCore::InspectorDebuggerAgent::resolveBreakpoint):
(WebCore::scriptToInspectorObject):
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::setScriptSource):
(WebCore::InspectorDebuggerAgent::getFunctionDetails):
(WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
(WebCore::InspectorDebuggerAgent::compileScript):
(WebCore::InspectorDebuggerAgent::runScript):
(WebCore::InspectorDebuggerAgent::currentCallFrames):
(WebCore::InspectorDebuggerAgent::didParseSource):
(WebCore::InspectorDebuggerAgent::didPause):
(WebCore::InspectorDebuggerAgent::didContinue):
(WebCore::InspectorDebuggerAgent::clear):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorForwarding.h:
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::evaluateAsBoolean):
* inspector/InspectorFrontendHost.cpp:
(WebCore::FrontendMenuProvider::create):
(WebCore::FrontendMenuProvider::disconnect):
(WebCore::FrontendMenuProvider::FrontendMenuProvider):
(WebCore::FrontendMenuProvider::contextMenuItemSelected):
(WebCore::FrontendMenuProvider::contextMenuCleared):
(WebCore::InspectorFrontendHost::showContextMenu):
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
(WebCore::InspectorHeapProfilerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorHeapProfilerAgent::createSnapshotHeader):
(WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
(WebCore::InspectorHeapProfilerAgent::getObjectByHeapObjectId):
(WebCore::InspectorHeapProfilerAgent::getHeapObjectId):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
(WebCore::InspectorIndexedDBAgent::didCreateFrontendAndBackend):
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::InspectorInputAgent):
(WebCore::InspectorInputAgent::didCreateFrontendAndBackend):
* inspector/InspectorInputAgent.h:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
(WebCore::InspectorLayerTreeAgent::didCreateFrontendAndBackend):
(WebCore::InspectorLayerTreeAgent::layersForNode):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
(WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::didCreateFrontendAndBackend):
(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorOverlay.cpp:
* inspector/InspectorOverlay.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::resourceTypeJson):
(WebCore::InspectorPageAgent::cachedResourceTypeJson):
(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
(WebCore::buildObjectForCookie):
(WebCore::buildArrayForCookies):
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::getResourceTree):
(WebCore::InspectorPageAgent::searchInResource):
(WebCore::buildObjectForSearchResult):
(WebCore::InspectorPageAgent::searchInResources):
(WebCore::InspectorPageAgent::buildObjectForFrame):
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::createProfileHeader):
(WebCore::InspectorProfilerAgent::createSnapshotHeader):
(WebCore::InspectorProfilerAgent::getProfileHeaders):
(WebCore::InspectorProfilerAgent::getCPUProfile):
(WebCore::InspectorProfilerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorProfilerAgent::getObjectByHeapObjectId):
(WebCore::InspectorProfilerAgent::getHeapObjectId):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didCreateFrontendAndBackend):
(WebCore::buildObjectForTiming):
(WebCore::buildObjectForResourceRequest):
(WebCore::buildObjectForResourceResponse):
(WebCore::buildObjectForCachedResource):
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::didReceiveResponse):
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
(WebCore::InspectorResourceAgent::buildInitiatorObject):
(WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
(WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
(WebCore::InspectorResourceAgent::didSendWebSocketFrame):
(WebCore::InspectorResourceAgent::InspectorResourceAgent):
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
(WebCore::buildErrorRangeObject):
(WebCore::InspectorRuntimeAgent::parse):
(WebCore::InspectorRuntimeAgent::evaluate):
(WebCore::InspectorRuntimeAgent::callFunctionOn):
(WebCore::InspectorRuntimeAgent::getProperties):
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorStyleSheet.cpp:
(WebCore::buildSourceRangeObject):
(WebCore::buildMediaObject):
(WebCore::fillMediaListChain):
(WebCore::InspectorStyle::buildObjectForStyle):
(WebCore::InspectorStyle::buildArrayForComputedStyle):
(WebCore::InspectorStyle::styleWithProperties):
(WebCore::InspectorStyleSheet::create):
(WebCore::InspectorStyleSheet::InspectorStyleSheet):
(WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
(WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::buildObjectForStyle):
(WebCore::InspectorStyleSheet::resourceStyleSheetText):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::InspectorStyleSheetForInlineStyle::create):
(WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
* inspector/InspectorStyleSheet.h:
(WebCore::InspectorCSSId::InspectorCSSId):
(WebCore::InspectorStyleSheet::canBind):
* inspector/InspectorStyleTextEditor.cpp:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::toProtocol):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::setDOMCounters):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::sendEvent):
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
* inspector/InspectorWebAgentBase.h: Renamed from Source/WebCore/inspector/InspectorAgentRegistry.h.
(WebCore::InspectorAgentBase::InspectorAgentBase):
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
(WebCore::InspectorWorkerAgent::didCreateFrontendAndBackend):
* inspector/InspectorWorkerAgent.h:
* inspector/InstrumentingAgents.cpp:
* inspector/NetworkResourcesData.cpp:
* inspector/PageConsoleAgent.cpp:
(WebCore::InspectableNode::get):
* inspector/PageDebuggerAgent.cpp:
* inspector/PageDebuggerAgent.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::didCreateFrontendAndBackend):
* inspector/PageRuntimeAgent.h:
* inspector/ScriptArguments.cpp:
(WebCore::ScriptArguments::create):
(WebCore::ScriptArguments::ScriptArguments):
(WebCore::ScriptArguments::argumentAt):
(WebCore::ScriptArguments::getFirstArgumentAsString):
* inspector/ScriptArguments.h:
* inspector/ScriptCallFrame.cpp:
(WebCore::ScriptCallFrame::buildInspectorObject):
* inspector/ScriptCallFrame.h:
* inspector/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::buildInspectorArray):
* inspector/ScriptCallStack.h:
* inspector/ScriptDebugListener.h:
* inspector/TimelineRecordFactory.cpp:
* inspector/TimelineRecordFactory.h:
(WebCore::TimelineRecordFactory::createWebSocketCreateData):
(WebCore::TimelineRecordFactory::createGenericWebSocketData):
* inspector/WorkerConsoleAgent.cpp:
* inspector/WorkerDebuggerAgent.cpp:
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerInspectorController.h:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend):
* inspector/WorkerRuntimeAgent.h:
* page/Console.cpp:
* page/ContentSecurityPolicy.cpp:
* page/Frame.cpp:
* page/PageConsole.cpp:
* plugins/PluginView.cpp:
(WebCore::PluginView::performRequest):
* testing/Internals.cpp:
(WebCore::Internals::parserMetaData):
* testing/Internals.h:
* workers/SharedWorkerGlobalScope.cpp:
(WebCore::createConnectEvent):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):
* workers/WorkerThread.cpp:
* xml/XMLTreeViewer.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParserLibxml2.cpp:
2013-12-11 Laszlo Vidacs <lac@inf.u-szeged.hu>
Store SHA1 hash in std::array
https://bugs.webkit.org/show_bug.cgi?id=125446
Reviewed by Darin Adler.
Change Vector to std::array and use typedef.
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::createDigest):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::HostTLSCertificateSet::computeCertificateHash):
2013-12-11 Alexey Proskuryakov <ap@apple.com>
WebCrypto keys should support structured clone
https://bugs.webkit.org/show_bug.cgi?id=125590
Reviewed by Oliver Hunt.
Tests: crypto/subtle/aes-postMessage.html
crypto/subtle/hmac-postMessage.html
crypto/subtle/postMessage-worker.html
crypto/subtle/rsa-postMessage.html
* crypto/CryptoAlgorithmIdentifier.h:
(WebCore::CryptoAlgorithmIdentifier):
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):
AES_KW was added to WebCrypto spec editor's draft yesterday night. Now that we're
adding a matching enum for structired clone serialization, it's as good a time as
any to update the order of values to match.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::countUsages):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::read):
(WebCore::CloneDeserializer::readHMACKey):
(WebCore::CloneDeserializer::readAESKey):
(WebCore::CloneDeserializer::readRSAKey):
(WebCore::CloneDeserializer::readCryptoKey):
(WebCore::CloneDeserializer::readTerminal):
Added serialization/deserialization for CryptoKey. This doesn't update version
number, because we don't currently store structured clones in persistent storage -
and even if we did, we wouldn't want to invalidate everything users already stored.
* crypto/CryptoAlgorithmRegistry.cpp:
(WebCore::CryptoAlgorithmRegistry::shared):
(WebCore::registryMutex):
(WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
(WebCore::CryptoAlgorithmRegistry::nameForIdentifier):
(WebCore::CryptoAlgorithmRegistry::create):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
* crypto/CryptoKey.idl:
With structured clone, it is now possible to send a Key to a web worker. That's
of no practical use because the crypto API is not exposed in workers, but we
shouldn't crash anyway.
* crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::CryptoKeyAES):
(WebCore::CryptoKeyAES::isValidAESAlgorithm):
* crypto/keys/CryptoKeyAES.h:
Exposed isValidAESAlgorithm, so that a caller could know whether the constructor
will assert.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.vcxproj/WebCoreCommon.props:
Added crypto/keys to search paths to avoid build breakage.
2013-12-11 Bear Travis <betravis@adobe.com>
Web Inspector: [CSS Shapes] Highlight margin-shape for shape-outside
https://bugs.webkit.org/show_bug.cgi?id=125175
Reviewed by Darin Adler.
In addition to highlighting the shape, also highlight the shape created
by shape-margin with a slightly more transparent color. This patch modifies
the shape info passed to the Inspector Overlay to include a path for both
the raw shape and the shape with margin.
Test: inspector-protocol/model/highlight-shape-outside-margin.html
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForShapeOutside): Call Shape::buildDisplayPaths rather than
Shape::buildPath, and pass along any relevant paths to the Inspector overlay.
* inspector/InspectorOverlayPage.js:
(_drawShapeHighlight): Draw the margin shape in addition to the raw shape.
* rendering/shapes/BoxShape.cpp:
(WebCore::addRoundedRect): Add a rounded rect to the path.
(WebCore::BoxShape::buildDisplayPaths): Create the applicable [margin/padding/raw] shapes.
* rendering/shapes/BoxShape.h:
* rendering/shapes/PolygonShape.cpp:
(WebCore::addPolygon): Add a set of vertices as a polygon to the path.
(WebCore::PolygonShape::buildDisplayPaths): Create the applicable [margin/padding/raw] shapes.
* rendering/shapes/PolygonShape.h:
* rendering/shapes/RasterShape.h:
(WebCore::RasterShape::buildDisplayPaths): Ditto.
* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::buildDisplayPaths): Ditto.
* rendering/shapes/RectangleShape.h:
* rendering/shapes/Shape.h:
2013-12-11 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Expose accessibility objects WAI-ARIA landmark roles
https://bugs.webkit.org/show_bug.cgi?id=125584
Reviewed by Chris Fleizach.
Exposed accessibility objects with landmark roles with the proper
AtkRole, to be provided by the next stable release of ATK.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
(atkRole):
2013-12-11 José Dapena Paz <jdapena@igalia.com> and Zan Dobersek <zdobersek@igalia.com>
[GTK] Add a UPower-based BatteryProvider
https://bugs.webkit.org/show_bug.cgi?id=115719
Reviewed by Martin Robinson.
Introduce the BatteryProviderUPower, a provider of the system's battery status that produces the information
using the upower-glib library.
The BatteryProviderUPower creates a new UPower client when the provider should start emitting updates and hooks
up to device alteration signals. These only fire recalculation of the battery status when a battery device is altered.
When recalculating, every battery device is taken into account, accumulating the energy capacities when both empty
and full, the current rate of energy charging/discharging, and the battery status (whether the device is charging or
discharging). This gives a set of data that covers the overall battery status of the system.
This data is then used to calculate the battery status as perceived by the WebCore implementation. Charging is determined
by examining the integral sign of the current combined energy rate. Charging and discharging times are calculated, when
appropriate, by dividing the chargable/dischargable capacity with the current combined energy rate. The battery level is
calculated by dividing the current energy capacity with the full energy capacity (i.e. the combined capacity of all
the batteries that the system possesses). The status is (indirectly) passed onto BatteryManager by invoking the
updateBatteryStatus method on the client, with the first parameter representing the battery charging/discharging state,
the second parameter representing the time left until the battery is fully charged (when charging) or fully
depleted (when discharging), and the third parameter representing the current battery level.
Whenever the implementation cannot provide any information about the battery status of the system, the client's
updateBatteryStatus method is invoked with the first parameter reporting the unavailability of any information
about the battery status. The other two parameters can be omitted as they default to 0 when not given and are neither
available nor useful in such circumstances. The client should handle such an update by reporting the 'default' battery
status - charging, the battery level being at 1.0 and both the charging and discharging time having the value of
the positive infinity (as per the Battery Status API specification).
The implementation is heavily inspired by a similar approach to calculating battery status in GNOME Settings Daemon.
No new tests - no new functionality. The feature is not yet enabled. When enabled, the relevant tests pass.
* GNUmakefile.list.am: Add the BatteryProviderUPower(Client) build targets.
* platform/glib/BatteryProviderUPower.cpp: Added.
(powerDeviceAlterationCallback):
(BatteryProviderUPower::BatteryProviderUPower):
(BatteryProviderUPower::startUpdating):
(BatteryProviderUPower::stopUpdating):
(BatteryProviderUPower::updateBatteryStatus):
* platform/glib/BatteryProviderUPower.h: Added.
(WebCore):
(BatteryProviderUPower):
* platform/glib/BatteryProviderUPowerClient.h: Added.
(WebCore):
(BatteryProviderUPowerClient):
2013-12-11 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Improving createOffer and createAnswer LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=125568
Reviewed by Philippe Normand.
The constraints parameter should be optional in both. Also adding tests to check if we already have a local SDP
when creating an answer.
Existing tests were updated.
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createOffer):
2013-12-11 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[EFL] Fix build with CONTEXT_MENUS flag set OFF
https://bugs.webkit.org/show_bug.cgi?id=125572
Reviewed by Gyuyoung Kim.
dispatchEventAsContextMenuEvent is called regardless of CONTEXT_MENUS flag setting,
thus its definition in InspectorFrontendHost should not be guarded by this flag.
No new tests, no behaviour change.
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
2013-12-11 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
[CURL] Build fails after r160386.
https://bugs.webkit.org/show_bug.cgi?id=125571
Reviewed by Zoltan Herczeg.
Need no new tests.
Fix a typo in commit r160386 that prevents building with curl.
* platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::generateBaseFilename):
2013-12-11 Rob Buis <rob.buis@samsung.com>
[CSS Shapes] Take into account fill-rule for polygon interpolation
https://bugs.webkit.org/show_bug.cgi?id=125508
Reviewed by Dirk Schulze.
Implement the polygon fill-rule part of http://dev.w3.org/csswg/css-shapes/#basic-shape-interpolation.
Adapt fast/shapes/shape-outside-floats/shape-outside-animation.html.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend):
2013-12-11 Mario Sanchez Prada <mario.prada@samsung.com>
Programmatically-inserted children lack accessibility events
https://bugs.webkit.org/show_bug.cgi?id=100275
Reviewed by Chris Fleizach.
Test: accessibility/children-changed-sends-notification.html
Emit children-changed::add and children-changed::remove whenever
an object has been added/removed to the accessibility hierarchy,
that is, when a new AtkObject is being attached/detached.
* accessibility/AXObjectCache.h: Added new enumeration to know
when we are detaching a wrapper because of the cache or the
element is being destroyed, so we can use that information.
(WebCore::AXObjectCache::detachWrapper): Added a new parameter and
updated all the prototypes in different ports.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache): Call detachWrapper()
specifying that we do it because the cache is being destroyed.
(WebCore::AXObjectCache::remove): Call detachWrapper() specifying
that we do it because an accessible element is being destroyed.
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::detachWrapper): Emit the children-changed
signal when needed. We rely on the cached reference to the parent
AtkObject (using the implementation of atk_object_get_parent from
the AtkObject class) to find the right object to emit the signal
from here, since the accessibility hierarchy from WebCore will no
longer be accessible at this point.
(WebCore::AXObjectCache::attachWrapper): Emit the children-change
signal from here unless we are in the middle of a layout update,
trying to provide as much information (e.g. the offset) as possible.
(WebCore::AXObjectCache::postPlatformNotification): Make sure we
update (touch) the subtree under an accessibility object whenever
we receive AXChildrenChanded from WebCore, to ensure that those
objects will also be visible rightaway to ATs, and that those get
properly notified of the event at that very same moment.
* accessibility/ios/AXObjectCacheIOS.mm:
(WebCore::AXObjectCache::detachWrapper): Updated function signature.
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::detachWrapper): Ditto.
* accessibility/win/AXObjectCacheWin.cpp:
(WebCore::AXObjectCache::detachWrapper): Ditto.
2013-12-11 Andreas Kling <akling@apple.com>
REGRESSION(r160389): SVG test assertion extravaganza.
Unreviewed. Use getAttribute() instead of fastGetAttribute() for
the "type" attribute since it's animatable on SVG elements.
2013-12-11 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Set m_nextBreakablePosition as private in InlineIterator, and use it.
https://bugs.webkit.org/show_bug.cgi?id=125482
Reviewed by Andreas Kling.
InlineIterator has been exported m_nextBreakablePosition as public though it is member variable.
This patch set it as private, and add getter/setter functions for it.
No new tests, no behavior changes.
* rendering/InlineIterator.h:
(WebCore::InlineIterator::InlineIterator):
(WebCore::InlineIterator::nextBreakablePosition):
(WebCore::InlineIterator::setNextBreakablePosition):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleText):
2013-12-10 Gurpreet Kaur <k.gurpreet@samsung.com>
top and bottom black background line not getting displayed
https://bugs.webkit.org/show_bug.cgi?id=21664
Reviewed by Simon Fraser.
The table cell's background was not being displayed. Since the table
cell had no child correct offsetWidth was not being set even if table
width is being defined.
Test: fast/dom/HTMLTableElement/empy-table-cell-with-background-color.html
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
cellHasContent should also be set to true incase background color is
present.
2013-12-10 Beth Dakin <bdakin@apple.com>
Horizontal rubber-banding without a horizontal scrollbar is distracting
https://bugs.webkit.org/show_bug.cgi?id=125550
Reviewed by Simon Fraser.
Setting the ScrollElasticity to ScrollElasticityAutomatic will make sure we only
rubber-band horizontally when there is a horizontal scrollbar.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
2013-12-10 Martin Robinson <mrobinson@igalia.com>
Correct a preprocessor guard from a mis-merged patch
In r160367, I mismerged a patch from Gustavo Noronha. This commit
fixes the merge and thus fixes the CMake build.
* html/HTMLMediaElement.idl: Move the preprocessor guard to the correct property.
2013-12-10 Rob Buis <rob.buis@samsung.com>
Clean up SVGScriptElement
https://bugs.webkit.org/show_bug.cgi?id=125527
Reviewed by Sam Weinig.
Rewrite to not store type in m_type and also remove type getter/setter.
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::parseAttribute):
(WebCore::SVGScriptElement::typeAttributeValue):
* svg/SVGScriptElement.h:
* svg/SVGScriptElement.idl:
2013-12-10 Laszlo Vidacs <lac@inf.u-szeged.hu>
Use std::array when computing MD5 checksum
https://bugs.webkit.org/show_bug.cgi?id=125509
Reviewed by Anders Carlsson.
Use MD5::Digest type and MD5::hashSize when computing MD5 checksum.
* platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::generateBaseFilename):
2013-12-10 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Expose splitter elements with ATK_ROLE_SEPARATOR
https://bugs.webkit.org/show_bug.cgi?id=125522
Reviewed by Chris Fleizach.
Expose objects with SplitterRole role as ATK_ROLE_SEPARATOR.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
2013-12-10 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Elements with role 'alertdialog' should be ATK_ROLE_ALERT
https://bugs.webkit.org/show_bug.cgi?id=125521
Reviewed by Chris Fleizach.
Stop exposing alert dialogs as ATK_ROLE_DIALOG and do it as
ATK_ROLE_ALERT instead.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
2013-12-10 Brendan Long <b.long@cablelabs.com>
[GTK][GStreamer] media/video-preload.html is flakily crashing on WK2
https://bugs.webkit.org/show_bug.cgi?id=125411
Reviewed by Philippe Normand.
No new tests because this fixes flakeyness in existing tests (media/video-preload.html, and various tests in media/track/{audio,in-band,video}).
* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkitTextCombinerPadGetProperty): Copy tag list to prevent concurrent modification problems.
(webkitTextCombinerPadEvent): Add locking.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer): Call tagsChanged() because we need it to setup m_tags.
(WebCore::TrackPrivateBaseGStreamer::disconnect): Clear m_tags.
(WebCore::TrackPrivateBaseGStreamer::tagsChanged): Lookup the tags while we're in this callback, because it's the only time we can guarantee that the input-selector won't unref them.
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Use m_tags.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Add m_tags and a mutex.
2013-12-10 László Langó <lango@inf.u-szeged.hu>
PageConsole::addMessage should automatically determine column number alongside line number
https://bugs.webkit.org/show_bug.cgi?id=114319
Reviewed by Joseph Pecoraro.
* dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::InlineStyleSheetOwner):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::ScriptElement):
* dom/ScriptableDocumentParser.h:
* dom/StyledElement.cpp:
(WebCore::StyledElement::styleAttributeChanged):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
* html/parser/HTMLDocumentParser.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::buildInitiatorObject):
* page/Console.cpp:
(WebCore::internalAddMessage):
* page/PageConsole.cpp:
(WebCore::PageConsole::printSourceURLAndPosition):
(WebCore::PageConsole::addMessage):
* page/PageConsole.h:
* xml/parser/XMLDocumentParser.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::error):
2013-12-10 Andreas Kling <akling@apple.com>
Jettison all StyleResolver data on memory pressure.
<https://webkit.org/b/125498>
The StyleResolver can be rebuilt relatively quickly; we already
have an optimization that discards it some time after last use.
If we find ourseles under serious memory pressure, don't wait for
the timer to kick in, throw everything overboard right away.
~5MB progression post-pressure on Membuster3.
Reviewed by Anders Carlsson.
2013-12-10 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Add support for building the DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=116375
Reviewed by Gustavo Noronha Silva.
The CMake build is more complete than the autotools counterpart, so autotools doesn't consider
some supplemental IDL attributes when building the DOM bindings. To prevent API breaks we should
protect these attributes from DOM binding generation.
* Modules/battery/BatteryManager.idl: Protect non-GObject DOM bound methods by C preprocessor checks.
* Modules/battery/NavigatorBattery.idl: Ditto.
* Modules/mediastream/HTMLMediaElementMediaStream.idl: Ditto.
* Modules/networkinfo/NavigatorNetworkInfoConnection.idl: Ditto.
* Modules/networkinfo/NetworkInfoConnection.idl: Ditto.
* PlatformGTK.cmake: Add build steps for building the bindings.
* dom/Document.idl: Protect non-GObject DOM bound methods by C preprocessor checks.
* html/HTMLMediaElement.idl: Ditto.
2013-12-10 Martin Robinson <mrobinson@igalia.com>
Various fixes for the CMake GTK+ build
Reviewed by Gustavo Noronha.
* PlatformGTK.cmake: Update source list.
2013-12-10 Robert Sipka <sipka@inf.u-szeged.hu>
[nix][curl] Buildfix after r160310
https://bugs.webkit.org/show_bug.cgi?id=125489
Reviewed by Gustavo Noronha Silva.
Curl doesn't include soup files.
* PlatformNix.cmake:
2013-12-10 Gustavo Noronha Silva <gns@gnome.org>
[GTK] REGRESSION: www.yahoo.com redirects to the mobile version after UA change
https://bugs.webkit.org/show_bug.cgi?id=125444
Reviewed by Martin Robinson.
* platform/gtk/UserAgentGtk.cpp:
(WebCore::platformVersionForUAString): more correctly pretend we're Mac OS X.
(WebCore::standardUserAgent): ditto.
2013-12-09 Gustavo Noronha Silva <gns@gnome.org>
[Soup] Send original encoded data size to didReceiveBuffer
https://bugs.webkit.org/show_bug.cgi?id=125410
Reviewed by Martin Robinson.
No tests, the only way to test this seems to be through the inspector UI.
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal): data member to track stream
position.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::currentStreamPosition): obtains the current stream position by querying
the first seekable input stream we find.
(WebCore::nextMultipartResponsePartCallback): store the position before we start reading a new part.
(WebCore::sendRequestCallback): store the position before we start reading the response body.
(WebCore::readCallback): pass the position delta to didReceiveData.
2013-12-09 Andreas Kling <akling@apple.com>
Clear out font width measurement caches on memory pressure.
<https://webkit.org/b/125481>
The data kept in WidthCaches can be regenerated on demand. Throwing
it away when we're under memory pressure buys us ~4MB on Membuster3.
Reviewed by Antti Koivisto.
2013-12-09 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove enabled() in InspectorRuntimeAgent.
https://bugs.webkit.org/show_bug.cgi?id=125476
Reviewed by Joseph Pecoraro.
Dead code. It's never called anywhere.
No new tests, no behavior change.
* inspector/InspectorRuntimeAgent.h:
2013-12-09 Sam Weinig <sam@webkit.org>
Replace use of WTF::FixedArray with std::array
https://bugs.webkit.org/show_bug.cgi?id=125475
Reviewed by Anders Carlsson.
* crypto/parameters/CryptoAlgorithmAesCbcParams.h:
* platform/graphics/GlyphMetricsMap.h:
2013-12-09 Benjamin Poulain <bpoulain@apple.com>
Refactor the CFURLConnectionClient to be the synchronous implementation of an abstract network delegate
https://bugs.webkit.org/show_bug.cgi?id=125379
Reviewed by Alexey Proskuryakov.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp: Added.
(WebCore::ResourceHandleCFURLConnectionDelegate::ResourceHandleCFURLConnectionDelegate):
(WebCore::ResourceHandleCFURLConnectionDelegate::~ResourceHandleCFURLConnectionDelegate):
(WebCore::ResourceHandleCFURLConnectionDelegate::willSendRequestCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveResponseCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveDataCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::didFinishLoadingCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::didFailCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::willCacheResponseCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveChallengeCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::didSendBodyDataCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::shouldUseCredentialStorageCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::canRespondToProtectionSpaceCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveDataArrayCallback):
(WebCore::ResourceHandleCFURLConnectionDelegate::makeConnectionClient):
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.h: Added.
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp: Added.
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::SynchronousResourceHandleCFURLConnectionDelegate):
(WebCore::synthesizeRedirectResponseIfNecessary):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFinishLoading):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFail):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willCacheResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveChallenge):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didSendBodyData):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::shouldUseCredentialStorageCallback):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::canRespondToProtectionSpace):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveDataArray):
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h: Added.
2013-12-09 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r136280): input[type=image] should assume coords of 0,0 when activated without physically clicking
https://bugs.webkit.org/show_bug.cgi?id=125392
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/3c33d42207cd209bb171083ba66c225f694f2101
Activating an image button with the keyboard or element.click() should result in selected coords of (0,0) per
http://www.w3.org/TR/2013/CR-html5-20130806/forms.html#image-button-state-(type=image)
"If the user activates the control without explicitly selecting a coordinate, then the coordinate (0,0) must be assumed."
New behavior also matches that of Internet Explorer and Firefox.
Tests: fast/forms/input-image-submit.html
* html/ImageInputType.cpp:
(WebCore::ImageInputType::handleDOMActivateEvent): Set m_clickLocation to (0, 0) for simulated events.
2013-12-09 Jer Noble <jer.noble@apple.com>
[MSE] Add support for VideoPlaybackMetrics.
https://bugs.webkit.org/show_bug.cgi?id=125380
Reviewed by Eric Carlson.
Test: media/media-source/media-source-video-playback-quality.html
Add a new object type VideoPlaybackQuality to be returned by
HTMLMediaElement.getVideoPlaybackQuality().
HTMLMediaElements must separately track a droppedVideoFrame count, as
certain operations on SourceBuffer will drop incoming frames, which must
be accounted for. Reset this count when the media engine changes, which is
indicitive of a new media load requset starting.
Add the new VideoPlaybackQuality class:
* Modules/mediasource/VideoPlaybackQuality.cpp: Added.
(WebCore::VideoPlaybackQuality::create):
(WebCore::VideoPlaybackQuality::VideoPlaybackQuality):
* Modules/mediasource/VideoPlaybackQuality.h: Added.
(WebCore::VideoPlaybackQuality::creationTime):
(WebCore::VideoPlaybackQuality::totalVideoFrames):
(WebCore::VideoPlaybackQuality::droppedVideoFrames):
(WebCore::VideoPlaybackQuality::corruptedVideoFrames):
(WebCore::VideoPlaybackQuality::totalFrameDelay):
* Modules/mediasource/VideoPlaybackQuality.idl: Added.
Add support for the new class to HTMLMediaElement:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::shouldUseVideoPluginProxy):
(HTMLMediaElement::getVideoPlaybackQuality):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
Report the video quality metrics from the MediaPlayer:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::totalVideoFrames):
(WebCore::MediaPlayer::droppedVideoFrames):
(WebCore::MediaPlayer::corruptedVideoFrames):
(WebCore::MediaPlayer::totalFrameDelay):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::totalVideoFrames):
(WebCore::MediaPlayerPrivateInterface::droppedVideoFrames):
(WebCore::MediaPlayerPrivateInterface::corruptedVideoFrames):
(WebCore::MediaPlayerPrivateInterface::totalFrameDelay):
Correctly report the dropped frame count:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::TrackBuffer::TrackBuffer): needsRandomAccessFlag defaults to true.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Check the sync status of the incoming sample.
(WebCore::SourceBuffer::didDropSample): Notify the media element of a dropped frame.
* Modules/mediasource/SourceBuffer.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(HTMLMediaElement::mediaPlayerEngineUpdated): Reset m_droppedFrameCount.
(HTMLMediaElement::getVideoPlaybackQuality): Return a new VideoPlaybackQuality object.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::incrementDroppedFrameCount): Simple incrementer.
* platform/MediaSample.h:
(WebCore::MediaSample::isSync): Convenience function.
(WebCore::MediaSample::isNonDisplaying): Ditto.
Add support in the AVFoundation MediaSource Engine:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::totalVideoFrames):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::droppedVideoFrames):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::corruptedVideoFrames):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::totalFrameDelay):
Add support in the Mock MediaSource Engine:
* platform/mock/mediasource/MockBox.h:
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::totalVideoFrames): Simple accessor.
(WebCore::MockMediaPlayerMediaSource::droppedVideoFrames): Ditto.
(WebCore::MockMediaPlayerMediaSource::corruptedVideoFrames): Ditto.
(WebCore::MockMediaPlayerMediaSource::totalFrameDelay): Ditto.
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate):
* platform/mock/mediasource/MockMediaSourcePrivate.h:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::enqueueSample): Increment the frame counts based on
the incoming sample.
* platform/mock/mediasource/MockSourceBufferPrivate.h:
Add the new files to the project:
* bindings/gobject/GNUmakefile.am:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* GNUMakefile.list.am:
* CMakeLists.txt:
2013-12-09 Simon Fraser <simon.fraser@apple.com>
Avoid divide by zero in scrollbar code, and protect against Obj-C exceptions
https://bugs.webkit.org/show_bug.cgi?id=125469
<rdar://problem/15535772>
Reviewed by Beth Dakin.
In ScrollbarThemeMac::setPaintCharacteristicsForScrollbar(), proportion could
end up as NaN if scrollbar->totalSize() were zero. Protect against that.
Also wrap functions that call into Objective-C with BEGIN_BLOCK_OBJC_EXCEPTIONS/
END_BLOCK_OBJC_EXCEPTIONS.
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::scrollbarThickness):
(WebCore::ScrollbarThemeMac::updateScrollbarOverlayStyle):
(WebCore::ScrollbarThemeMac::minimumThumbLength):
(WebCore::ScrollbarThemeMac::updateEnabledState):
(WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):
(WebCore::scrollbarPainterPaint):
2013-12-09 Ryosuke Niwa <rniwa@webkit.org>
Implement Document.cloneNode()
https://bugs.webkit.org/show_bug.cgi?id=11646
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/dc7879025e01d63be9fcf6a84ca6c9b8b5768a80
Implement the behavior specified in the current DOM4 working draft:
http://www.w3.org/TR/2013/WD-dom-20131107/#dom-node-clonenode
Tests: fast/dom/Document/clone-node.html
fast/dom/HTMLDocument/clone-node-quirks-mode.html
svg/custom/clone-node.html
* dom/Document.cpp:
(WebCore::Document::cloneNode):
(WebCore::Document::cloneDocumentWithoutChildren):
(WebCore::Document::cloneDataFromDocument):
* dom/Document.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::cloneDocumentWithoutChildren):
* html/HTMLDocument.h:
* svg/SVGDocument.cpp:
(WebCore::SVGDocument::cloneDocumentWithoutChildren):
* svg/SVGDocument.h:
2013-12-09 Andreas Kling <akling@apple.com>
REGRESSION(r160260): Memory pressure signal causes web process to hang.
<https://webkit.org/b/125465>
Reviewed by Tim Horton.
This command caused all of my web processes to hang:
notifyutil -p org.WebKit.lowMemory
This only happens when the cache pruning code encounters a resource
using purgeable memory.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneLiveResourcesToSize):
Grab the next CachedResource pointer before continuing the loop.
2013-12-09 peavo@outlook.com <peavo@outlook.com>
[WinCairo] OpenGL compile error.
https://bugs.webkit.org/show_bug.cgi?id=125383
Reviewed by Darin Adler.
* platform/graphics/opengl/Extensions3DOpenGLES.h: Define GL_HALF_FLOAT_ARB on Windows when OPENGL_ES_2 is used.
2013-12-09 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Fix handling of 'inherit' and 'initial' for grid lines.
https://bugs.webkit.org/show_bug.cgi?id=125223
Reviewed by Darin Adler.
'initial' and 'inherit' are always allowed values for CSS properties.
As the CSSParser handles them automatically, those 2 values were never
taken care of in StyleResolver, leading to crashes.
Added tests cases for 'inherit' and 'initial' to the following tests:
fast/css-grid-layout/grid-item-column-row-get-set.html
fast/css-grid-layout/grid-item-end-after-get-set.html
fast/css-grid-layout/grid-item-start-before-get-set.html
Patch backported from Blink: https://src.chromium.org/viewvc/blink?revision=149257&view=revision
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
* rendering/style/StyleGridItemData.cpp:
(WebCore::StyleGridItemData::StyleGridItemData):
2013-12-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inspector.json and CodeGenerator tweaks
https://bugs.webkit.org/show_bug.cgi?id=125321
Reviewed by Timothy Hatcher.
* inspector/protocol/Runtime.json:
Runtime.js was depending on Network.FrameId. This is a layering
violation, so ideally we can fix this later. For now, just copy
the FrameId type into Runtime. They are strings so all is good.
* inspector/CodeGeneratorInspector.py:
(Generator.EventMethodStructTemplate.append_epilog):
* inspector/CodeGeneratorInspectorStrings.py:
Improve --help usage information.
Make the script work with a single domain json file.
Add ASCIILiteral's where appropriate.
2013-12-09 Nick Diego Yamane <nick.yamane@openbossa.org>
[Nix] Fix file name typo in PlatformNix.cmake
https://bugs.webkit.org/show_bug.cgi?id=125457
Reviewed by Gustavo Noronha Silva.
Wrong file name introduced in http://trac.webkit.org/changeset/160310.
* PlatformNix.cmake:
2013-12-09 Brendan Long <b.long@cablelabs.com>
[GStreamer] Memory leak due to incorrect use of gst_tag_list_merge in TextCombinerGStreamer
https://bugs.webkit.org/show_bug.cgi?id=125452
Reviewed by Philippe Normand.
No new tests because this fixes a memory leak.
* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkitTextCombinerPadEvent): Use gst_tag_list_insert instead of gst_tag_list_merge, since we don't want to create a new list.
2013-12-09 Chris Fleizach <cfleizach@apple.com>
AX: WebKit ignores @alt on IMG elements with role="text"
https://bugs.webkit.org/show_bug.cgi?id=125363
Reviewed by Mario Sanchez Prada.
If an <img> element has a different role, the alt attribute should still be used in the
name calculation if present.
Test: accessibility/alt-tag-on-image-with-nonimage-role.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::usesAltTagForTextComputation):
(WebCore::AccessibilityNodeObject::alternativeText):
(WebCore::AccessibilityNodeObject::accessibilityDescription):
(WebCore::AccessibilityNodeObject::text):
* accessibility/AccessibilityNodeObject.h:
2013-12-08 Martin Robinson <mrobinson@igalia.com>
[WK2][Soup] Use didReceiveBuffer instead of didReceiveData
https://bugs.webkit.org/show_bug.cgi?id=118598
Reviewed by Gustavo Noronha Silva.
Original patch by Kwang Yul Seo <skyul@company100.net> and Csaba Osztrogonác <ossy@webkit.org>.
Switch from using didReceiveData to didReceiveBuffer for the Soup backend and
let SharedBuffer wrap a SoupBuffer. This is necessary because the NetworkProcess
only supports getting data via SharedBuffer.
* GNUmakefile.list.am: Add the new SharedBufferSoup.cpp file to the list.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformNix.cmake:
* platform/SharedBuffer.cpp: We no longer used the no-op version of the platformFoo methods.
* platform/SharedBuffer.h: Ditto.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: Use didReceiveBuffer instead of didReceiveData.
* platform/network/ResourceHandleInternal.h: Have only a m_soupBuffer member instead of three to manage the buffer.
* platform/network/soup/GOwnPtrSoup.cpp: Add support for SoupBuffer.
* platform/network/soup/GOwnPtrSoup.h: Ditto.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveData): ASSERT_NOT_REACHED here, since it should never be
called now.
(WebCore::WebCoreSynchronousLoader::didReceiveBuffer): Handle this call properly.
(WebCore::ResourceHandle::ensureReadBuffer): Now we package up our buffer into a SoupBuffer.
(WebCore::redirectSkipCallback): Use the new m_soupBuffer member.
(WebCore::cleanupSoupRequestOperation): Ditto.
(WebCore::nextMultipartResponsePartCallback): Ditto.
(WebCore::sendRequestCallback): Ditto.
(WebCore::readCallback):
* platform/soup/SharedBufferSoup.cpp: Added.
2013-12-09 Michal Poteralski <m.poteralski@samsung.com>
DataCloneError exception is not thrown when postMessage's second parameter is the source
port or the target port.
https://bugs.webkit.org/show_bug.cgi?id=124708
Reviewed by Alexey Proskuryakov.
According to specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#dom-window-postmessage
If the method was invoked with a second argument transfer then if any of the objects in the
transfer are either the source port or the target port (if any), then a DataCloneError
exception should be thrown. Currently an InvalidStateError exception is thrown what is an
incorrect behaviour.
The proposed solution is change to the correct the exception value.
Tests: fast/dom/Window/postMessage-clone-port-error.html
* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage): Improve exception value
2013-12-09 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix the GTK+ build with NetworkProcess enabled.
* GNUmakefile.list.am: Add missing file to compilation.
2013-12-08 Ryosuke Niwa <rniwa@webkit.org>
getComputedStyle border-radius shorthand omits vertical radius information
https://bugs.webkit.org/show_bug.cgi?id=125394
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/4c2866855dddbb28bb7d978ad627acc368af23d0
getComputedStyle of border-radius shows the vertical radius components if they differ from their horizontal counterpants.
We were incorrectly detecting this case and over simplifying the results of getComputedStyle.
This patch ensures we only hide the vertical values if they are identical to the horizontal values.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::getBorderRadiusShorthandValue):
2013-12-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Do not skip attributes with only custom setter
https://bugs.webkit.org/show_bug.cgi?id=125417
Reviewed by Gustavo Noronha Silva.
For attributes with a custom setter, we now generate the code as a
read-only attribute with a getter method, unless it also has a
custom getter in which case the attribute is skipped.
* bindings/gobject/GNUmakefile.am: Generate WebKitDOMMediaController
that is now required by an attribute having a custom setter.
* bindings/gobject/WebKitDOMCustom.cpp: Remove methods that are now generated.
* bindings/gobject/WebKitDOMCustom.h: Ditto.
* bindings/gobject/WebKitDOMCustom.symbols: Ditto.
* bindings/gobject/webkitdom.symbols: Add new symbols.
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipAttribute): Do not skip attributes having a custom setter.
(GetWriteableProperties): Do not include attributes having a
custom setter.
(GenerateProperty): Do not return early for attributes having
custom setter.
(GenerateFunctions): Do not generate setter for attributes having
a custom setter.
2013-12-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Do not generate new dispatch_event methods marked as deprecated
https://bugs.webkit.org/show_bug.cgi?id=125416
Reviewed by Gustavo Noronha Silva.
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction): Skip dispatch_event methods for objects
implementing EventTarget interface unless they are already
deprecated.
(GenerateFunction): Pass also the parentNode to SkipFunction().
2013-12-05 Jer Noble <jer.noble@apple.com>
[MSE] Bring end-of-stream algorithm section up to current spec.
https://bugs.webkit.org/show_bug.cgi?id=125270
Reviewed by Darin Adler.
Test: media/media-source/media-source-end-of-stream.html
Separate the "endOfStream()" method from the "end of stream algorithm".
* Modules/mediasource/MediaSource.cpp:
(WebCore::SourceBufferIsUpdating): Added predicate function.
(WebCore::MediaSource::endOfStream): Call streamEndedWithError().
(WebCore::MediaSource::streamEndedWithError): Added.
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferTimerFired): Call streamEndedWithError().
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
* Modules/mediasource/SourceBuffer.h:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::mediaLoadingFailedFatally): Renamed from mediaEngineError.
(HTMLMediaElement::mediaLoadingFailed): Call renamed method.
* html/HTMLMediaElement.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::markEndOfStream): Set load state to Loaded.
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::setNetworkState): Simple setter.
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Set the intitial duration to NaN.
(WebCore::MockMediaSourcePrivate::markEndOfStream): Set load state to Loaded.
2013-12-04 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Crash when removing MediaSource from HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=125269
Reviewed by Sam Weinig.
Fixes the media/media-source/media-source-fastseek.html test when run with MallocScribble enabled.
It's possible for a SourceBufferPrivateAVFObjC to outlive its MediaSourcePrivateAVFObjC, so
make sure to clear the pointer from the former to the latter when the latter is destroyed.
That means we now have to check to see if the pointer to the latter is still valid at every
call site.
As a drive-by fix, rename m_parent to m_mediaSource to more accurately reflect what the pointer
points to.
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::~MediaSourcePrivateAVFObjC): Clear the SourceBuffer's backpointer.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
(WebCore::SourceBufferPrivateAVFObjC::clearMediaSource):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC): Rename m_parent -> m_mediaSource.
(WebCore::SourceBufferPrivateAVFObjC::append): Check m_mediaSource before calling.
(WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::readyState): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::setReadyState): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::setActive): Ditto.
* platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::~MockMediaSourcePrivate): Clear the SourceBuffer's backpointer.
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::MockSourceBufferPrivate): Rename m_parent -> m_mediaSource.
(WebCore::MockSourceBufferPrivate::removedFromMediaSource): Check m_mediaSource before calling.
(WebCore::MockSourceBufferPrivate::readyState): Ditto.
(WebCore::MockSourceBufferPrivate::setReadyState): Ditto.
(WebCore::MockSourceBufferPrivate::setActive): Ditto.
* platform/mock/mediasource/MockSourceBufferPrivate.h:
(WebCore::MockSourceBufferPrivate::clearMediaSource):
2013-12-07 Zoltan Horvath <zoltan@webkit.org>
Remove statusWithDirection static function from RenderBlockLineLayout
https://bugs.webkit.org/show_bug.cgi?id=125372
Reviewed by Andreas Kling.
I run into a FIXME about using BidiStatus constructor rather than statusWithDirection,
once it's implemented. BidiStatus has got the appropriate constructor now, so I removed
statusWithDirection and updated the code to use the constructor of BidiStatus.
No new tests, no behavior change.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForSegment):
2013-12-07 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed. Build fix for gtk port after r160260.
* loader/cache/CachedImage.h: Add missing a header.
2013-12-07 Gustavo Noronha Silva <gns@gnome.org>
ubuntu software center hits _XReadEvents() error
https://bugs.webkit.org/show_bug.cgi?id=123480
Reviewed by Martin Robinson.
* platform/gtk/WidgetBackingStoreGtkX11.cpp:
(WebCore::WidgetBackingStoreGtkX11::~WidgetBackingStoreGtkX11): clear the surface
before freeing the associated pixmap.
2013-12-06 Tim Horton <timothy_horton@apple.com>
[mac] Keep around more decoded image data, since it's purgeable
https://bugs.webkit.org/show_bug.cgi?id=125273
<rdar://problem/13205438>
Unreviewed patch to fix review comments...
* platform/graphics/BitmapImage.h:
Dan noticed that these return statements were improperly indented.
2013-12-05 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Disable AVFoundation when enabling the MockMediaPlayerMediaSource.
https://bugs.webkit.org/show_bug.cgi?id=125338
Reviewed by Darin Adler.
The MediaSource API has some assumptions which break if more than one installed
media engine supports MediaSources at the same time. So when enabling the mock
media source engine in DRT or WKTR, disable AVFoundation so that only the mock
engine will support media source loading.
* testing/Internals.cpp:
(WebCore::Internals::initializeMockMediaSource):
2013-12-06 Antti Koivisto <antti@apple.com>
Use NeverDestroyed instead of DEFINE_STATIC_LOCAL
Reviewed by Anders Carlsson.
* rendering/RenderText.cpp:
(WebCore::originalTextMap):
2013-12-05 Jer Noble <jer.noble@apple.com>
[MSE] Add a runtime-setting for the MediaSource constructor.
https://bugs.webkit.org/show_bug.cgi?id=125336
Reviewed by Eric Carlson.
Add a Setting to enable the MediaSource constructor.
* Modules/mediasource/MediaSource.idl:
* page/Settings.in:
2013-12-06 Tim Horton <timothy_horton@apple.com>
[mac] Keep around more decoded image data, since it's purgeable
https://bugs.webkit.org/show_bug.cgi?id=125273
<rdar://problem/13205438>
Reviewed by Simon Fraser.
No new tests, just an optimization.
Instead of throwing away decoded image data eagerly, allow the operating
system to manage the memory via the standard purgeability mechanism,
where it can.
This improves the performance on some pathological cases (extremely large
animated GIFs) by up to 8x.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::pruneLiveResourcesToSize):
Don't prune live resources' decoded data if it is purgeable.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedDataIfNecessary):
Don't eagerly throw away decoded image data if it's purgeable.
* loader/cache/CachedImage.h:
* loader/cache/CachedResource.h:
(WebCore::CachedResource::decodedDataIsPurgeable):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:
(WebCore::Image::decodedDataIsPurgeable):
2013-12-06 Antti Koivisto <antti@apple.com>
Save original text for RenderText to a map
https://bugs.webkit.org/show_bug.cgi?id=125278
Reviewed by Darin Adler.
Currently the original text is fetched from the Text node. This is one of the few things
where we use the RenderText node pointer and is stopping Text nodes from being anonymous.
It is very rare of original text to differ from the actual text so we can just squirrel the
original to a map when it differs. This is also simplifies the code.
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::styleDidChange):
(WebCore::RenderQuote::updateDepth):
* rendering/RenderText.cpp:
(WebCore::originalTextMap):
(WebCore::RenderText::RenderText):
(WebCore::RenderText::~RenderText):
(WebCore::RenderText::styleDidChange):
(WebCore::RenderText::originalText):
(WebCore::RenderText::setTextInternal):
(WebCore::RenderText::setText):
* rendering/RenderText.h:
* rendering/RenderTextFragment.cpp:
* rendering/RenderTextFragment.h:
2013-12-04 Jer Noble <jer.noble@apple.com>
[MSE] Refactor MediaSourceBase back into MediaSource
https://bugs.webkit.org/show_bug.cgi?id=125245
Reviewed by Eric Carlson.
Now that the legacy WebKitMediaSource has been removed, there is no reason to have
a separate MediaSource and MediaSourceBase. Re-integrate the two.
Copy all the methods from MediaSource into MediaSourceBase, and rename the class MediaSource:
* Modules/mediasource/MediaSource.cpp: Copied from MediaSourceBase.cpp.
(WebCore::MediaSource::create): Copied from MediaSource.cpp.
(WebCore::MediaSource::addSourceBuffer): Ditto.
(WebCore::MediaSource::removeSourceBuffer): Ditto.
(WebCore::MediaSource::isTypeSupported): Ditto.
(WebCore::MediaSource::eventTargetInterface): Ditto.
(WebCore::MediaSource::sourceBufferDidChangeAcitveState): Ditto.
* Modules/mediasource/MediaSource.h: Copied from MediaSourceBase.h.
(WebCore::MediaSource::sourceBuffers): Copied from MediaSource.h.
(WebCore::MediaSource::activeSourceBuffers): Copied from MediaSource.h.
* Modules/mediasource/MediaSourceBase.cpp: Removed.
* Modules/mediasource/MediaSourceBase.h: Removed.
Change all references to MediaSourceBase into MediaSource:
* Modules/mediasource/DOMURLMediaSource.cpp:
(WebCore::DOMURLMediaSource::createObjectURL):
* Modules/mediasource/DOMURLMediaSource.h:
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::registerURL):
(WebCore::MediaSourceRegistry::unregisterURL):
* Modules/mediasource/MediaSourceRegistry.h:
Remove MediaSourceBase.cpp/h from the project file:
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:
2013-12-06 Eric Carlson <eric.carlson@apple.com>
r159827 broke plug-in snapshotting
https://bugs.webkit.org/show_bug.cgi?id=125365
Reviewed by Dean Jackson.
No new tests, covered by existing tests.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Return early if there is NOT
a page, not if there IS a page.
2013-12-06 Roger Fong <roger_fong@apple.com> and Brent Fulgham <bfulgham@apple.com>
[Win] Support compiling with VS2013
https://bugs.webkit.org/show_bug.cgi?id=125353
Reviewed by Anders Carlsson.
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create): Use nullptr
(WebCore::LegacyWebArchive::createFromSelection): Ditto
2013-11-15 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Add a new MSE-compatible MediaPlayerPrivate implementation, MediaPlayerPrivateMediaSourceAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=123378
Reviewed by Eric Carlson.
Add an AVFoundation implementation of MediaPlayerPrivate which creates and uses
MediaSourcePrivate and SourceBufferPrivate subclasses.
Add the new media engine to the list of installed engines:
* platform/MediaSample.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines):
* platform/graphics/MediaPlayer.h:
Add the new files to the project:
* WebCore.xcodeproj/project.pbxproj:
Drive by fix for ports who implement seekDouble():
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::seekWithTolerance):
Add new Video and AudioTrackPrivate types which handle their own enable state:
* platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp: Added
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::AudioTrackPrivateMediaSourceAVFObjC):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::setAssetTrack):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::assetTrack):
(WebCore::AudioTrackPrivateMediaSourceAVFObjC::setEnabled):
* platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h: Added
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.cpp: Added.
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::VideoTrackPrivateMediaSourceAVFObjC):
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::setAssetTrack):
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::assetTrack):
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::setSelected):
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h: Added.
Add a new MediaPlayerPrivate which can handle MediaSource objects:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: Added.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: Added.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::create):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::getSupportedTypes):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cancelLoad):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::prepareToPlay):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::platformMedia):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::platformLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pauseInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paused):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsScanning):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::naturalSize):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::hasVideo):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::hasAudio):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVisible):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::startTimeDouble):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initialTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seeking):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setRateDouble):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::networkState):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::readyState):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::maxTimeSeekableDouble):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::minTimeSeekable):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::didLoadingProgress):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setSize):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paint):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::hasAvailableVideoFrame):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsAcceleratedRendering):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::acceleratedRenderingStateChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::movieLoadType):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::prepareForRendering):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::engineDescription):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::languageOfPrimaryAudioTrack):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::extraMemoryCost):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateDuration):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateStates):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setNetworkState):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer):
Add a new MediaSourcePrivate implementation:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: Added.
(WebCore::MediaSourcePrivateAVFObjC::player):
(WebCore::MediaSourcePrivateAVFObjC::activeSourceBuffers):
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: Added.
(WebCore::MediaSourcePrivateAVFObjC::create):
(WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC):
(WebCore::MediaSourcePrivateAVFObjC::~MediaSourcePrivateAVFObjC):
(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
(WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer):
(WebCore::MediaSourcePrivateAVFObjC::duration):
(WebCore::MediaSourcePrivateAVFObjC::setDuration):
(WebCore::MediaSourcePrivateAVFObjC::markEndOfStream):
(WebCore::MediaSourcePrivateAVFObjC::unmarkEndOfStream):
(WebCore::MediaSourcePrivateAVFObjC::readyState):
(WebCore::MediaSourcePrivateAVFObjC::setReadyState):
(WebCore::MediaSourcePrivateAVFObjC::sourceBufferPrivateDidChangeActiveState):
(WebCore::MediaSourcePrivateAVFObjCHasAudio):
(WebCore::MediaSourcePrivateAVFObjC::hasAudio):
(WebCore::MediaSourcePrivateAVFObjCHasVideo):
(WebCore::MediaSourcePrivateAVFObjC::hasVideo):
(WebCore::MediaSourcePrivateAVFObjC::seekToTime):
Add a new SourceBufferPrivate implementation:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: Added.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: Added.
(-[WebAVStreamDataParserListener initWithParser:parent:WebCore::]):
(-[WebAVStreamDataParserListener dealloc]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
(-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]):
(WebCore::MediaSampleAVFObjC::create):
(WebCore::MediaSampleAVFObjC::~MediaSampleAVFObjC):
(WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):
(WebCore::MediaSampleAVFObjC::platformSample):
(WebCore::CMSampleBufferIsRandomAccess):
(WebCore::MediaSampleAVFObjC::flags):
(WebCore::MediaDescriptionAVFObjC::create):
(WebCore::MediaDescriptionAVFObjC::~MediaDescriptionAVFObjC):
(WebCore::MediaDescriptionAVFObjC::MediaDescriptionAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::create):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::didFailToParseStreamDataWithError):
(WebCore::callProcessCodedFrameForEachSample):
(WebCore::SourceBufferPrivateAVFObjC::didProvideMediaDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
(WebCore::SourceBufferPrivateAVFObjC::didReachEndOfTrackWithTrackID):
(WebCore::SourceBufferPrivateAVFObjC::setClient):
(WebCore::SourceBufferPrivateAVFObjC::append):
(WebCore::SourceBufferPrivateAVFObjC::abort):
(WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource):
(WebCore::SourceBufferPrivateAVFObjC::readyState):
(WebCore::SourceBufferPrivateAVFObjC::setReadyState):
(WebCore::SourceBufferPrivateAVFObjC::evictCodedFrames):
(WebCore::SourceBufferPrivateAVFObjC::isFull):
(WebCore::SourceBufferPrivateAVFObjC::hasVideo):
(WebCore::SourceBufferPrivateAVFObjC::hasAudio):
(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
(WebCore::createNonDisplayingCopy):
(WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples):
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):
(WebCore::SourceBufferPrivateAVFObjC::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateAVFObjC::setActive):
(WebCore::SourceBufferPrivateAVFObjC::fastSeekTimeForMediaTime):
(WebCore::SourceBufferPrivateAVFObjC::seekToTime):
* platform/mac/PlatformClockCM.h:
Add a SOFT_LINK_CLASS_OPTIONAL macro:
* platform/mac/SoftLinking.h:
2013-12-06 Alexey Proskuryakov <ap@apple.com>
Remove some duplicate checks from SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=125358
Reviewed by Geoffrey Garen.
There is no need to call inherits() before WebCore's toXXX(JSValue) functions.
Also, the result of toArrayBuffer() is a raw pointer, not a RefPtr (it's confusing
because toArrayBufferView returns a RefPtr).
* bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal):
2013-12-06 Tim Horton <timothy_horton@apple.com>
Remove Image::decodedSize()
https://bugs.webkit.org/show_bug.cgi?id=125327
Reviewed by Simon Fraser.
Missed a comment when removing this code.
* svg/graphics/SVGImage.h:
2013-12-06 Rob Buis <rob.buis@samsung.com>
[CSS Shapes] ShapeOutsideInfo needs to use the parent's writing mode when calculating offsets
https://bugs.webkit.org/show_bug.cgi?id=124680
Reviewed by Dirk Schulze.
Do not take the writing-mode property on the float into account for shape-outside.
Add a virtual method writingMode() in order to do this for shape-outside but
keep old behavior (element writingMode) for shape-inside.
Change existing test floats/shape-outside-floats-different-writing-modes.html to test the
new behavior.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::computedShape):
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::writingMode):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::writingMode):
* rendering/shapes/ShapeOutsideInfo.h:
2013-12-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove Staging Workaround
https://bugs.webkit.org/show_bug.cgi?id=125354
Reviewed by Timothy Hatcher.
* inspector/CodeGeneratorInspector.py:
2013-12-06 Joseph Pecoraro <pecoraro@apple.com>
Simplify ScriptFunctionCall by removing dead code.
https://bugs.webkit.org/show_bug.cgi?id=125274
Reviewed by Timothy Hatcher.
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptFunctionCall::call):
* bindings/js/ScriptFunctionCall.h:
2013-12-06 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebCore/rendering changes
https://bugs.webkit.org/show_bug.cgi?id=125239
Reviewed by Simon Fraser.
* WebCore.xcodeproj/project.pbxproj:
* rendering/InlineBox.cpp:
(WebCore::InlineBox::previousOnLineExists): Added.
* rendering/InlineBox.h:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintCompositionBackground): Modified to query RenderStyle
on iOS for the composition fill color. Added FIXME to make this platform-independent.
(WebCore::InlineTextBox::paintDecoration): Added iOS-specific decoration code.
(WebCore::lineStyleForMarkerType):
(WebCore::InlineTextBox::paintDocumentMarkers): Added iOS-specific code. Also, added
FIXME to make this code platform-independent.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint): Ditto.
(WebCore::positionForPointRespectingEditingBoundaries): Added iOS-specific code.
* rendering/RenderBlock.h: Changed access control of logical{Left, Right}SelectionOffset()
from private to protected so that these methods can be used from RenderImage::collectSelectionRects().
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderRadii): Added.
(WebCore::RenderBox::paintBoxDecorations): Added iOS-specific workaround. See <rdar://problem/6209763>
for more details.
(WebCore::RenderBox::computeRectForRepaint): Added iOS-specific code.
(WebCore::customContainingBlockWidth): Added; guarded by PLATFORM(IOS).
(WebCore::customContainingBlockHeight): Added; guarded by PLATFORM(IOS).
(WebCore::customContainingBlockLogicalWidth): Added; guarded by PLATFORM(IOS).
(WebCore::customContainingBlockLogicalHeight): Added; guarded by PLATFORM(IOS).
(WebCore::customContainingBlockAvailableLogicalHeight): Added; guarded by PLATFORM(IOS).
(WebCore::RenderBox::availableLogicalHeightUsing): Added iOS-specific code; calls customContainingBlockAvailableLogicalHeight().
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned): Added iOS-specific code; calls customContainingBlockLogicalWidth().
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned): Added iOS-specific code; calls customContainingBlockLogicalHeight().
(WebCore::RenderBox::layoutOverflowRectForPropagation): Added iOS-specific code.
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::stickyPositionOffset): Use FrameView::customFixedPositionLayoutRect()
instead of FrameView::viewportConstrainedVisibleContentRect().
* rendering/RenderButton.cpp:
(WebCore::RenderButton::layout): Added; iOS-specific. Includes FIXME comment.
See <rdar://problem/7675493> for more details.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange): Added iOS-specific code.
(WebCore::RenderElement::styleDidChange): Modified to only call areCursorsEqual() and
EventHandler::scheduleCursorUpdate() on a non-iOS port.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing): Added iOS-specific code.
(WebCore::RenderEmbeddedObject::setPluginUnavailabilityReason): This method has an empty implementation for iOS.
(WebCore::RenderEmbeddedObject::setPluginUnavailabilityReasonWithDescription): Ditto.
* rendering/RenderFileUploadControl.cpp:
(WebCore::nodeHeight):
(WebCore::RenderFileUploadControl::maxFilenameWidth): Added iOS-specific code.
(WebCore::RenderFileUploadControl::paintObject): Ditto.
(WebCore::RenderFileUploadControl::fileTextValue): Ditto.
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::positionFrames): Ditto; Also added FIXME comment as this code may not
be specific to iOS.
* rendering/RenderIFrame.h: Added iOS-specific workaround to RenderObject::renderName(). Added
FIXME comment to determine whether this workaround is still applicable.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionRects): Added; guarded by PLATFORM(IOS).
(WebCore::RenderImage::paintAreaElementFocusRing): This method has an empty implementation for iOS.
* rendering/RenderImage.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::absoluteQuadsForSelection): Added; guarded by PLATFORM(IOS).
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer): Added iOS-specific member initialization.
(WebCore::RenderLayer::~RenderLayer): Added iOS-specific code.
(WebCore::RenderLayer::willBeDestroyed): Added; iOS-specific.
(WebCore::RenderLayer::hasAcceleratedTouchScrolling): Ditto.
(WebCore::RenderLayer::handleTouchEvent): Ditto.
(WebCore::RenderLayer::registerAsTouchEventListenerForScrolling): Ditto.
(WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling): Ditto.
(WebCore::RenderLayer::updateNeedsCompositedScrolling): Added iOS-specific code as we use UIKit
to composite our scroll bars.
(WebCore::RenderLayer::scrollTo): Added iOS-specific code.
(WebCore::RenderLayer::scrollRectToVisible): Ditto.
(WebCore::RenderLayer::styleChanged): Modified to make use of the passed StyleDifference on iOS.
(WebCore::RenderLayer::visibleContentRect): Added; iOS-specific.
(WebCore::RenderLayer::didStartScroll): Ditto.
(WebCore::RenderLayer::didEndScroll): Ditto.
(WebCore::RenderLayer::didUpdateScroll): Ditto.
(WebCore::RenderLayer::invalidateScrollbarRect): Added iOS-specific code.
(WebCore::RenderLayer::invalidateScrollCornerRect): Ditto.
(WebCore::RenderLayer::verticalScrollbarWidth): Ditto.
(WebCore::RenderLayer::horizontalScrollbarHeight): Ditto.
(WebCore::RenderLayer::updateScrollableAreaSet): Ditto.
(WebCore::RenderLayer::updateScrollInfoAfterLayout): Add iOS-specific workaround with FIXME. See
<rdar://problem/15579797> for more details.
(WebCore::RenderLayer::paintOverflowControls): Added iOS-specific code.
(WebCore::RenderLayer::calculateClipRects): Ditto.
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Modified to not apply page scale on iOS
as we apply a page scale at a different time in the code.
(WebCore::RenderLayerBacking::layerWillBeDestroyed): Added; guarded by PLATFORM(IOS).
(WebCore::layerOrAncestorIsTransformedOrScrolling): Added iOS-specific variant with FIXME comment.
(WebCore::RenderLayerBacking::shouldClipCompositedBounds): Added iOS-specific code.
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Ditto.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Ditto.
(WebCore::RenderLayerBacking::registerScrollingLayers): Ditto.
(WebCore::RenderLayerBacking::updateScrollingLayers): Ditto.
(WebCore::RenderLayerBacking::containsPaintedContent): Call RenderLayer::hasBoxDecorationsOrBackground()
when building on iOS Simulator.
(WebCore::RenderLayerBacking::parentForSublayers): Added iOS-specific code and FIXME comment.
(WebCore::RenderLayerBacking::paintsIntoWindow): Opt-into coordinated graphics code path.
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect): Added iOS-specific code.
(WebCore::RenderLayerBacking::paintIntoLayer): Compile-out ASSERT_NOT_REACHED for iOS and added FIXME comment.
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::scheduleLayerFlush): Added iOS-specific code.
(WebCore::RenderLayerCompositor::chromeClient): Added; guarded by PLATFORM(IOS).
(WebCore::RenderLayerCompositor::flushPendingLayerChanges): Added iOS-specific code.
(WebCore::scrollbarHasDisplayNone): Added; iOS-specific.
(WebCore::updateScrollingLayerWithClient): Ditto.
(WebCore::RenderLayerCompositor::updateCustomLayersAfterFlush): Ditto.
(WebCore::RenderLayerCompositor::didFlushChangesForLayer): Added iOS-specific code.
(WebCore::RenderLayerCompositor::didChangeVisibleRect): Ditto.
(WebCore::RenderLayerCompositor::addToOverlapMap): Don't apply page scale factor on iOS. We apply
the page scale factor at a different time in the code. Also, added FIXME comment.
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Added iOS-specific workaround.
See <rdar://problem/8348337> for more details.
(WebCore::RenderLayerCompositor::setIsInWindow): Use non-Mac code path for iOS.
(WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames): Added iOS-specific code.
(WebCore::RenderLayerCompositor::requiresCompositingLayer): Ditto.
(WebCore::RenderLayerCompositor::requiresOwnBackingStore): Ditto.
(WebCore::RenderLayerCompositor::reasonsForCompositing): Ditto.
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation): Opt-into calling
AnimationController::isRunningAnimationOnRenderer() on iOS.
(WebCore::RenderLayerCompositor::requiresCompositingForScrolling): Added; guarded by PLATFORM(IOS).
(WebCore::isStickyInAcceleratedScrollingLayerOrViewport): Added iOS-specific code.
(WebCore::isViewportConstrainedFixedOrStickyLayer): Ditto.
(WebCore::RenderLayerCompositor::requiresCompositingForPosition): Use FrameView::customFixedPositionLayoutRect()
instead of FrameView::viewportConstrainedVisibleContentRect().
(WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles): Ditto.
(WebCore::RenderLayerCompositor::ensureRootLayer): Ditto.
(WebCore::RenderLayerCompositor::computeFixedViewportConstraints): Use FrameView::customFixedPositionLayoutRect()
instead of FrameView::viewportConstrainedVisibleContentRect().
(WebCore::RenderLayerCompositor::computeStickyViewportConstraints): Ditto.
(WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer): This method has an empty implementation for iOS
as we batch update viewport-constrained layers in the iOS-specific method, RenderLayerCompositor::updateCustomLayersAfterFlush().
(WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer): Ditto.
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers): Added; guarded by PLATFORM(IOS).
(WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers): Ditto.
(WebCore::RenderLayerCompositor::registerAllScrollingLayers): Ditto.
(WebCore::RenderLayerCompositor::unregisterAllScrollingLayers): Ditto.
(WebCore::RenderLayerCompositor::scrollingLayerAddedOrUpdated): Ditto.
(WebCore::RenderLayerCompositor::scrollingLayerRemoved): Ditto.
(WebCore::RenderLayerCompositor::startInitialLayerFlushTimerIfNeeded): Ditto.
* rendering/RenderLayerCompositor.h:
* rendering/RenderLayerFilterInfo.h: Added iOS-specific Clang workaround to ignore
an unused private field.
* rendering/RenderMenuList.cpp:
(WebCore::selectedOptionCount): Added; guarded by PLATFORM(IOS).
(WebCore::RenderMenuList::RenderMenuList): On iOS we don't make use of RenderMenuList::m_popupIsVisible.
(WebCore::RenderMenuList::~RenderMenuList): On iOS we don't make use of RenderMenuList::m_popup.
(WebCore::RenderMenuList::adjustInnerStyle): Add iOS-specific code.
(RenderMenuList::updateFromElement): On iOS we don't make use of RenderMenuList::m_popup.
(RenderMenuList::setTextFromOption): Add iOS-specific code.
(RenderMenuList::showPopup): Define RenderMenuList::showPopup() to ASSERT_NOT_REACHED() on iOS as
we don't make use of RenderMenuList::m_popup.
(RenderMenuList::hidePopup): This method has an empty implementation for iOS as we don't make use
of RenderMenuList::m_popup.
(RenderMenuList::popupDidHide): This method has an empty implementation for iOS as we don't make use
of RenderMenuList::m_popupIsVisible.
* rendering/RenderMenuList.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::columnNumberForOffset): Added; guarded by PLATFORM(IOS). Also, added a FIXME comment to
make this function return an unsigned integer instead of a signed integer.
(WebCore::RenderObject::collectSelectionRects): Added; guarded by PLATFORM(IOS).
(WebCore::RenderObject::destroy): Added iOS-specific code.
(WebCore::RenderObject::innerLineHeight): Added.
(WebCore::RenderObject::willRenderImage): Added iOS-specific code.
* rendering/RenderObject.h: Change the access control of RenderObject::drawLineForBoxSide() from protected to
public so that it can be used from RenderThemeIOS::adjustMenuListButtonStyle().
(WebCore::RenderObject::absoluteQuadsForSelection):
* rendering/RenderScrollbar.h: Change the access control of RenderScrollbar::getScrollbarPseudoStyle() from
private to public so that it can be used from the iOS-specific static function, scrollbarHasDisplayNone,
defined in RenderLayerCompositor.cpp.
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::itemText): Added iOS-specific code.
* rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionRects): Added; guarded by PLATFORM(IOS).
(WebCore::RenderText::setTextInternal): Added iOS-specific code.
* rendering/RenderText.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::adjustInnerTextStyle): Ditto.
(WebCore::RenderTextControl::canScroll): Added; guarded by PLATFORM(IOS).
(WebCore::RenderTextControl::innerLineHeight): Ditto.
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::getAvgCharWidth): Compile-out code when building for iOS.
(WebCore::RenderTextControlMultiLine::createInnerTextStyle): Added iOS-specific code.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout): Ditto.
(WebCore::RenderTextControlSingleLine::getAvgCharWidth): Compile-out code when building for iOS.
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth): Ditto.
* rendering/RenderTextLineBoxes.cpp:
(WebCore::lineDirectionPointFitsInBox): Ditto.
(WebCore::RenderTextLineBoxes::positionForPoint): Added iOS-specific code.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintBorderOnly): Ditto.
(WebCore::RenderTheme::paintDecorations): Modified to call the control-specific paint*Decorations().
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintCheckboxDecorations): Added.
(WebCore::RenderTheme::paintRadioDecorations): Added.
(WebCore::RenderTheme::paintButtonDecorations): Added.
(WebCore::RenderTheme::paintTextFieldDecorations): Added.
(WebCore::RenderTheme::paintTextAreaDecorations): Added.
(WebCore::RenderTheme::paintMenuListDecorations): Added.
(WebCore::RenderTheme::paintPushButtonDecorations): Added.
(WebCore::RenderTheme::paintSquareButtonDecorations): Added.
(WebCore::RenderTheme::paintFileUploadIconDecorations): Added.
(WebCore::RenderTheme::paintSliderThumbDecorations): Added.
(WebCore::RenderTheme::paintSearchFieldDecorations): Added.
* rendering/RenderThemeIOS.h: Added.
* rendering/RenderThemeIOS.mm: Added.
* rendering/RenderThemeMac.h: Don't compile the contents of this file when building for iOS.
* rendering/RenderThemeMac.mm: Ditto.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::calculateIntrinsicSize): Compile-out code when building for iOS.
* rendering/RenderView.cpp:
(WebCore::RenderView::availableLogicalHeight): Add iOS-specific workaround. See <rdar://problem/7166808>.
(WebCore::fixedPositionOffset): Added; used in iOS-specific code (e.g. RenderView::mapLocalToContainer()).
(WebCore::RenderView::mapLocalToContainer): Use WebCore::fixedPositionOffset() instead of
FrameView::scrollOffsetForFixedPosition().
(WebCore::RenderView::pushMappingToContainer): Ditto.
(WebCore::RenderView::mapAbsoluteToLocalPoint): Ditto.
(WebCore::RenderView::repaintViewRectangle): Ditto.
(WebCore::RenderView::computeRectForRepaint): Ditto.
(WebCore::isFixedPositionInViewport): Added; used in RenderView::hasCustomFixedPosition().
(WebCore::RenderView::hasCustomFixedPosition): Added; guarded by PLATFORM(IOS).
* rendering/RenderView.h:
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::willBeDestroyed): Added iOS-specific code.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::ascentAndDescentForBox): Ditto.
* rendering/break_lines.cpp: Only include header <CoreServices/CoreServices.h> when building for Mac.
2013-12-06 Zoltan Horvath <zoltan@webkit.org>
Clean up the includes of RenderBlock.h
https://bugs.webkit.org/show_bug.cgi?id=125351
Reviewed by Darin Adler.
I turned some header includes into forward declarations. I also removed /
moved out some includes, which don't belong to RenderBlock.h anymore.
No new tests, no behavior change.
* editing/VisibleUnits.cpp:
* html/HTMLInputElement.cpp:
* html/HTMLTextAreaElement.cpp:
* html/TextFieldInputType.cpp:
* html/TextInputType.cpp:
* rendering/InlineElementBox.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
* rendering/line/LineBreaker.h:
* rendering/line/LineWidth.cpp:
2013-12-06 Laszlo Vidacs <lac@inf.u-szeged.hu>
Define SHA1 hash size in SHA1.h and use it at various places.
https://bugs.webkit.org/show_bug.cgi?id=125345
Reviewed by Darin Adler.
Use SHA1::hashSize instead of local variables.
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::HostTLSCertificateSet::computeCertificateHash):
2013-12-06 Dan Bernstein <mitz@apple.com>
[Cocoa] Add load delegate methods for responding to authentication challenges
https://bugs.webkit.org/show_bug.cgi?id=125333
Reviewed by Darin Adler.
* WebCore.exp.in: Exported core(NSURLCredential *).
2013-12-06 Daniel Bates <dabates@apple.com>
Rename {adjust, paint}SearchFieldDecoration, {adjust, paint}SearchFieldResultsDecoration
https://bugs.webkit.org/show_bug.cgi?id=125191
Reviewed by Joseph Pecoraro.
Towards upstreaming the iOS concept of render theme decorations, we should rename
RenderTheme::{adjust, paint}SearchFieldDecorationStyle and RenderTheme::{adjust, paint}SearchFieldResultsDecoration
to avoid ambiguity with the iOS concept.
* platform/efl/RenderThemeEfl.cpp:
* platform/efl/RenderThemeEfl.h:
* platform/gtk/RenderThemeGtk.cpp:
* platform/gtk/RenderThemeGtk.h:
* rendering/RenderTheme.cpp:
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
* rendering/RenderThemeSafari.cpp:
* rendering/RenderThemeSafari.h:
* rendering/RenderThemeWin.cpp:
* rendering/RenderThemeWin.h:
* rendering/RenderThemeWinCE.cpp:
* rendering/RenderThemeWinCE.h:
2013-12-06 Andreas Kling <akling@apple.com>
Make remaining CSSValue constructors return PassRef.
<https://webkit.org/b/125337>
Tweak the remaining CSSValue create() helpers to return PassRef
instead of PassRefPtr in the cases where nullptr is never returned.
Reviewed by Anders Carlsson.
2013-12-06 Roger Fong <roger_fong@apple.com>
Hook into some shader symbol logic following the ANGLE update in r159533.
https://bugs.webkit.org/show_bug.cgi?id=125332.
Reviewed by Brent Fulgham.
No new functionality added.
* html/canvas/WebGLRenderingContext.cpp: Add some error checking for errors related to
shader symbols that exist across both vertex and fragment shaders.
(WebCore::WebGLRenderingContext::linkProgram):
* platform/graphics/ANGLEWebKitBridge.cpp: Add logic for handling varyings
and add new fields to the ANGLEShaderSymbol struct.
(WebCore::getSymbolInfo):
* platform/graphics/ANGLEWebKitBridge.h:
* platform/graphics/GraphicsContext3D.h: Add those same fields to the SymbolInfo struct
as well so that we can access them from our shader source map.
Also add a map of varyings along side the uniforms and attributes.
(WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo):
(WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap):
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::areProgramSymbolsValid): Will be filled in later, this method
will use the shader source map to check for issues with unused varyings and precisions
mismatches of shader symbols that exist across both the vertex and fragment shaders.
2013-12-06 Lukasz Gajowy <l.gajowy@samsung.com>
[ATK] Missing aria roles mappings
https://bugs.webkit.org/show_bug.cgi?id=117729
Reviewed by Mario Sanchez Prada.
Added a few mappings from ARIA roles to ATK roles.
Test: accessibility/aria-mappings.html
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
2013-11-11 Philippe Normand <pnormand@igalia.com>
[GStreamer] webkitwebaudiosrc element needs to emit stream-start, caps and segment events
https://bugs.webkit.org/show_bug.cgi?id=123015
Reviewed by Martin Robinson.
When the source element starts emitting buffers send along various
events to notify downstream elements.
No new tests, change covered by existing webaudio tests.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webkit_web_audio_src_init): Initialize segment.
(webKitWebAudioSrcConstructed): Give an explicit name to each
queue added in front of the interleave element.
(webKitWebAudioSrcLoop): Before sending the first buffers push
stream-start, caps and segment events on each queue's sinkpad.
2013-12-05 Philippe Normand <pnormand@igalia.com>
[GStreamer] Audio/Video sink management is incoherent
https://bugs.webkit.org/show_bug.cgi?id=125304
Reviewed by Gustavo Noronha Silva.
Allow subclasses of MediaPlayerPrivateGStreamerBase to create
custom audio/video sinks in a coherent manner using
create{Audio,Video}Sink methods. Convenience getters are also
available. Also removed some un-needed member variables in the
playbin-based player.
No new tests, existing media tests cover this change.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::MediaPlayerPrivateGStreamer::audioSink):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
(WebCore::MediaPlayerPrivateGStreamerBase::createAudioSink):
2013-12-05 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Introduce IMAGE_TYPE_CASTS, and use it
https://bugs.webkit.org/show_bug.cgi?id=125330
Reviewed by Ryosuke Niwa.
As a step to use TYPE_CASTS_BASE, this cl introduce IMAGE_TYPE_CASTS.
BitmapImage and SVGImage can use it to generate toFoo() type case helper functions.
No new tests, no behavior changes.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
(WebCore::CachedImage::resumeAnimatingImagesForLoader):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
* svg/graphics/SVGImage.h:
2013-12-05 Zoltan Horvath <zoltan@webkit.org>
Clean up the forwarding headers of RenderBlock.h
https://bugs.webkit.org/show_bug.cgi?id=125323
Reviewed by Ryosuke Niwa.
In this patch, I removed the unnecessary forwarding headers from RenderBlock.h, and moved some to RenderBlockFlow.h.
No new tests, no behavior change.
* rendering/RenderBlock.h: Remove unnecessary forwarding headers.
* rendering/RenderBlockFlow.h: Moved some forwarding headers from RenderBlock.h
2013-12-04 Oliver Hunt <oliver@apple.com>
Refactor static getter function prototype to include thisValue in addition to the base object
https://bugs.webkit.org/show_bug.cgi?id=124461
Reviewed by Geoffrey Garen.
Change bindings codegen to produce static getter functions
with the correct types. Also update the many custom implementations
to the new type.
No change in behaviour.
* 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/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::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/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::scopeType):
* bindings/js/JSLocationCustom.cpp:
(WebCore::nonCachingStaticReplaceFunctionGetter):
(WebCore::nonCachingStaticReloadFunctionGetter):
(WebCore::nonCachingStaticAssignFunctionGetter):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeList::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):
(GenerateParametersCheck):
* 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:
2013-12-05 Tim Horton <timothy_horton@apple.com>
Remove Image::decodedSize()
https://bugs.webkit.org/show_bug.cgi?id=125327
Reviewed by Sam Weinig.
No new tests, just removing dead code.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::resetAnimation):
* platform/graphics/BitmapImage.h:
* platform/graphics/GeneratedImage.h:
* platform/graphics/Image.h:
* platform/graphics/cg/PDFDocumentImage.cpp:
* platform/graphics/cg/PDFDocumentImage.h:
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.h:
2013-12-05 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r160133.
http://trac.webkit.org/changeset/160133
https://bugs.webkit.org/show_bug.cgi?id=125325
broke bindings tests on all the bots (Requested by thorton on
#webkit).
* 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/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::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/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::scopeType):
* bindings/js/JSLocationCustom.cpp:
(WebCore::nonCachingStaticReplaceFunctionGetter):
(WebCore::nonCachingStaticReloadFunctionGetter):
(WebCore::nonCachingStaticAssignFunctionGetter):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeList::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):
(GenerateParametersCheck):
* 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:
2013-12-05 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove 'cookiesString' output from Page.getCookies
https://bugs.webkit.org/show_bug.cgi?id=125268
Reviewed by Timothy Hatcher.
Remove 'cookiesString' output from Page.getCookies protocol.
It is no longer meaningful because it is an unused parameter.
No new tests, no behavior change.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCookies):
* inspector/InspectorPageAgent.h:
* inspector/protocol/Page.json:
2013-12-05 Brian J. Burg <burg@cs.washington.edu>
Web Inspector: expose node and frame snapshot capabilities.
https://bugs.webkit.org/show_bug.cgi?id=124326
Reviewed by Joseph Pecoraro.
This adds snapshotRect() and snapshotNode() to the Page domain.
Both methods create snapshots using FrameSnapshotting APIs
and send images to the inspector frontend as a data URL.
Remove the unimplemented Page.captureScreenshot API.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::snapshotNode): Added.
(WebCore::InspectorPageAgent::snapshotRect): Added.
* inspector/InspectorPageAgent.h:
* inspector/protocol/Page.json: Added new protocol APIs.
2013-12-04 Bear Travis <betravis@adobe.com>
[CSS Shapes] Enable CSS Shapes on Windows
https://bugs.webkit.org/show_bug.cgi?id=89957
Reviewed by Brent Fulgham.
* css/CSSPropertyNames.in: Tweak to ensure shapes properties are regenerated.
2013-12-05 Roger Fong <roger_fong@apple.com>
[WebGL] Make sure we satisfy uniform and varying packing restrictions.
https://bugs.webkit.org/show_bug.cgi?id=125124.
<rdar://problem/15203291>
Reviewed by Brent Fulgham.
Tests covered by WebGL Khronos conformance tests:
webgl/1.0.2/conformance/glsl/misc/shader-uniform-packing-restrictions.html
webgl/1.0.2/conformance/glsl/misc/shader-varying-packing-restrictions.html
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
2013-12-05 Laszlo Vidacs <lac@inf.u-szeged.hu>
32bit buildfix after r160151
https://bugs.webkit.org/show_bug.cgi?id=125298
Reviewed by Csaba Osztrogonác.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient::handleDataReceived):
2013-12-05 Myles C. Maxfield <mmaxfield@apple.com>
Cropping and drawing ImageBuffers results in uninitialized data being shown
https://bugs.webkit.org/show_bug.cgi?id=125271
Reviewed by Simon Fraser.
createCroppedImageIfNecessary() crops to the bottom left of the ImageBuffer
backing store instead of the top left. In addition, ImageBuffer::draw()
draws the entire ImageBuffer's backing store instead of just the relevant
portion of it.
No new tests are necessary because the existing tests already test this
functionality
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::createCroppedImageIfNecessary): Crop to the top left of the
backing store
(WebCore::ImageBuffer::draw): Draw only the logical portion of the
backing store
2013-12-05 Joseph Pecoraro <pecoraro@apple.com>
Remove stale ScriptGlobalObject methods
https://bugs.webkit.org/show_bug.cgi?id=125276
Reviewed by Sam Weinig.
* bindings/js/ScriptObject.cpp:
(WebCore::ScriptGlobalObject::set):
* bindings/js/ScriptObject.h:
2013-12-04 Ryosuke Niwa <rniwa@webkit.org>
Change how the form element pointer affects parsing template elements, to reduce weirdness in templates
https://bugs.webkit.org/show_bug.cgi?id=125279
Reviewed by Antti Koivisto.
Faithfully update the HTML5 parser after http://html5.org/tools/web-apps-tracker?from=8330&to=8331.
Test: fast/dom/HTMLTemplateElement/no-form-association-2.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLFormElement): Don't the form element pointer if the context
element or its ancestor is a template element.
(WebCore::HTMLConstructionSite::insideTemplateElement): Added.
(WebCore::HTMLConstructionSite::createHTMLElement): Renamed openElementsContainTemplateElement to
insideTemplateElement to reflect the true semantics of the boolean.
* html/parser/HTMLConstructionSite.h:
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody): Ignore the form element pointer if there
is a template element on the stack of open elements. This faithfully reflects what's being said in the
specification. We should probably make isParsingTemplateContents more efficient by storing a boolean
and then wrap from() in some helper function but that should probbaly happen in a separate patch.
(WebCore::HTMLTreeBuilder::processStartTagForInBody): Ditto.
(WebCore::HTMLTreeBuilder::processStartTagForInTable): Ditto.
(WebCore::HTMLTreeBuilder::processEndTagForInBody): Don't unset or rely on the form element pointer
when there is a template element on the stack of open elements.
* html/parser/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::isParsingTemplateContents): Added a trivial implementation for when
TEMPLATE_ELEMENT is disabled.
(WebCore::HTMLTreeBuilder::isParsingFragmentOrTemplateContents): Merged two implementations.
2013-12-05 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[MediaStream] Firing negotiationneeded event upon track add/remove on MediaStream
https://bugs.webkit.org/show_bug.cgi?id=125243
Reviewed by Eric Carlson.
Spec states that: In particular, if an RTCPeerConnection object is consuming a MediaStream on which a track is
added, by, e.g., the addTrack() method being invoked, the RTCPeerConnection object must fire the
"negotiationneeded" event. Removal of media components must also trigger "negotiationneeded".
Existing tests updated.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::addObserver):
(WebCore::MediaStream::removeObserver):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::removeStream):
(WebCore::RTCPeerConnection::didAddOrRemoveTrack):
* Modules/mediastream/RTCPeerConnection.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::addStream):
2013-12-05 Beth Dakin <bdakin@apple.com>
Bad repaints on twitter when the tile cache has a margin
https://bugs.webkit.org/show_bug.cgi?id=125263
-and corresponding-
<rdar://problem/15576884>
Reviewed by Tim Horton.
When tiles that used to be margin tiles become real-content tiles, they need to be
invalidated.
Two new helper functions will make it so that we dont have to manually factor out
the margin from the bounds in more than one place in the code.
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::boundsWithoutMargin):
(WebCore::TileController::boundsAtLastRevalidateWithoutMargin):
Here is one existing place where we used to factor out the margin, but now we can
call boundsWithoutMargin().
(WebCore::TileController::adjustRectAtTileIndexForMargin):
And here is where we invalidate the formerly-margin tiles.
(WebCore::TileController::revalidateTiles):
2013-12-05 Zoltan Horvath <zoltan@webkit.org>
Remove the forward declaration of BidiContext class from RenderBlock.h
https://bugs.webkit.org/show_bug.cgi?id=125265
Reviewed by Csaba Osztrogonác.
No new tests, no behavior change.
* rendering/RenderBlock.h: BidiContext is not used in RenderBlock.h
2013-12-05 Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
[Cairo] Avoid extra copy when drawing images
https://bugs.webkit.org/show_bug.cgi?id=124209
Reviewed by Carlos Garcia Campos.
This commit applies some changes proposed after the original patch has
been landed. It fixes the logic to create the subsurface (as it was
inverted). It also remove an unnecessary RefPtr variable to hold the
subsurface.
No new tests. It's an enhancement. Already covered by existing tests.
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext):
2013-12-05 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Fix inset when only a subset of the arguments are defined
https://bugs.webkit.org/show_bug.cgi?id=125277
Reviewed by David Hyatt.
I thought Length's default value is fixed-0, but actually it's auto-0. For the optional arguments
of inset shape, we need to use fixed-0, so I updated the code and the tests to use that explicitly.
No new tests, I updated the old ones.
* css/BasicShapeFunctions.cpp:
(WebCore::basicShapeForValue):
2013-12-05 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Do not use deprecated gtk-doc 'Rename to' tag
https://bugs.webkit.org/show_bug.cgi?id=125303
Reviewed by Philippe Normand.
GObject introspection rename-to annotation is available in
since version 0.6.3 so we should use that instead.
* bindings/gobject/WebKitDOMEventTarget.h:
2013-12-05 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add missing symbols to WebKitDOMDeprecated.symbols
https://bugs.webkit.org/show_bug.cgi?id=125300
Reviewed by Philippe Normand.
Add webkit_dom_html_element_get_id and
webkit_dom_html_element_set_id to the symbols files.
* bindings/gobject/WebKitDOMDeprecated.symbols:
* bindings/gobject/webkitdom.symbols:
2013-12-05 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update GObject DOM bindings symbols file after r159711.
* bindings/gobject/webkitdom.symbols:
2013-12-05 Zan Dobersek <zdobersek@igalia.com>
[GTK] Move platform sources free of layering violations under libPlatform
https://bugs.webkit.org/show_bug.cgi?id=117509
Reviewed by Carlos Garcia Campos.
* GNUmakefile.list.am: Move additional source files located in the platform layer under libPlatform.
All moved sources are free of layering violations and thus ready for the migration.
2013-12-05 László Langó <lango@inf.u-szeged.hu>
Remove bridge/testqtbindings.cpp.
https://bugs.webkit.org/show_bug.cgi?id=125287
Reviewed by Alexey Proskuryakov.
* bridge/testqtbindings.cpp: Removed. There is no QT anymore.
We don't need this file.
2013-12-04 Gurpreet Kaur <k.gurpreet@samsung.com>
% unit heights don't work if parent block height is set in vh
https://bugs.webkit.org/show_bug.cgi?id=118516
Reviewed by Simon Fraser.
From Blink r156449 by <srinivasa.ragavan.venkateswaran@intel.com>
An element having height as percentage needs to have the
containingblock's height or availableheight to calculate its
own height. The containing block having a height set in vh
unit was not being considered for calculating the child's
height.
Tests: fast/css/viewport-percentage-compute-box-height.html
fast/css/viewport-percentage-compute-box-width.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight):
Correct child's height(in pecentage) was not being calculated
incase of parent having height set in vh unit. Added condition
to calculate the containing block height in terms of viewport size.
2013-12-04 Roger Fong <roger_fong@apple.com>
[Windows] Unreviewed build fix. Copy headers from rendering/line to build directory.
* WebCore.vcxproj/copyForwardingHeaders.cmd:
2013-12-04 Ryosuke Niwa <rniwa@webkit.org>
bgColor, setBgColor, alinkColor, setAlinkColor, and etc... on HTMLBodyElement are useless
https://bugs.webkit.org/show_bug.cgi?id=125208
Rubber-stamped by Anders Carlsson.
Address Darin's comment to use fastGetAttribute instead of getAttribute.
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::bgColor):
(WebCore::HTMLDocument::fgColor):
(WebCore::HTMLDocument::alinkColor):
(WebCore::HTMLDocument::linkColor):
(WebCore::HTMLDocument::vlinkColor):
2013-12-04 Brian J. Burg <burg@cs.washington.edu>
Consolidate various frame snapshot capabilities.
https://bugs.webkit.org/show_bug.cgi?id=124325
Reviewed by Darin Adler.
Various snapshot creation methods had duplicated code and were split
between Frame, DragImage, and platform-specific implementationss.
This patch puts WebCore snapshot methods into FrameSnapshotting
and removes platform implementations where possible.
DragImage methods reuse snapshot methods where possible. Inspector
will be able to take snapshots without using drag images.
No new tests, this is a refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOM.mm:
(-[DOMNode renderedImage]):
(-[DOMRange renderedImageForcingBlackText:]):
* dom/Clipboard.cpp:
(WebCore::Clipboard::createDragImage):
* dom/ClipboardMac.mm:
(WebCore::Clipboard::createDragImage):
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* page/Frame.cpp:
* page/Frame.h:
* page/FrameSnapshotting.cpp: Added.
(WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
(WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
(WebCore::snapshotFrameRect): Move most buffer logic to here.
(WebCore::snapshotSelection): Moved from Frame.
(WebCore::snapshotNode): Moved from Frame.
* page/FrameSnapshotting.h: Added.
* page/mac/FrameMac.mm: Removed.
* page/mac/FrameSnapshottingMac.h: Removed.
* page/mac/FrameSnapshottingMac.mm: Removed.
* page/win/FrameWin.cpp: remove duplicate implementation.
* page/win/FrameWin.h: Fix an incorrect parameter name.
* platform/DragImage.cpp:
(WebCore::ScopedNodeDragState::ScopedNodeDragState):
(WebCore::ScopedNodeDragState::~ScopedNodeDragState):
(WebCore::createDragImageFromSnapshot): Boilerplate buffer conversion.
(WebCore::createDragImageForNode):
(WebCore::createDragImageForSelection):
(WebCore::ScopedFrameSelectionState::ScopedFrameSelectionState):
(WebCore::ScopedFrameSelectionState::~ScopedFrameSelectionState):
(WebCore::createDragImageForRange): Moved from Frame.
(WebCore::createDragImageForImage): Moved from FrameSnapshottingMac.
(WebCore::createDragImageForLink): use nullptr.
2013-12-04 Benjamin Poulain <bpoulain@apple.com>
Remove spaces on a blank line to have ResourceHandleCFNet.cpp identical to iOS
Unreviewed.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
2013-12-04 Antti Koivisto <antti@apple.com>
Move pseudo element construction out from Element
https://bugs.webkit.org/show_bug.cgi?id=125257
Reviewed by Anders Carlsson.
This is logically part of the style resolve/render tree construction. This will make future
refactoring easier.
* dom/Element.cpp:
* dom/Element.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::beforeOrAfterPseudoElement):
(WebCore::Style::setBeforeOrAfterPseudoElement):
(WebCore::Style::clearBeforeOrAfterPseudoElement):
(WebCore::Style::needsPseudeElement):
(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
(WebCore::Style::attachRenderTree):
(WebCore::Style::updateBeforeOrAfterPseudoElement):
(WebCore::Style::resolveTree):
2013-12-04 Zoltan Horvath <zoltan@webkit.org>
Move TrailingObjects class into its own h/cpp
https://bugs.webkit.org/show_bug.cgi?id=124956
Reviewed by David Hyatt.
Since I moved space-ignoring inline functions into MidpointState in r160074,
I can nicely separate TrailingObjects class from BreakingContextInlineHeader.h.
This change improves the readability, and it's part of the RenderBlockLineLayout
refactoring campaign, which is tracked under bug #121261.
No new tests, no behavior change.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/line/BreakingContextInlineHeaders.h:
* rendering/line/TrailingObjects.cpp: Added.
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
* rendering/line/TrailingObjects.h: Added.
(WebCore::TrailingObjects::TrailingObjects):
(WebCore::TrailingObjects::setTrailingWhitespace):
(WebCore::TrailingObjects::clear):
(WebCore::TrailingObjects::appendBoxIfNeeded):
2013-12-04 Oliver Hunt <oliver@apple.com>
Refactor static getter function prototype to include thisValue in addition to the base object
https://bugs.webkit.org/show_bug.cgi?id=124461
Reviewed by Geoffrey Garen.
Change bindings codegen to produce static getter functions
with the correct types. Also update the many custom implementations
to the new type.
No change in behaviour.
* 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/JSDOMStringMapCustom.cpp:
(WebCore::JSDOMStringMap::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/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::scopeType):
* bindings/js/JSLocationCustom.cpp:
(WebCore::nonCachingStaticReplaceFunctionGetter):
(WebCore::nonCachingStaticReloadFunctionGetter):
(WebCore::nonCachingStaticAssignFunctionGetter):
* bindings/js/JSNamedNodeMapCustom.cpp:
(WebCore::JSNamedNodeMap::nameGetter):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeList::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):
(GenerateParametersCheck):
* 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:
2013-12-04 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Support inset for shape-outside
<https://webkit.org/b/125112>
Reviewed by David Hyatt.
This patch adds inset support for shape-outside. Parsing has previously landed in r159968.
Specification: http://dev.w3.org/csswg/css-shapes/#supported-basic-shapes
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-bottom-left.html
fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-bottom-right.html
fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-top-left.html
fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-top-right.html
fast/shapes/shape-outside-floats/shape-outside-floats-inset.html
* platform/LengthSize.h:
(WebCore::LengthSize::floatSize): Add conversion to FloatSize.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Handle inset case.
2013-12-04 Bear Travis <betravis@adobe.com>
Web Inspector: [CSS Shapes] Support raster shape visualizations
https://bugs.webkit.org/show_bug.cgi?id=124080
Reviewed by Joseph Pecoraro.
Create an inspector visualization for a shape created from an image.
The visualization takes each line of the image, combining where possible.
Test added to inspector-protocol/model/highlight-shape-outside.html
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::buildBoundsPath): Create a path representing the
RasterShapeIntervals.
* rendering/shapes/RasterShape.h:
2013-12-04 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Remove explicit numbering from BasicShape::Type and CSSBasicShape::Type enums
https://bugs.webkit.org/show_bug.cgi?id=125163
Reviewed by Rob Buis.
I don't see any reason to have explicit numbering for the Type enum in our [CSS]BasicShape classes.
I removed numbering, which will decrease for instance the merge conflicts on Type changes.
No new tests, no behavior change.
* css/CSSBasicShapes.h:
* rendering/style/BasicShapes.h:
2013-12-04 Myles C. Maxfield <mmaxfield@apple.com>
Allow ImageBuffer to use an IOSurface that is larger than necessary
https://bugs.webkit.org/show_bug.cgi?id=124626
Reviewed by Simon Fraser.
Because creating ImageBuffer's backing store can be so expensive, it
would be beneficial to have a pool of pre-created backing stores
available. However, this means that ImageBuffer might have to use a
backing store that is larger than the exact dimensions that it needs.
This patch adds a field, m_backingStoreSize, to CG's ImageBufferData
class, and uses this new field when performing ImageBuffer operations
to allow for larger-than-necessary backing stores. Content is always
drawn in the top left corner of the backing store.
No new tests are necessary because there is no behavior change.
* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::baseTransform): The base transform has to put
content at the top left corner instead of bottom left
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::createCroppedImageIfNecessary): Convenience function to figure out
the dimensions of the backing texture in user space
(WebCore::ImageBuffer::ImageBuffer): Set up new m_backingStoreSize member
(WebCore::maybeCropToBounds): Some ImageBuffer API functions require
outputting an image with logical size. This function performs the cropping
(WebCore::ImageBuffer::copyImage): Updated for larger-than-necessary
backing stores
(WebCore::ImageBuffer::copyNativeImage): Ditto
(WebCore::ImageBuffer::draw): Ditto
(WebCore::ImageBuffer::clip): Ditto
(WebCore::ImageBuffer::putByteArray): Ditto
(WebCore::ImageBuffer::toDataURL): Ditto
* platform/graphics/cg/ImageBufferDataCG.cpp:
(WebCore::ImageBufferData::getData): Ditto
(WebCore::ImageBufferData::putData): Ditto
* platform/graphics/cg/ImageBufferDataCG.h: New m_backingStoreSize field
2013-12-03 Dean Jackson <dino@apple.com>
[WebGL] Support for texImage2D of type HALF_FLOAT_OES
https://bugs.webkit.org/show_bug.cgi?id=110936
Reviewed by Brent Fulgham.
Add support for the HALF_FLOAT_OES texture format from texImage2D
and texSubImage2D.
A lot of this patch comes from the original patch on the bug
by Nayan Kumar, and the Blink commit:
https://codereview.chromium.org/13842017
Tests: fast/canvas/webgl/oes-texture-half-float-with-canvas.html
fast/canvas/webgl/oes-texture-half-float-with-image.html
fast/canvas/webgl/oes-texture-half-float-with-video.html
* html/canvas/OESTextureHalfFloat.idl: New HALF_FLOAT_OES constant value.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFunc): Remove the code that
would bail if half-float values were used.
* platform/graphics/GraphicsContext3D.cpp:
- Return appropriate DataFormats for half floating point types.
- Copy the float -> half-float code from Blink
- New pack functions for half floats
* platform/graphics/GraphicsContext3D.h: New format types.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::texSubImage2D): Use GL_HALF_FLOAT_ARB if we're passed
a HALF_FLOAT_OES.
2013-12-04 Daniel Bates <dabates@apple.com>
Fix the Apple Windows build after <http://trac.webkit.org/changeset/160113>
(https://bugs.webkit.org/show_bug.cgi?id=125193)
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::paintMenuList): Substitute paintInfo for i.
2013-12-04 Daniel Bates <dabates@apple.com>
Rename RenderTheme::paintMenuListButton()
https://bugs.webkit.org/show_bug.cgi?id=125193
Reviewed by Simon Fraser.
Towards upstreaming the iOS concept of render theme decorations we should rename
RenderTheme::paintMenuListButton() to RenderTheme::paintMenuListButtonDecorations()
to better describe its purpose.
Also, fix code style issues.
* platform/blackberry/RenderThemeBlackBerry.cpp:
(WebCore::RenderThemeBlackBerry::paintMenuListButtonDecorations):
* platform/blackberry/RenderThemeBlackBerry.h:
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::paintMenuListButtonDecorations):
* platform/efl/RenderThemeEfl.h:
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMenuListButtonDecorations):
* platform/gtk/RenderThemeGtk.h:
* platform/nix/RenderThemeNix.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintDecorations): Rename argument o, r to renderer and rect, respectively.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintMenuListButtonDecorations):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMenuListButtonDecorations): Rename argument o, r to renderer and rect,
respectively; also remove extraneous white space and substitute 1 for 1.0f.
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::paintMenuListButtonDecorations): Ditto.
* rendering/RenderThemeSafari.h:
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::paintMenuList): Rename argument o, i, r to renderer, paintInfo, and rect,
respectively.
(WebCore::RenderThemeWin::paintMenuListButtonDecorations): Ditto.
* rendering/RenderThemeWin.h:
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderThemeWinCE::paintMenuList): Ditto.
(WebCore::RenderThemeWinCE::paintMenuListButtonDecorations): Ditto.
* rendering/RenderThemeWinCE.h:
2013-12-04 Andy Estes <aestes@apple.com>
[iOS] Build projects with $(ARCHS_STANDARD_32_64_BIT)
https://bugs.webkit.org/show_bug.cgi?id=125236
Reviewed by Sam Weinig.
$(ARCHS_STANDARD_32_64_BIT) is what we want for both device and simulator builds.
* Configurations/DebugRelease.xcconfig:
2013-12-04 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Windows build fix attempt after r160099.
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.vcxproj/copyForwardingHeaders.cmd:
2013-12-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Push Remote Inspector debugging connection management into JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=124613
Reviewed by Timothy Hatcher.
Make a WebCore::Page a "Web" Remote Debuggable.
* bindings/js/JSDOMGlobalObject.cpp:
Disable JavaScript context inspection on JSGlobalObjects inside WebCore::Page's.
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::remoteInspectionAllowed):
(WebCore::Page::setRemoteInspectionAllowed):
(WebCore::Page::remoteInspectorInformationDidChange):
* page/Page.h:
* page/PageDebuggable.h:
* page/PageDebuggable.cpp: Added.
(WebCore::PageDebuggable::PageDebuggable):
(WebCore::PageDebuggable::name):
(WebCore::PageDebuggable::url):
(WebCore::PageDebuggable::hasLocalDebugger):
(WebCore::PageDebuggable::connect):
(WebCore::PageDebuggable::disconnect):
(WebCore::PageDebuggable::dispatchMessageFromRemoteFrontend):
(WebCore::PageDebuggable::setIndicating):
Make a page a "Web" debuggable.
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Misc.
* inspector/InspectorClient.h:
(WebCore::InspectorClient::indicate):
(WebCore::InspectorClient::hideIndicate):
Forward indicate methods to WebKit clients.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didChangeTitle):
(WebCore::FrameLoader::dispatchDidCommitLoad):
Push updates when remote debuggable information like the Page's
URL or title change.
* ForwardingHeaders/inspector/InspectorFrontendChannel.h:
* inspector/InspectorForwarding.h:
Re-export Inspector::InspectorFrontendChannel as WebCore::InspectorFrontendChannel
to avoid needlessly updating code all over the place.
* inspector/CodeGeneratorInspectorStrings.py:
* inspector/InspectorWorkerAgent.cpp:
* inspector/WorkerInspectorController.cpp:
* testing/Internals.cpp:
Update include names.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
Make the "Inspect Element" context menu work correctly when there is a
remote inspector instead of a local inspector.
2013-12-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add missing folders and files to Xcode project
https://bugs.webkit.org/show_bug.cgi?id=124802
Reviewed by Timothy Hatcher.
* WebCore.xcodeproj/project.pbxproj:
2013-12-04 José Dapena Paz <jdapena@igalia.com>
[texmap] Borders on rotating images are hidden/wrongly rendered with edge distance antialiasing
https://bugs.webkit.org/show_bug.cgi?id=124653
Reviewed by Noam Rosenthal.
Texture mapper edge distance antialiasing texture sampling was causing
borders to be shaded (and made them almost disappear in some cases).
This was because calculation of sampling happened on vertex shader, so
the border of the texture would go to the border of the inflation area.
What algorithm should do is sampling the border pixel for all the
inflation area (it is the closest pixel to all the samples in
inflation area), and then use the standard sampling for the other
parts of the texture.
No new test because this is already covered by test
transforms/3d/point-mapping/3d-point-mapping.html
* platform/graphics/texmap/TextureMapperShaderProgram.cpp: fix edge
distance antialiasing texture sampling.
2013-12-04 László Langó <lango@inf.u-szeged.hu>
Typo fix after r160074 to fix debug builds.
Reviewed by Csaba Osztrogonác.
* platform/text/BidiResolver.h:
(WebCore::MidpointState::stopIgnoringSpaces):
2013-12-04 Zoltan Horvath <zoltan@webkit.org>
Move space-ignoring inline functions into MidpointState
<https://webkit.org/b/124957>
Reviewed by David Hyatt.
Since:
- The following inline functions were used only with a mandatory LineMidpointState argument:
startIgnoringSpaces, stopIgnoringSpaces, ensureLineBoxInsideIgnoredSpaces, deprecatedAddMidpoint.
- TrailingObjects class uses these functions. Since they're inline in BreakingContextInlineHeaders.h,
it's hard to separate TrailingObjects into it's own file. (blocks bug #124956)
I made these functions as a member of LineMidpointState, and I also updated the call sites.
No new tests, no behavior change.
* platform/text/BidiResolver.h:
(WebCore::MidpointState::startIgnoringSpaces):
(WebCore::MidpointState::stopIgnoringSpaces):
(WebCore::MidpointState::ensureLineBoxInsideIgnoredSpaces):
(WebCore::MidpointState::deprecatedAddMidpoint):
* rendering/RenderBlock.h:
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
(WebCore::BreakingContext::handleBR):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::shouldSkipWhitespaceAfterStartObject):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::ensureCharacterGetsLineBox):
(WebCore::BreakingContext::handleText):
2013-12-03 Zoltan Horvath <zoltan@webkit.org>
Remove BreakingContext's friendship from RenderBlockFlow
<https://webkit.org/b/124958>
Reviewed by David Hyatt.
BreakingContext uses only 2 functions from RenderBlockFlow: insertFloatingObject/positionNewFloatOnLine. I added helper
functions to LineBreaker, what is already a friend of RenderBlockFlow, so BreakingContext doesn't need to be anymore.
No new tests, no behavior change.
* rendering/RenderBlockFlow.h:
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleFloat):
* rendering/line/LineBreaker.h:
(WebCore::LineBreaker::insertFloatingObject):
(WebCore::LineBreaker::positionNewFloatOnLine):
2013-12-03 Ryosuke Niwa <rniwa@webkit.org>
bgColor, setBgColor, alinkColor, setAlinkColor, and etc... on HTMLBodyElement are useless
https://bugs.webkit.org/show_bug.cgi?id=125208
Reviewed by Antti Koivisto.
Merge https://chromium.googlesource.com/chromium/blink/+/49b1eeabbbf573d5271288c66d2b566cf33a09cf
These member functions of HTMLBodyElement were only used by corresponding functions in HTMLDocument
since they had the Reflect option specified in HTMLBodyElement.idl.
Removed the functions and directly called getAttribute and setAttribute in relevant functions in
HTMLDocument. The optimization to avoid assignment is no longer needed here since we've added that
optimization to setAttributeInternal a while ago.
* html/HTMLBodyElement.cpp:
* html/HTMLBodyElement.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::bgColor):
(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::fgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::alinkColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::linkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::vlinkColor):
(WebCore::HTMLDocument::setVlinkColor):
* html/HTMLDocument.h:
2013-12-03 Andreas Kling <akling@apple.com>
Add a CSSProperty::isDirectionAwareProperty() helper.
<https://webkit.org/b/125202>
Move the block of case labels for checking whether a CSS property ID
is a directional property into a separate function. Also removed an
outdated comment about CSS variables.
Reviewed by Antti Koivisto.
2013-12-03 Ryosuke Niwa <rniwa@webkit.org>
Revert the inadvertently committed change.
* html/HTMLElement.idl:
2013-12-03 Ryosuke Niwa <rniwa@webkit.org>
Remove nodeIsDetachedFromDocument and visualWordMovementEnabled in FrameSelection
https://bugs.webkit.org/show_bug.cgi?id=125210
Reviewed by Antti Koivisto.
Inspired by https://chromium.googlesource.com/chromium/blink/+/92409870f0ff8fafe31217830db0838a9e1ffb98
Removed some unused code.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::textWasReplaced):
* editing/FrameSelection.h:
* page/Settings.in:
2013-12-03 Ryosuke Niwa <rniwa@webkit.org>
Potential crash in RenderView::selectionBounds and RenderView::repaintSelection
https://bugs.webkit.org/show_bug.cgi?id=125207
Reviewed by Simon Fraser.
Merge https://chromium.googlesource.com/chromium/blink/+/f9e6e288a5aa959f05c374806121aaf0fc52d440
Update style in FrameSelection instead of RenderView's member functions. These are the last two
member functions of RenderView that updates the style.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged):
(WebCore::FrameSelection::bounds):
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionBounds):
(WebCore::RenderView::repaintSelection):
2013-12-03 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/125143> Improve the formatting in the generated Objective-C headers.
Add a space between @property and any parenthesized attributes.
Prefer strong over retain when specifying memory management semantics.
Reviewed by Darin Adler.
* bindings/objc/PublicDOMInterfaces.h:
* bindings/scripts/CodeGeneratorObjC.pm:
(GetPropertyAttributes): Generate strong instead of retain. Include a
space before the parenthesis.
* bindings/scripts/test/ObjC/DOMTestActiveDOMObject.h:
* bindings/scripts/test/ObjC/DOMTestEventConstructor.h:
* bindings/scripts/test/ObjC/DOMTestException.h:
* bindings/scripts/test/ObjC/DOMTestInterface.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/ObjC/DOMTestTypedefs.h:
* bindings/scripts/test/ObjC/DOMattribute.h:
2013-12-03 Alexey Proskuryakov <ap@apple.com>
Update WebCrypto JWK mapping to newer proposal
https://bugs.webkit.org/show_bug.cgi?id=124218
Reviewed by Anders Carlsson.
Tests: crypto/subtle/jwk-export-use-values.html
crypto/subtle/jwk-import-use-values.html
1. "extractable" renamed to "ext" in JWK.
2. New values for "use" mapping, which can now be combined into comma separated lists,
and cover all possible WebCrypto usages.
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileUsages):
(WebCore::JSCryptoKeySerializationJWK::reconcileExtractable):
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
(WebCore::processUseValue):
(WebCore::JSCryptoKeySerializationJWK::addJWKUseToJSON):
(WebCore::JSCryptoKeySerializationJWK::serialize):
2013-12-03 Simon Fraser <simon.fraser@apple.com>
Remove some iOS-related documentScale code
https://bugs.webkit.org/show_bug.cgi?id=125194
Reviewed by Enrica Casucci.
Remove exports of nonexistent documentScale-related functions on Frame.
* WebCore.exp.in:
2013-12-03 Eric Carlson <eric.carlson@apple.com>
Fix regression caused by r158599
https://bugs.webkit.org/show_bug.cgi?id=125188
Reviewed by Jer Noble.
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::clearMediaPlayer): Do not clear m_player when PLUGIN_PROXY_FOR_VIDEO
is enabled.
2013-12-03 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Nix Upstream: Updating WebCore files
https://bugs.webkit.org/show_bug.cgi?id=124981
Reviewed by Benjamin Poulain.
Just to sync our github repo files and the trunk, as part of the upstream process
No new tests needed.
* PlatformNix.cmake:
* css/mediaControlsNix.css:
(audio):
(video::-webkit-media-controls):
(audio::-webkit-media-controls-enclosure, video::-webkit-media-controls-enclosure):
(video::-webkit-media-controls-enclosure):
(audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
(video:-webkit-full-page-media):
(audio:-webkit-full-page-media, video:-webkit-full-page-media):
(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
(audio::-webkit-media-controls-overlay-play-button, video::-webkit-media-controls-overlay-play-button):
(audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
(audio::-webkit-media-controls-timeline-container, video::-webkit-media-controls-timeline-container):
(audio::-webkit-media-controls-time-remaining-display, video::-webkit-media-controls-time-remaining-display):
(audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
(input[type="range"]::-webkit-media-slider-container):
(input[type="range"]::-webkit-media-slider-container > div):
(input[type="range"]::-webkit-media-slider-thumb):
(audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
(audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
(audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-fullscreen-volume-slider, video::-webkit-media-controls-fullscreen-volume-slider):
(audio::-webkit-media-controls-fullscreen-volume-min-button, video::-webkit-media-controls-fullscreen-volume-min-button):
(audio::-webkit-media-controls-fullscreen-volume-max-button, video::-webkit-media-controls-fullscreen-volume-max-button):
(video::-webkit-media-text-track-container):
(video::cue):
(video::-webkit-media-text-track-region):
(video::-webkit-media-text-track-region-container):
(video::-webkit-media-text-track-region-container.scrolling):
(video::-webkit-media-text-track-display):
(video::cue(:future)):
(video::-webkit-media-text-track-container b):
(video::-webkit-media-text-track-container u):
(video::-webkit-media-text-track-container i):
* editing/Editor.cpp:
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::copyImage):
* editing/Editor.h:
* html/HTMLCanvasElement.h:
* platform/Cursor.h:
* platform/audio/FFTFrame.h:
* platform/audio/nix/AudioBusNix.cpp:
(WebCore::AudioBus::loadPlatformResource):
* platform/graphics/GLContext.h:
* platform/nix/CursorNix.cpp:
(WebCore::Cursor::ensurePlatformCursor):
* platform/nix/GamepadsNix.cpp:
(WebCore::sampleGamepads):
* platform/nix/RenderThemeNix.cpp:
(WebCore::toIntSize):
(WebCore::toNixRect):
(WebCore::RenderThemeNix::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeNix::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeNix::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeNix::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeNix::platformActiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeNix::platformInactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeNix::platformActiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeNix::platformInactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeNix::platformActiveTextSearchHighlightColor):
(WebCore::RenderThemeNix::platformInactiveTextSearchHighlightColor):
(WebCore::RenderThemeNix::platformFocusRingColor):
(WebCore::RenderThemeNix::platformTapHighlightColor):
(WebCore::RenderThemeNix::paintButton):
(WebCore::RenderThemeNix::paintTextField):
(WebCore::RenderThemeNix::paintCheckbox):
(WebCore::RenderThemeNix::setCheckboxSize):
(WebCore::RenderThemeNix::paintRadio):
(WebCore::RenderThemeNix::setRadioSize):
(WebCore::RenderThemeNix::paintMenuList):
(WebCore::RenderThemeNix::paintProgressBar):
(WebCore::RenderThemeNix::paintSliderTrack):
(WebCore::RenderThemeNix::paintSliderThumb):
(WebCore::RenderThemeNix::paintInnerSpinButton):
(WebCore::RenderThemeNix::paintMeter):
(WebCore::RenderThemeNix::extraMediaControlsStyleSheet):
(WebCore::RenderThemeNix::paintMediaPlayButton):
(WebCore::RenderThemeNix::paintMediaMuteButton):
(WebCore::RenderThemeNix::paintMediaSeekBackButton):
(WebCore::RenderThemeNix::paintMediaSeekForwardButton):
(WebCore::RenderThemeNix::paintMediaSliderTrack):
(WebCore::RenderThemeNix::paintMediaVolumeSliderContainer):
(WebCore::RenderThemeNix::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeNix::paintMediaRewindButton):
* platform/nix/RenderThemeNix.h:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-12-03 Ralph Thomas <ralpht@gmail.com>
Typo: FixedPositionConstaint -> FixedPositionConstraint
https://bugs.webkit.org/show_bug.cgi?id=125171
Reviewed by Simon Fraser.
No new tests, no change in behavior.
* page/scrolling/ScrollingConstraints.h:
* page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
2013-12-03 Samuel White <samuel_white@apple.com>
AXPress event coordinates are always sent as (0, 0)
https://bugs.webkit.org/show_bug.cgi?id=76677
Reviewed by Simon Fraser.
Set the coordinates of a simulated press equal to the center of the target
element when the simulated press does not have a related mouse event.
Test: accessibility/press-targets-center-point.html
* dom/Element.cpp:
(WebCore::Element::clientRect):
(WebCore::Element::screenRect):
* dom/Element.h:
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchSimulatedClick):
* dom/MouseEvent.cpp:
(WebCore::SimulatedMouseEvent::create):
(WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
* dom/MouseEvent.h:
2013-12-03 Dean Jackson <dino@apple.com>
[WebGL] Implement OES texture float linear
https://bugs.webkit.org/show_bug.cgi?id=124871
Reviewed by Brent Fulgham.
Implement the OES_texture_float_linear extension. Generally
we'd also enable OES_texture_half_float_linear at the same
time, but that's blocked on webkit.org/b/110936.
Test: fast/canvas/webgl/oes-texture-float-linear.html
* CMakeLists.txt: Add new files.
* DerivedSources.cpp: Ditto.
* DerivedSources.make: Generate new file from IDL.
* GNUmakefile.list.am: Add new files.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: New files for OESTextureFloatLinear.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS): Map the new name into the appropriate type.
* html/canvas/OESTextureFloatLinear.cpp: Added. This is a very simple class
that's mostly empty.
(WebCore::OESTextureFloatLinear::OESTextureFloatLinear):
(WebCore::OESTextureFloatLinear::~OESTextureFloatLinear):
(WebCore::OESTextureFloatLinear::getName):
(WebCore::OESTextureFloatLinear::create):
* html/canvas/OESTextureFloatLinear.h: Added.
* html/canvas/OESTextureFloatLinear.idl: Added.
* html/canvas/WebGLExtension.h: Declare the new name in the enum of extensions.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::drawArrays): Call new name.
(WebCore::WebGLRenderingContext::drawElements): Call new name.
(WebCore::WebGLRenderingContext::getExtension): Create the new extension if asked.
(WebCore::WebGLRenderingContext::checkTextureCompleteness): Renamed from handleNPOTTextures. Now
checks for the type of the texture too.
* html/canvas/WebGLRenderingContext.h: Member variable for new extension.
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::WebGLTexture):
(WebCore::WebGLTexture::needToUseBlackTexture): Takes an extra parameter which indicates
if it has an extension enabled.
(WebCore::WebGLTexture::update): Note it is a float type when updating.
* html/canvas/WebGLTexture.h: New flag to indicate float type.
* platform/graphics/Extensions3D.h: New flag type.
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension): Add a comment about the extension.
2013-12-03 Alexey Proskuryakov <ap@apple.com>
Support exporting private WebCrypto RSA keys
https://bugs.webkit.org/show_bug.cgi?id=124483
Reviewed by Anders Carlsson.
Test: crypto/subtle/rsa-export-private-key.html
It might be better to have our own bignum implementation in WTF, but we currently
don't, and the need for this computation is Common Crypto specific anyway.
* crypto/CommonCryptoUtilities.h:
* crypto/CommonCryptoUtilities.cpp:
(WebCore::CCBigNum::CCBigNum):
(WebCore::CCBigNum::~CCBigNum):
(WebCore::CCBigNum::operator=):
(WebCore::CCBigNum::data):
(WebCore::CCBigNum::operator-):
(WebCore::CCBigNum::operator%):
(WebCore::CCBigNum::inverse):
Added a minimal wrapper around CommonCrypto BigNum.
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::getPrivateKeyComponents): Compute missing parts using CCBigNum.
(WebCore::CryptoKeyRSA::exportData): Implemented private key case.
2013-12-03 Ryosuke Niwa <rniwa@webkit.org>
XML fragment parsing algorithm doesn't use the context element's default namespace URI
https://bugs.webkit.org/show_bug.cgi?id=125132
Reviewed by Darin Adler.
Always use the context element's namespace as the default namespace URI when one is not specified by xmlns.
The new behavior matches that of Internet Explorer and the specified behavior in HTML5:
http://www.w3.org/TR/2013/CR-html5-20130806/the-xhtml-syntax.html#parsing-xhtml-fragments
"The default namespace is the namespace for which the DOM isDefaultNamespace() method on the element would
return true."
Test: fast/parser/fragment-parsing-in-document-without-xmlns.html
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
2013-12-03 Nick Diego Yamane <nick.yamane@openbossa.org>
Remove some CSS Variables leftovers
https://bugs.webkit.org/show_bug.cgi?id=125167
Reviewed by Darin Adler.
No new tests needed. Only removing leftover code.
* css/CSSBasicShapes.cpp:
* css/CSSBasicShapes.h:
2013-12-03 Myles C. Maxfield <mmaxfield@apple.com>
Checking second-to-last bit in address is a typo
https://bugs.webkit.org/show_bug.cgi?id=125162
Reviewed by Darin Adler.
After talking with the original author of this line,
is was a typo to make sure that the second-to-last bit
in an address is 0. Instead, we want to make sure that
the address is aligned to a 4-byte boundary
No behavior change, so no test is necessary
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::ImageBuffer):
2013-12-03 Radu Stavila <stavila@adobe.com>
The overflow border of a relatively positioned element inside a region is not painted
https://bugs.webkit.org/show_bug.cgi?id=124919
Relative positioned elements have self-painting layers that don't propagate the visual overflow
so the layer's position should be used when determining the clipping rectangle for box decorations.
Reviewed by Mihnea Ovidenie.
Test: fast/regions/relative-borders-overflow.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
2013-12-03 Seokju Kwon <seokju@webkit.org>
Web Inspector: Get rid of 'hasFrontend()' in InspectorController and WorkerInspectorController
https://bugs.webkit.org/show_bug.cgi?id=125135
Reviewed by Darin Adler.
Remove 'hasFrontend()' from InspectorController and WorkerInspectorController
as it's never called.
No new tests, no behavior changes.
* inspector/InspectorController.h:
* inspector/WorkerInspectorController.h:
2013-12-03 Seokju Kwon <seokju@webkit.org>
Web Inspector: webViewResized() is not used anywhere in WebInspectorUI
https://bugs.webkit.org/show_bug.cgi?id=125137
Reviewed by Darin Adler.
Remove leftover code.
No new tests, no behavior changes.
* inspector/InspectorController.cpp:
* inspector/InspectorController.h:
* inspector/InspectorOverlay.cpp:
* inspector/InspectorOverlay.h:
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
2013-12-03 László Langó <lango@inf.u-szeged.hu>
ASSERTION FAILED: !value || (value->isPrimitiveValue()) in WebCore::StyleProperties::getLayeredShorthandValue.
https://bugs.webkit.org/show_bug.cgi?id=125146
Reviewed by Darin Adler.
Do not presume that |yValue| is primitive if |value| is implicit in StylePropertySerializer.
An implicit y-value can become explicit if specified as a separate longhand.
At the same time, its new value can be non-primitive.
Backported from Blink:
http://src.chromium.org/viewvc/blink?view=rev&rev=153678
Test: fast/css/webkit-mask-crash-implicit.html
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getLayeredShorthandValue):
2013-12-03 Rob Buis <rob.buis@samsung.com>
Fix build break after r160007.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend):
2013-12-03 Rob Buis <rob.buis@samsung.com>
[css shapes] layout for new ellipse syntax
https://bugs.webkit.org/show_bug.cgi?id=124621
Reviewed by Dirk Schulze.
Implement support for doing layout with the new ellipse shape syntax,
including basic animation support.
Test: fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-000.html
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Convert new ellipse to a layout shape.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend): Ignore ellipses with values that
cannot be interpolated.
(WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Helper function to calculate
either radiusX or radiusY, shared by clip-path and shape code paths.
(WebCore::BasicShapeEllipse::path):
* rendering/style/BasicShapes.h:
2013-12-03 Frédéric Wang <fred.wang@free.fr>
Add an MathMLSelectElement class to implement <maction> and <semantics>.
<https://webkit.org/b/120058>
Reviewed by Chris Fleizach.
Tests: mathml/presentation/maction-dynamic.html
mathml/presentation/maction.html
mathml/presentation/semantics.html
This adds a new MathMLSelectElement class to prepare the implementation
of the <maction> and <semantics> elements, for which only one "selected"
child is visible. We now simply display the first child of the
<semantics> element instead of hiding the annotations and this allows to
handle the use case of SVG-in-MathML as generated by Instiki when
bug 124128 is fixed ; Gecko's selection algorithm will be implemented
later (bug 100626). We now also rely on the @actiontype and @selection
attributes to select the visible <maction> child ; It remains to deal
with the user interaction (bug 85734).
* CMakeLists.txt: add the new files.
* GNUmakefile.list.am: ditto
* Target.pri: ditto
* WebCore.vcxproj/WebCore.vcxproj: ditto
* WebCore.vcxproj/WebCore.vcxproj.filters: ditto
* WebCore.xcodeproj/project.pbxproj: ditto
* css/mathml.css: remove the CSS rule for annotation/annotation-xml.
* mathml/MathMLAllInOne.cpp: add the new cpp file.
* mathml/MathMLSelectElement.cpp: Added.
(WebCore::MathMLSelectElement::MathMLSelectElement):
(WebCore::MathMLSelectElement::create):
(WebCore::MathMLSelectElement::createRenderer):
(WebCore::MathMLSelectElement::childShouldCreateRenderer):
(WebCore::MathMLSelectElement::finishParsingChildren):
(WebCore::MathMLSelectElement::childrenChanged):
(WebCore::MathMLSelectElement::attributeChanged):
(WebCore::MathMLSelectElement::updateSelectedChild): basic implementation for maction, semantics, maction@actiontype and maction@selection.
* mathml/MathMLSelectElement.h: Added.
* mathml/mathattrs.in: add actiontype and selection attributes.
* mathml/mathtags.in: set element classes for maction, semantics, annotation and annotation-xml.
2013-12-03 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Nix Upstream: Adding missing nix new files to WebCore
https://bugs.webkit.org/show_bug.cgi?id=124987
Reviewed by Benjamin Poulain.
No new tests needed.
* PlatformNix.cmake:
* platform/nix/ErrorsNix.cpp: Added.
* platform/nix/ErrorsNix.h: Added.
* platform/nix/FileSystemNix.cpp: Added.
* platform/nix/MIMETypeRegistryNix.cpp: Added.
* platform/nix/SharedTimerNix.cpp: Added.
* platform/nix/TemporaryLinkStubs.cpp: Added.
2013-12-03 Tamas Gergely <gertom@inf.u-szeged.hu>
Correct broken build on efl port with --no-netscape-plugin-api
configuration.
https://bugs.webkit.org/show_bug.cgi?id=123997
Reviewed by Zoltan Herczeg.
Build failed on efl port with --no-netscape-plugin-api configuration
as ld did not found some methods. The configuration uses a minimal
empty implementation of the class, which is now extended with empty
method implementations.
* plugins/PluginPackageNone.cpp:
(WebCore::PluginPackage::createPackage):
Returns NULL pointer.
(WebCore::PluginPackage::hash):
Returns 0.
(WebCore::PluginPackage::equal):
Returns true (equals).
(WebCore::PluginPackage::compare):
Returns 0 (equals).
(WebCore::PluginPackage::~PluginPackage):
Do nothing.
2013-12-02 Andreas Kling <akling@apple.com>
Avoid setting style twice for generated image content.
<https://webkit.org/b/125128>
Take care of a FIXME I added in r158097 and avoid redundant work in
ImageContentData::createRenderer().
I changed the inheritance helper RenderImage::setPseudoStyle() into
a new createStyleInheritingFromPseudoStyle() function instead so it
can be used from both PseudoElement and ImageContentData.
Reviewed by Antti Koivisto.
2013-12-02 Samuel White <samuel_white@apple.com>
AX: Add AXUIElementCountForSearchPredicate parameterized attribute.
https://bugs.webkit.org/show_bug.cgi?id=124561
Reviewed by Chris Fleizach.
Added ability to fetch the number of elements that match a specific criteria. This will enable VoiceOver
to interface with WebKit much more dynamically. We can now get an idea of how many interesting elements
exist on a page, and then fetch them in chunks as needed.
Test: platform/mac/accessibility/search-predicate-element-count.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityTextSearchMatch):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilitySearchCriteria::AccessibilitySearchCriteria):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(accessibilitySearchCriteriaForSearchPredicateParameterizedAttribute):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2013-12-02 Bem Jones-Bey <bjonesbe@adobe.com>
[css shapes] Layout support for new circle shape syntax
https://bugs.webkit.org/show_bug.cgi?id=124619
Reviewed by Dirk Schulze.
Implement support for doing layout with the new circle shape syntax,
inclduing basic animation support.
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-circle-000.html
fast/shapes/shape-outside-floats/shape-outside-floats-circle-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-circle-002.html
fast/shapes/shape-outside-floats/shape-outside-floats-circle-003.html
fast/shapes/shape-outside-floats/shape-outside-floats-circle-004.html
fast/shapes/shape-outside-floats/shape-outside-floats-circle-005.html
* css/BasicShapeFunctions.cpp:
(WebCore::floatValueForCenterCoordinate): Used by both the CSS Shapes
layout code and the clip path code.
* css/BasicShapeFunctions.h:
* css/CSSBasicShapes.cpp:
(WebCore::buildCircleString): Update to use appendLiteral, and remove
call to reserveCapacity - if we find that it's actually slow when
doing performance tests, we can hopefully do something smarter and
less ugly than that.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShapeRadius): Fix a logic error that caused
the radius keywords not to work properly.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Convert new circle to a layout shape.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend): Ignore circles with values that
cannot be interpolated.
(WebCore::BasicShapeCircle::floatValueForRadiusInBox): Convert circle
radius keywords to a float value.
(WebCore::BasicShapeCircle::path):
(WebCore::BasicShapeCircle::blend):
* rendering/style/BasicShapes.h:
(WebCore::BasicShapeCenterCoordinate::canBlend):
(WebCore::BasicShapeRadius::canBlend):
2013-12-02 Alexey Proskuryakov <ap@apple.com>
WebCrypto HMAC doesn't check key algorithm's hash
https://bugs.webkit.org/show_bug.cgi?id=125114
Reviewed by Anders Carlsson.
Test: crypto/subtle/hmac-check-algorithm.html
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches): Check it.
2013-12-02 Brady Eidson <beidson@apple.com>
Possible crash in ProgressTracker::progressHeartbeatTimerFired(Timer<ProgressTracker>*)
https://bugs.webkit.org/show_bug.cgi?id=125110
Reviewed by Darin Adler.
FrameLoader::loadProgressingStatusChanged() might be called while the Frame has a null FrameView.
Its unclear how to reproduce, but theres no harm in a null check.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadProgressingStatusChanged):
2013-12-02 Brady Eidson <beidson@apple.com>
Possible crash in ProgressTracker::progressHeartbeatTimerFired(Timer<ProgressTracker>*)
https://bugs.webkit.org/show_bug.cgi?id=125110
Reviewed by Darin Adler.
Its possible to have a null m_originatingProgressFrame when the heartbeat timer fires.
On the surface this seems impossible because the only time m_originatingProgressFrame is cleared
out the heartbeat timer is also stopped.
But theres likely still a race condition in multi-threaded environments.
Theres no harm in null-checking m_originatingProgressFrame before accessing its loader.
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressHeartbeatTimerFired):
2013-12-02 Brady Eidson <beidson@apple.com>
Add more CachedPage null checks
https://bugs.webkit.org/show_bug.cgi?id=125106
Reviewed by Sam Weinig.
Only some functions in PageCache.cpp null-check the CachedPages in HistoryItems.
Every part that manipulates the CachedPage should.
* history/PageCache.cpp:
(WebCore::PageCache::markPagesForVistedLinkStyleRecalc):
(WebCore::PageCache::markPagesForFullStyleRecalc):
(WebCore::PageCache::markPagesForDeviceScaleChanged):
(WebCore::PageCache::markPagesForCaptionPreferencesChanged):
2013-12-02 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Support inset parsing
https://bugs.webkit.org/show_bug.cgi?id=124903
Reviewed by David Hyatt.
In this patch I added support for inset shape parsing for CSS Shapes. Inset is defined
by CSS Shapes Level 1 (http://dev.w3.org/csswg/css-shapes-1/#supported-basic-shapes).
Inset is going to be used by shape-outside (bug #124905), and eventually by shape-inside.
No new tests, I updated existing tests to cover the changes.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForBasicShape): Add support for inset.
(WebCore::basicShapeForValue): Add support for inset.
* css/CSSBasicShapes.cpp:
(WebCore::buildInsetString): Create inset css string.
(WebCore::CSSBasicShapeInset::cssText): Convert inset shape to a CSS string.
(WebCore::CSSBasicShapeInset::equals): Compare two inset rectangles.
(WebCore::CSSBasicShapeInset::serializeResolvingVariables): Create an inset string, with CSS variables resolved.
(WebCore::CSSBasicShapeInset::hasVariableReference): Determine if this inset has any CSS Variable references.
* css/CSSBasicShapes.h: Add inset class.
(WebCore::CSSBasicShapeInset::create):
(WebCore::CSSBasicShapeInset::top):
(WebCore::CSSBasicShapeInset::right):
(WebCore::CSSBasicShapeInset::bottom):
(WebCore::CSSBasicShapeInset::left):
(WebCore::CSSBasicShapeInset::topLeftRadius):
(WebCore::CSSBasicShapeInset::topRightRadius):
(WebCore::CSSBasicShapeInset::bottomRightRadius):
(WebCore::CSSBasicShapeInset::bottomLeftRadius):
(WebCore::CSSBasicShapeInset::setTop):
(WebCore::CSSBasicShapeInset::setRight):
(WebCore::CSSBasicShapeInset::setBottom):
(WebCore::CSSBasicShapeInset::setLeft):
(WebCore::CSSBasicShapeInset::setTopLeftRadius):
(WebCore::CSSBasicShapeInset::setTopRightRadius):
(WebCore::CSSBasicShapeInset::setBottomRightRadius):
(WebCore::CSSBasicShapeInset::setBottomLeftRadius):
(WebCore::CSSBasicShapeInset::CSSBasicShapeInset):
* css/CSSParser.cpp:
(WebCore::completeBorderRadii): Move static function before parseInsetBorderRadius.
(WebCore::CSSParser::parseInsetRoundedCorners): I added this helper function for parsing the rounded corners
(WebCore::CSSParser::parseBasicShapeInset): Parse inset.
(WebCore::CSSParser::parseBasicShape): Add call to parse inset.
* css/CSSParser.h:
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add constructor for LengthSize.
(WebCore::CSSPrimitiveValue::init): Initialize LengthSize.
* css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::create): Add support for creating PrimitiveValue from LengthSize.
* css/CSSValuePool.h:
(WebCore::CSSValuePool::createValue): Add support for LengthSize.
* platform/LengthSize.h:
(WebCore::LengthSize::blend): Add blend for LengthSize.
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::isEnabledFor): Keep inset disabled for shape-inside now.
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeInset::path): Calculate path for an inset.
(WebCore::BasicShapeInset::blend): Blend two insets.
* rendering/style/BasicShapes.h: Add higher level inset.
(WebCore::BasicShapeInset::create):
(WebCore::BasicShapeInset::top):
(WebCore::BasicShapeInset::right):
(WebCore::BasicShapeInset::bottom):
(WebCore::BasicShapeInset::left):
(WebCore::BasicShapeInset::topLeftRadius):
(WebCore::BasicShapeInset::topRightRadius):
(WebCore::BasicShapeInset::bottomRightRadius):
(WebCore::BasicShapeInset::bottomLeftRadius):
(WebCore::BasicShapeInset::setTop):
(WebCore::BasicShapeInset::setRight):
(WebCore::BasicShapeInset::setBottom):
(WebCore::BasicShapeInset::setLeft):
(WebCore::BasicShapeInset::setTopLeftRadius):
(WebCore::BasicShapeInset::setTopRightRadius):
(WebCore::BasicShapeInset::setBottomRightRadius):
(WebCore::BasicShapeInset::setBottomLeftRadius):
(WebCore::BasicShapeInset::BasicShapeInset):
2013-12-02 Alexey Proskuryakov <ap@apple.com>
Support WebCrypto AES-KW
https://bugs.webkit.org/show_bug.cgi?id=125105
Reviewed by Sam Weinig.
Tests: crypto/subtle/aes-kw-key-manipulation.html
crypto/subtle/aes-kw-wrap-unwrap-aes.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* crypto/CryptoAlgorithmIdentifier.h: (WebCore::CryptoAlgorithmIdentifier): Added AES-KW.
It's not standardized yet, but there appears to be a consensus that it will be specified.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):
Added AES-KW cases everywhere.
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
(WebCore::JSCryptoKeySerializationJWK::keySizeIsValid):
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
Support importing/exporting AES-KW keys in JWK.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::exportKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):
Added some accidentally forgotten std::moves.
* crypto/algorithms/CryptoAlgorithmAES_KW.cpp: Added.
* crypto/algorithms/CryptoAlgorithmAES_KW.h: Added.
* crypto/mac/CryptoAlgorithmAES_KWMac.cpp: Added.
* crypto/keys/CryptoKeyAES.cpp: (WebCore::CryptoKeyAES::CryptoKeyAES): Allow AES-KW
as valid algorithm for AES keys.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Register AES-KW.
2013-12-02 Beth Dakin <bdakin@apple.com>
Add a setting to opt into a mode where the background extends and fixed elements
don't move on rubber-band
https://bugs.webkit.org/show_bug.cgi?id=124745
Reviewed by Tim Horton.
New setting backgroundShouldExtendBeyondPage() will cause the tile cache to have a
margin, and it will also cause fixed elements and backgrounds to stick to the
viewport on scroll instead of sticking to the document.
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::scrollBehaviorForFixedElements):
* page/Settings.in:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
2013-12-02 Roger Zanoni <rogerzanoni@gmail.com>
[MediaStream] Use iterator-based loops instead of index-based loops
https://bugs.webkit.org/show_bug.cgi?id=125021
Reviewed by Eric Carlson.
Also, changing iterator variable names from iter to it and
initializing an 'end' variable in each loop instead of evaluating
'collection.end()' multiple times.
No new tests, covered by existing ones.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::cloneMediaStreamTrackVector):
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::trackDidEnd):
(WebCore::MediaStream::scheduledEventTimerFired):
2013-12-02 Rob Buis <rob.buis@samsung.com>
[css shapes] Parse new ellipse shape syntax
https://bugs.webkit.org/show_bug.cgi?id=124620
Reviewed by Dirk Schulze.
Implement parsing of the new ellipse shape syntax. This closely follows the patch
for the new circle syntax (https://bugs.webkit.org/show_bug.cgi?id=124618), with
some refactoring of functionality shared by both.
Updated existing parsing tests to cover this.
* css/BasicShapeFunctions.cpp:
(WebCore::BasicShapeRadiusToCSSValue):
(WebCore::valueForBasicShape):
(WebCore::CSSValueToBasicShapeRadius):
(WebCore::basicShapeForValue):
* css/CSSBasicShapes.cpp:
(WebCore::buildEllipseString):
(WebCore::CSSBasicShapeEllipse::cssText):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::buildDeprecatedEllipseString):
(WebCore::CSSDeprecatedBasicShapeEllipse::cssText):
(WebCore::CSSDeprecatedBasicShapeEllipse::equals):
* css/CSSBasicShapes.h:
(WebCore::CSSDeprecatedBasicShapeEllipse::create):
(WebCore::CSSDeprecatedBasicShapeEllipse::centerX):
(WebCore::CSSDeprecatedBasicShapeEllipse::centerY):
(WebCore::CSSDeprecatedBasicShapeEllipse::radiusX):
(WebCore::CSSDeprecatedBasicShapeEllipse::radiusY):
(WebCore::CSSDeprecatedBasicShapeEllipse::setCenterX):
(WebCore::CSSDeprecatedBasicShapeEllipse::setCenterY):
(WebCore::CSSDeprecatedBasicShapeEllipse::setRadiusX):
(WebCore::CSSDeprecatedBasicShapeEllipse::setRadiusY):
(WebCore::CSSDeprecatedBasicShapeEllipse::CSSDeprecatedBasicShapeEllipse):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBasicShapeEllipse):
(WebCore::CSSParser::parseDeprecatedBasicShapeEllipse):
(WebCore::CSSParser::parseBasicShape):
* css/CSSParser.h:
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
* rendering/style/BasicShapes.cpp:
(WebCore::DeprecatedBasicShapeEllipse::path):
(WebCore::DeprecatedBasicShapeEllipse::blend):
(WebCore::BasicShapeEllipse::path):
(WebCore::BasicShapeEllipse::blend):
* rendering/style/BasicShapes.h:
(WebCore::BasicShapeEllipse::centerX):
(WebCore::BasicShapeEllipse::centerY):
(WebCore::BasicShapeEllipse::radiusX):
(WebCore::BasicShapeEllipse::radiusY):
(WebCore::BasicShapeEllipse::setCenterX):
(WebCore::BasicShapeEllipse::setCenterY):
(WebCore::BasicShapeEllipse::setRadiusX):
(WebCore::BasicShapeEllipse::setRadiusY):
(WebCore::BasicShapeEllipse::BasicShapeEllipse):
(WebCore::DeprecatedBasicShapeEllipse::create):
(WebCore::DeprecatedBasicShapeEllipse::DeprecatedBasicShapeEllipse):
2013-12-02 Alexey Proskuryakov <ap@apple.com>
Add support for WebCrypto RSA-OAEP
https://bugs.webkit.org/show_bug.cgi?id=125084
Build fix.
* crypto/CommonCryptoUtilities.h:
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
* crypto/mac/CryptoKeyRSAMac.cpp:
2013-12-02 Brendan Long <b.long@cablelabs.com>
Use GenericEventQueue in TrackListBase and reduce code duplication with scheduleTrackEvent()
https://bugs.webkit.org/show_bug.cgi?id=124811
Reviewed by Eric Carlson.
No new tests because this is just refactoring.
* html/track/TrackListBase.cpp:
(TrackListBase::TrackListBase): Replace event code with a GenericEventQueue.
(TrackListBase::scheduleTrackEvent): Factor out duplicate code in schedule{Add,Remove}TrackEvent functions.
(TrackListBase::scheduleAddTrackEvent): Same.
(TrackListBase::scheduleRemoveTrackEvent): Same.
(TrackListBase::scheduleChangeEvent): Use GenericEventQueue.
* html/track/TrackListBase.h: Replace event code with GenericEventQueue.
2013-12-02 Alexey Proskuryakov <ap@apple.com>
Add support for WebCrypto RSA-OAEP
https://bugs.webkit.org/show_bug.cgi?id=125084
Build fix.
* WebCore.xcodeproj/project.pbxproj: Fix an automatic merge failure by re-adding
CryptoAlgorithmRsaOaepParams.h.
2013-12-02 Victor Jaquez <vjaquez@igalia.com>
[Gstreamer] update webkitvideosink metadata
https://bugs.webkit.org/show_bug.cgi?id=125082
Reviewed by Philippe Normand.
No new tests, no behavior changes.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkit_video_sink_class_init):
2013-12-02 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
Simplify MediaPlayerPrivateGStreamerBase::createVideoSink()
https://bugs.webkit.org/show_bug.cgi?id=125077
Remove the method's unused parameter.
Remove the GStreamer 0.10.22 run-time validation, since we are using
GStreamer 1.0 officially.
Remove the creation of a spurious Bin for the video sink, since
either the fpssink or the webkitsink are valid sink elements.
Change fpsink to a GRefPtr.
Now, createVideoSink() returns a simple pointer to the created sink
element.
Reviewed by Philippe Normand.
No new tests, no behavior changes.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
(WebCore::MediaPlayerPrivateGStreamerBase::decodedFrameCount):
(WebCore::MediaPlayerPrivateGStreamerBase::droppedFrameCount):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
2013-12-02 Alexey Proskuryakov <ap@apple.com>
Add support for WebCrypto RSA-OAEP
https://bugs.webkit.org/show_bug.cgi?id=125084
Reviewed by Sam Weinig.
Tests: crypto/subtle/rsa-oaep-key-manipulation.html
crypto/subtle/rsa-oaep-plaintext-length.html
crypto/subtle/rsa-oaep-wrap-unwrap-aes.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createRsaOaepParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
Added RSA-OAEP parameters.
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
(WebCore::JSCryptoKeySerializationJWK::keySizeIsValid):
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
Support RSA-OAEP in JWK. It is more limited than general WebCrypto, as JWK only
allows SHA-1 as hash.
* crypto/CommonCryptoUtilities.cpp: Added. (WebCore::getCommonCryptoDigestAlgorithm):
* crypto/CommonCryptoUtilities.h: Added.
Extracted some shared code and forward declarations for CommonCrypto.
* crypto/CryptoAlgorithmParameters.h: (WebCore::CryptoAlgorithmParameters::Class):
* crypto/parameters/CryptoAlgorithmRsaOaepParams.h: Added.
Added RsaOaepParams.
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp: Added.
* crypto/algorithms/CryptoAlgorithmRSA_OAEP.h: Added.
* crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp: Added.
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::getCommonCryptoHMACAlgorithm):
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
* crypto/mac/CryptoKeyMac.cpp:
* crypto/mac/CryptoKeyRSAMac.cpp:
Use CommonCryptoUtilities.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Register RSA-OAEP.
2013-12-02 Andres Gomez <agomez@igalia.com>
[GTK] Fails to build with freetype 2.5.1
https://bugs.webkit.org/show_bug.cgi?id=125074
Reviewed by Carlos Garcia Campos.
FreeType specifies a canonical way of including their own
headers. Now, we are following this recommendation so the
compilation won't be broken again due to an upgrade in FeeType's
including paths.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
* platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
2013-12-02 Chris Fleizach <cfleizach@apple.com>
AX: Crash at WebCore::commonTreeScope
https://bugs.webkit.org/show_bug.cgi?id=125042
Reviewed by Mario Sanchez Prada.
When an AX text marker that references a node in a detached document is used to create a text marker range, a crash occurs
because the method to determine commonTreeScopes does not account for when there are no common tree scopes.
Test: platform/mac/accessibility/ordered-textmarker-crash.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::visiblePositionRangeForUnorderedPositions):
* dom/TreeScope.cpp:
(WebCore::commonTreeScope):
2013-12-02 Nick Diego Yamane <nick.yamane@openbossa.org>
Fix a crash in the webaudio source provider when the audio track is going away.
https://bugs.webkit.org/show_bug.cgi?id=124975
Reviewed by Philippe Normand.
Merged https://chromium.googlesource.com/chromium/blink/+/b21838b32bf11b1a972dfc449ddde71115490c23
Before this patch, it was hitting a use-after-free crash when the audio
track in the media stream is going away and the webaudio mediastreamsourcenode
is still running.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource): Passing audio track
pointer to MediaStreamAudioSourceNode constructor.
* Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::create):
(WebCore::MediaStreamAudioSourceNode::MediaStreamAudioSourceNode):
* Modules/webaudio/MediaStreamAudioSourceNode.h: Added
MediaStreamTrack class variable and change the constructor to receive
it as parameter.
2013-12-02 Andrzej Badowski <a.badowski@samsung.com>
[ATK] Support active state for listbox elements.
https://bugs.webkit.org/show_bug.cgi?id=125009
Reviewed by Chris Fleizach.
Added support for ATK_STATE_ACTIVE for listbox elements.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(setAtkStateSetFromCoreObject):
2013-12-02 Seokju Kwon <seokju@webkit.org>
Web Inspector: Remove unused functions from InspectorAgent
https://bugs.webkit.org/show_bug.cgi?id=125061
Reviewed by Antoine Quint.
Get rid of unused functions, redundant inclusion and forward declaration.
No new tests, no behavior changes.
* inspector/InspectorAgent.cpp:
* inspector/InspectorAgent.h:
2013-12-02 Tibor Meszaros <mtibor@inf.u-szeged.hu>
Fix build warning in EventHandler.cpp
https://bugs.webkit.org/show_bug.cgi?id=125010
Reviewed by Csaba Osztrogonác.
* page/EventHandler.cpp:
(WebCore::EventHandler::eventInvertsTabsToLinksClientCallResult):
2013-12-02 Attila Dusnoki <adusnoki@inf.u-szeged.hu>
HTML5 required attribute validation messages implemented.
https://bugs.webkit.org/show_bug.cgi?id=125003
Reviewed by Gyuyoung Kim.
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::validationMessagePatternMismatchText):
(WebCore::validationMessageValueMissingText):
(WebCore::validationMessageValueMissingForCheckboxText):
(WebCore::validationMessageValueMissingForFileText):
(WebCore::validationMessageValueMissingForMultipleFileText):
(WebCore::validationMessageValueMissingForRadioText):
(WebCore::validationMessageValueMissingForSelectText):
(WebCore::validationMessageBadInputForNumberText):
2013-12-01 Andreas Kling <akling@apple.com>
SVG: Intersection/enclosure checks should use RenderElement.
<https://webkit.org/b/125058>
Make RenderSVGModelObject's checkIntersection() and checkEnclosure()
take RenderElement* instead of RenderObject*. They are only ever
called with SVGElement's renderers.
Reviewed by Sam Weinig.
2013-12-01 Andreas Kling <akling@apple.com>
Remove unreachable labels for -webkit-margin-*-collapse properties.
<https://webkit.org/b/125057>
The following properties are implemented in DeprecatedStyleBuilder
and should not have case labels in the applyProperty() switch:
-webkit-margin-before-collapse
-webkit-margin-top-collapse
-webkit-margin-after-collapse
-webkit-margin-bottom-collapse
This seems counter-intuitive, but they are actually *not* like other
directional properties. In this case, before/after are only aliases
for top/bottom, and do not depend on writing-mode or text-direction.
See also r68561, where the aliases were originally added.
Reviewed by Anders Carlsson.
2013-12-01 Andreas Kling <akling@apple.com>
CSSFunctionValue constructors should return PassRef.
<https://webkit.org/b/125054>
Make CSSFunctionValue::create() helpers return PassRef instead of
PassRefPtr since they will never return null.
Reviewed by Anders Carlsson.
2013-12-01 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r159764.
http://trac.webkit.org/changeset/159764
https://bugs.webkit.org/show_bug.cgi?id=125055
appears to hurt html5-full-render times (Requested by kling on
#webkit).
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertTextNode):
* html/parser/HTMLConstructionSite.h:
2013-12-01 Andreas Kling <akling@apple.com>
Make more computed style helpers return PassRef.
<https://webkit.org/b/125043>
Reduce branchiness in computed style code by making more of the
file-local helpers return PassRef instead of PassRefPtr.
Reviewed by Anders Carlsson.
2013-11-30 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Implement scrollbarThickness for opaque scrollbar
https://bugs.webkit.org/show_bug.cgi?id=125034
Reviewed by Gyuyoung Kim.
Implemented scrollbarThickness to support opaque scrollbar.
Now, edj can decide whether to support opaque scrollbar by adding scrollbar.thickness.
In addition, added OVERRIDE/FINAL keyword and removed unnecessary destructor
in ScrollbarThemeEfl.cpp.
No new tests, no behavior changes with default theme.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::loadTheme):
Update thickness of scrollbar when theme was loaded.
* platform/efl/ScrollbarThemeEfl.cpp:
* platform/efl/ScrollbarThemeEfl.h:
(WebCore::ScrollbarThemeEfl::setScrollbarThickness):
(WebCore::ScrollbarThemeEfl::scrollbarThickness):
(WebCore::ScrollbarThemeEfl::registerScrollbar):
(WebCore::ScrollbarThemeEfl::unregisterScrollbar):
2013-11-29 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
Remove Symbian specific code.
https://bugs.webkit.org/show_bug.cgi?id=124939
Reviewed by Zoltan Herczeg.
Symbian is not supported, remove leftover code.
* plugins/npapi.h:
2013-11-28 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Rename InlineIterator::m_obj and make it private
https://bugs.webkit.org/show_bug.cgi?id=124837
Reviewed by Antti Koivisto.
InlineIterator has been exported m_obj as public though there is a getter function.
Besides *object* name isn't ambigious. So, changed it with m_renderer and renderer().
Additionally, setRenderer() is added as well.
No new tests, no behavior changes.
* rendering/InlineIterator.h:
(WebCore::InlineIterator::setObject):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::InlineBidiResolver::appendRun):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::appendRunsForObject):
(WebCore::constructBidiRunsForLine):
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::matchedEndLine):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::currentObject):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::handleBR):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleFloat):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::iteratorIsBeyondEndOfRenderCombineText):
(WebCore::ensureCharacterGetsLineBox):
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
(WebCore::checkMidpoints):
(WebCore::BreakingContext::handleEndOfLine):
* rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::skipTrailingWhitespace):
(WebCore::LineBreaker::skipLeadingWhitespace):
* rendering/line/LineInlineHeaders.h:
(WebCore::skipNonBreakingSpace):
(WebCore::requiresLineBox):
2013-11-28 Antti Koivisto <antti@apple.com>
Rename StylePropertySet to StyleProperties
https://bugs.webkit.org/show_bug.cgi?id=124990
Reviewed by Andreas Kling.
"Set" does not add useful information here. Use less clunky plural name.
2013-11-28 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Nix Upstream: Adding EditorNix to WebCore
https://bugs.webkit.org/show_bug.cgi?id=124984
Reviewed by Csaba Osztrogonác.
No new tests needed.
* PlatformNix.cmake:
* editing/nix/EditorNix.cpp: Added.
2013-11-28 Zoltan Horvath <zoltan@webkit.org>
[Win] Update vcxproj.filters, since LineInfo.h and LineLayoutState.h have been moved to rendering/line
https://bugs.webkit.org/show_bug.cgi?id=124959
Reviewed by Brent Fulgham.
Update WebCore.vcxproj.filters, since LineInfo.h (r155628) and LineLayoutState.h (158121) have been moved to rendering/line.
No new tests, no behavior change.
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-11-28 Laszlo Vidacs <lac@inf.u-szeged.hu>
RenderTableSection Blink merge asserting
https://bugs.webkit.org/show_bug.cgi?id=124857
Reviewed by Csaba Osztrogonác.
Use border spacing at the end of all sections.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
2013-11-28 Antti Koivisto <antti@apple.com>
Remove feature: CSS variables
https://bugs.webkit.org/show_bug.cgi?id=114119
Reviewed by Andreas Kling.
The feature is unmaintained and it is getting in the way of refactoring. Code quality is not up to
WebKit standards either.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSBasicShapes.cpp:
* css/CSSBasicShapes.h:
* css/CSSCalculationValue.cpp:
(WebCore::unitCategory):
(WebCore::hasDoubleValue):
(WebCore::CSSCalcPrimitiveValue::toCalcValue):
(WebCore::CSSCalcPrimitiveValue::computeLengthPx):
(WebCore::determineCategory):
(WebCore::CSSCalcBinaryOperation::primitiveType):
* css/CSSCalculationValue.h:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::filterProperties):
(WebCore::CSSParser::createStylePropertySet):
(WebCore::CSSParser::addProperty):
(WebCore::CSSParser::validCalculationUnit):
(WebCore::CSSParser::validUnit):
(WebCore::CSSParser::createPrimitiveNumericValue):
(WebCore::CSSParser::parseValidPrimitive):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseReflect):
(WebCore::CSSParser::detectDashToken):
(WebCore::CSSParser::realLex):
* css/CSSParser.h:
* css/CSSParserMode.h:
* css/CSSParserValues.cpp:
(WebCore::CSSParserValue::createCSSValue):
* css/CSSParserValues.h:
* css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::CSSPrimitiveValue::primitiveType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getStringValue):
(WebCore::CSSPrimitiveValue::customCSSText):
(WebCore::CSSPrimitiveValue::equals):
* css/CSSPrimitiveValue.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::convertToLength):
* css/CSSProperty.cpp:
* css/CSSProperty.h:
(WebCore::CSSProperty::CSSProperty):
* css/CSSReflectValue.cpp:
* css/CSSReflectValue.h:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/CSSValue.h:
(WebCore::CSSValue::setCssText):
* css/CSSValueList.cpp:
* css/CSSValueList.h:
* css/CSSVariableValue.h: Removed.
* css/Pair.h:
* css/Rect.h:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::asText):
(WebCore::StylePropertySet::PropertyReference::cssName):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyProperties):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyProperty):
* css/StyleResolver.h:
* css/WebKitCSSTransformValue.cpp:
* css/WebKitCSSTransformValue.h:
(WebCore::WebKitCSSTransformValue::equals):
* css/makeprop.pl:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
* rendering/style/StyleVariableData.h: Removed.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
2013-11-28 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Updating RTCPeerConnectionHandlerMock after r159769
https://bugs.webkit.org/show_bug.cgi?id=124947
Reviewed by Philippe Normand.
Adding its create function back, in order to run RTCPeerConnection LayoutTests.
No new tests needed.
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::create):
* platform/mock/RTCPeerConnectionHandlerMock.h:
2013-11-27 Gustavo Noronha Silva <gustavo.noronha@collabora.com>
[GTK] Support custom types for drag and drop data
https://bugs.webkit.org/show_bug.cgi?id=124659
Reviewed by Martin Robinson.
Covered by fast/events/drag-customData.html.
* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::unknownTypes): returns a hash map with all custom types set.
(WebCore::DataObjectGtk::clearAllExceptFilenames): clear custom types.
* platform/gtk/DataObjectGtk.h:
(WebCore::DataObjectGtk::hasUnknownTypeData): returns whether custom types are set.
(WebCore::DataObjectGtk::unknownTypeData): returns the data for a custom type.
(WebCore::DataObjectGtk::setUnknownTypeData): sets the data for a custom type.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeString): handle unknown types as custom.
(WebCore::Pasteboard::writePasteboard): ditto.
(WebCore::Pasteboard::hasData): also check for custom types.
(WebCore::Pasteboard::types): also obtain the list of custom types.
(WebCore::Pasteboard::readString): handle unknown types as custom.
* platform/gtk/PasteboardHelper.cpp:
(WebCore::initGdkAtoms): new unknown atom.
(WebCore::PasteboardHelper::PasteboardHelper): add custom type to the list of targets.
(WebCore::PasteboardHelper::fillSelectionData): turns any custom types' data into a GVariant, which
is in turn serialized to a single string for GtkSelectionData to hold.
(WebCore::PasteboardHelper::targetListForDataObject): add custom data to the target list if any is
set.
(WebCore::PasteboardHelper::fillDataObjectFromDropData): retrieve the custom types and their data
from the serialized GVariant string held by GtkSelectionData.
(WebCore::PasteboardHelper::dropAtomsForContext): handle custom types.
2013-11-27 Eric Carlson <eric.carlson@apple.com>
Allow the QuickTime plug-in to be replaced by script in an isolated word
https://bugs.webkit.org/show_bug.cgi?id=124900
Reviewed by Dean Jackson.
Test: plugins/quicktime-plugin-replacement.html
* CMakeLists.txt: Add new Modules path.
* DerivedSources.make: Add new files.
* GNUmakefile.am: Add new Modules path.
* GNUmakefile.list.am: Add new header.
* WebCore.vcxproj/WebCore.vcxproj: Add new header.
* WebCore.vcxproj/WebCoreCommon.props: Add new Modules path.
* WebCore.xcodeproj/project.pbxproj: Add new files.
* Modules/plugins: Added.
* Modules/plugins/PluginReplacement.h: Added. Defines the interface for a plug-in replacement.
Create a replacement for the QuickTime plug-in.
* Modules/plugins/QuickTimePluginReplacement.cpp: Added.
* Modules/plugins/QuickTimePluginReplacement.css: Added.
* Modules/plugins/QuickTimePluginReplacement.h: Added.
* Modules/plugins/QuickTimePluginReplacement.idl: Added.
* Modules/plugins/QuickTimePluginReplacement.js: Added.
Allow plug-in replacement to be enabled at runtime.
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setPluginReplacementEnabled):
(WebCore::RuntimeEnabledFeatures::pluginReplacementEnabled):
* bindings/js/JSDOMBinding.h:
(WebCore::toJS): Add toJS(... const String& ...).
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginScriptObject): Give a plug-in replacement a first shot at defining the
script interface.
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::updateWidget): Call base class requestObject.
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::fileSize): New, passthrough to media engine.
* html/HTMLMediaElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::updateWidget): Call base class requestObject.
Moved some logic that was previously used only for creating a plug-in snapshot to the base
class so it can be shared by a plug-in replacement.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::HTMLPlugInElement): Initialize timer used to swap renderers.
(WebCore::HTMLPlugInElement::createRenderer): Allow plug-in replacement to create the renderer.
(WebCore::HTMLPlugInElement::swapRendererTimerFired): Create a shadow root.
(WebCore::HTMLPlugInElement::setDisplayState): Set the new state, prime the swap renderer
timer if necessary.
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Tell the plug-in replacement to
install itself in the new shadow DOM.
(WebCore::registeredPluginReplacements): Return vector of all registered plug-in replacements.
(WebCore::registerPluginReplacement): Add a plug-in replacement.
(WebCore::pluginReplacementForType): Find a plug-in replacement for a MIME type.
(WebCore::HTMLPlugInElement::requestObject): If there is a plug-in replacement for the MIME type,
create it and set the display state.
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Return the script object for
the current plug-in replacement, if any.
* html/HTMLPlugInElement.h:
Move some plug-in snapshot code into the base class.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): No need to initialize timer.
(WebCore::HTMLPlugInImageElement::setDisplayState): Call base class.
(WebCore::HTMLPlugInImageElement::createRenderer): Ditto.
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Ditto.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Remove unnecessary class name.
(WebCore::HTMLPlugInImageElement::requestObject): New.
* html/HTMLPlugInImageElement.h:
* html/HTMLVideoElement.h: Make createRenderer public so the QuickTime plug-in replacement can
call it.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::fileSize): New.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost): totalBytes returns an unsigned long long.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::fileSize):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::totalBytes): Return an unsigned long long.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Ditto.
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Backup the plug-in replacement runtime setting.
(WebCore::InternalSettings::Backup::restoreTo): Restore it.
(WebCore::InternalSettings::setPluginReplacementEnabled): Set it.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
2013-11-27 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding MediaConstraintsMock class
https://bugs.webkit.org/show_bug.cgi?id=124902
Reviewed by Eric Carlson.
Validate constraints used in RTCPeerConnection LayoutTests
Existing test was updated.
* CMakeLists.txt:
* GNUmakefile.list.am:
* platform/mock/MediaConstraintsMock.cpp: Added.
* platform/mock/MediaConstraintsMock.h: Added.
* platform/mock/MockMediaStreamCenter.cpp:
(WebCore::MockMediaStreamCenter::validateRequestConstraints): Now using MediaConstraintsMock
(WebCore::MockMediaStreamCenter::createMediaStream): Ditto.
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::initialize): Ditto.
2013-11-27 Bear Travis <betravis@adobe.com>
[CSS Shapes] Shape-Inside Should Default to 'auto'
https://bugs.webkit.org/show_bug.cgi?id=124851
Reviewed by Alexandru Chiculita.
The current shape-inside specification has the property default to the 'auto'
value, not 'outside-shape'.
Updated tests are under fast/shapes.
* rendering/style/RenderStyle.cpp:
* rendering/style/RenderStyle.h:
2013-11-27 Hans Muller <hmuller@adobe.com>
[CSS Shapes] shape-inside rectangle layout can fail
https://bugs.webkit.org/show_bug.cgi?id=124784
Reviewed by Andreas Kling.
Apply LayoutUnit::fromFloatCeil() consistently in RectangleShape::firstIncludedIntervalLogicalTop().
Test: fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top.html
* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
2013-11-27 Nick Diego Yamane <nick.yamane@openbossa.org>
Remove Qt-specific .qrc files
https://bugs.webkit.org/show_bug.cgi?id=124944
Reviewed by Andreas Kling.
No new tests needed.
* WebCore.qrc: Removed.
2013-11-27 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] Invalid command line error when visiting www.chessbase.com
https://bugs.webkit.org/show_bug.cgi?id=124715
Reviewed by Philippe Normand.
We were not handling the HTTP errors in the WebKit GStreamer
source and therefore the 404 error page was being 'decoded'. As no
decoder could be found (for obvious reasons), playback failed, but
it should be failing for the source not being found instead of the
decoding problem.
Test: http/tests/media/video-error-does-not-exist.html
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient::handleResponseReceived): Handle HTTP errors in
the source and raise a GStreamer error to the pipeline.
2013-11-14 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Fix positioning of grid items with margins
https://bugs.webkit.org/show_bug.cgi?id=124345
Reviewed by David Hyatt.
From Blink r157925 and r158041 by <jchaffraix@chromium.org>
Test: fast/css-grid-layout/grid-item-margin-resolution.html
Adds margin start/before to the positions of grid items (removing
several FIXME's in the current code). This means calling
findChildLogicalPosition() after the layout in order to have the
right values for the margins.
In order to match flexbox and author's intents we're also
including the margins of grid items in the intrinsic size of the
grid. That's why flexbox's marginLogicalPositionForChild() is
moved up to RenderBlock in order to share it with RenderGrid.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::marginIntrinsicLogicalWidthForChild): Moved
from RenderFlexibleBox::marginLogicalWidthForChild().
* rendering/RenderBlock.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computePreferredTrackWidth):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::findChildLogicalPosition):
2013-11-26 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
https://bugs.webkit.org/show_bug.cgi?id=103312
Reviewed by Andreas Kling.
Added support for the repeat() syntax inside
grid-definition-{rows|columns} by just adding the repeated values
to our list of column|row definitions.
The parsing of <track-name> was refactored in a new function as
it's used now in three different places. The <track-size> parsing
was also refactored to share it with the repeat() parsing.
Test: fast/css-grid-layout/grid-element-repeat-get-set.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridTrackNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):
* css/CSSParser.h:
2013-11-26 Marcelo Lira <marcelo.lira@openbossa.org>
Nix upstreaming - Adding build files and supporting scripts
https://bugs.webkit.org/show_bug.cgi?id=118367
Reviewed by Ryosuke Niwa.
No new tests needed.
* CMakeLists.txt:
* PlatformNix.cmake: Added.
2013-11-26 Tim Horton <timothy_horton@apple.com>
Don't parent the TileController root layer in two places
https://bugs.webkit.org/show_bug.cgi?id=124873
Reviewed by Brent Fulgham.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
The TileController's layer is already parented by callers of
TileController::create, and in a special way. TileController
shouldn't parent itself, anyway...
2013-11-26 Nick Diego Yamane <nick.yamane@openbossa.org>
[MediaStream API] HTMLMediaElement should be able to use MediaStream as source
https://bugs.webkit.org/show_bug.cgi?id=121943
Reviewed by Eric Carlson.
Implement MediaStream direct assignment to Media Elements using the new 'srcObject'
attribute: http://www.w3.org/TR/mediacapture-streams/#direct-assignment-to-media-elements
Test: fast/mediastream/MediaStream-MediaElement-srcObject.html
* CMakeLists.txt: Added new HTMLMediaElementMediaStream.h and .cpp to cmake build.
* DerivedSources.make: Added HTMLMediaElementMediaStream.idl.
* GNUmakefile.list.am: Added new HTMLMediaElementMediaStream* to autotools build.
* WebCore.xcodeproj/project.pbxproj: Added new files.
* Modules/mediastream/HTMLMediaElementMediaStream.cpp: Added.
(WebCore::HTMLMediaElementMediaStream::srcObject): implements srcObject getter.
(WebCore::HTMLMediaElementMediaStream::setSrcObject): implements srcObject setter.
* Modules/mediastream/HTMLMediaElementMediaStream.h: Added.
* Modules/mediastream/HTMLMediaElementMediaStream.idl: Added.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setSrcObject): This is an initial implementation, and
is still incomplete, that will be addressed in a separate bug: https://webkit.org/b/124896
* html/HTMLMediaElement.h: Added m_mediaStreamSrcObject class variable
and its corresponding getter.
2013-11-26 Andreas Kling <akling@apple.com>
Use child iterator to find operators in RenderMathMLRow::layout().
<https://webkit.org/b/124108>
Replace manual children walk with childrenOfType<RenderMathMLBlock>.
Minor update to fix build.
Reviewed by Martin Robinson.
2013-11-26 Andreas Kling <akling@apple.com>
RenderObject: Inline isBody() and isHR().
<https://webkit.org/b/124901>
Together these account for ~0.3% of samples on HTML5-8266.
Almost all of it is call overhead.
Reviewed by Anders Carlsson.
2013-11-26 Bear Travis <betravis@adobe.com>
[CSS Shapes] Layout using [<box> || <shape>] value
https://bugs.webkit.org/show_bug.cgi?id=124428
Reviewed by David Hyatt.
When a box value is supplied, use it to size and position the shape. Otherwise,
use a default value (content-box for shape-inside, margin-box for shape-outside).
This patch extends the sizing and positioning code used for the box patch (Bug 124227)
to also apply to shapes. With this patch, we also no longer use the box-sizing
property to size and position shapes.
Tests: fast/shapes/shape-outside-floats/shape-outside-shape-boxes-001.html
fast/shapes/shape-outside-floats/shape-outside-shape-boxes-002.html
fast/shapes/shape-outside-floats/shape-outside-shape-boxes-003.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Adjust for ShapeValues storing
BasicShape::ReferenceBox as their box value, rather than a CSSValueID.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyShape::applyValue): Ditto.
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::setShapeSize): Adjust for BasicShapes with reference boxes
as well as plain box values. Also, remove old box-sizing code.
(WebCore::ShapeInfo::logicalTopOffset): Ditto.
(WebCore::ShapeInfo::logicalLeftOffset): Ditto.
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.h:
* rendering/style/ShapeValue.h:
(WebCore::ShapeValue::createBoxValue): Adjust for boxes being stored as
BasicShape::ReferenceBoxes.
(WebCore::ShapeValue::box): Ditto.
(WebCore::ShapeValue::ShapeValue): Ditto.
2013-11-26 Brian J. Burg <burg@cs.washington.edu>
ImageBuffer::create should return a std::unique_ptr instead of OwnPtr.
https://bugs.webkit.org/show_bug.cgi?id=124822
Reviewed by Andreas Kling.
Replace all uses of OwnPtr<ImageBuffer> and PassOwnPtr<ImageBuffer> with
std::unique_ptr<ImageBuffer>. Replace calls to OwnPtr::clear() and
OwnPtr::release() with reset() and std::move(). Remove unnecessary includes.
No new tests. This is a mechanical refactoring.
* css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::setSurfaceSize):
* html/HTMLCanvasElement.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createCompositingBuffer):
(WebCore::CanvasRenderingContext2D::fullCanvasCompositedDrawImage):
(WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::LRUImageBufferCache::LRUImageBufferCache):
(WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):
* html/canvas/WebGLRenderingContext.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
* page/Frame.cpp:
(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern):
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::drawPattern):
* platform/graphics/GradientImage.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createCompatibleBuffer):
* platform/graphics/GraphicsContext.h:
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::create):
* platform/graphics/ShadowBlur.cpp:
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::putByteArray):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
* platform/graphics/filters/Filter.h:
(WebCore::Filter::setSourceImage):
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::clearResult):
* platform/graphics/filters/FilterEffect.h:
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::BitmapTexture::updateContents):
* platform/graphics/texmap/TextureMapperImageBuffer.h:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
* rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::invalidateBufferedForeground):
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
* rendering/svg/RenderSVGResourceClipper.h:
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceGradient.cpp: Remove method parameter wrapping/indentation.
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
* rendering/svg/RenderSVGResourceMasker.h:
* rendering/svg/RenderSVGResourcePattern.cpp: Remove method parameter wrapping/indentation.
(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::createTileImage):
* rendering/svg/RenderSVGResourcePattern.h: Remove method parameter wrapping/indentation.
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::createImageBufferForPattern):
(WebCore::SVGRenderingContext::clipToImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):
* rendering/svg/SVGRenderingContext.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::drawPatternForContainer):
2013-11-26 Eric Carlson <eric.carlson@apple.com>
video.currentSrc should return empty when no resource is loaded
https://bugs.webkit.org/show_bug.cgi?id=124898
Reviewed by Dan Bernstein.
Test: media/video-currentsrc-cleared.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad): Set m_currentSrc to empty in
preparation for attempting to load a new url.
2013-11-26 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Support for shape-margin in BoxShape
https://bugs.webkit.org/show_bug.cgi?id=124788
Reviewed by Andreas Kling.
Corrected BoxShape's internal shape-margin/padding bounds FloatRoundedRect
initialization. Tests for the padding bounds will be added when the rest of
shape-padding for box shapes implementation is ready.
Tests: fast/shapes/shape-outside-floats/shape-outside-margin-boxes-001.html
fast/shapes/shape-outside-floats/shape-outside-margin-boxes-002.html
* rendering/shapes/BoxShape.cpp: Use constructor shape-margin,shape-padding parameters.
(WebCore::BoxShape::BoxShape):
* rendering/shapes/BoxShape.h:
* rendering/shapes/Shape.cpp:
(WebCore::createBoxShape): Pass the shape-margin and shape-padding values along to the BoxShape constructor.
(WebCore::Shape::createShape): Ditto.
2013-11-26 Nick Diego Yamane <nick.yamane@openbossa.org>
Remove unnecessary webaudio include from MediaStreamSource header
https://bugs.webkit.org/show_bug.cgi?id=124897
Reviewed by Eric Carlson.
AudioDestinationConsumer.h is included but not used anywhere in
MediaStreamSource implementation.
* platform/mediastream/MediaStreamSource.h:
2013-11-26 Andreas Kling <akling@apple.com>
Avoid unnecessary copy-on-write in FillLayer style application.
<https://webkit.org/b/124878>
We ended up with a lot of cloned StyleBackgroundData objects on
HTML5-8266. This happened because we always forced a copy-on-write
when applying background-image:inherit / background-image:initial.
This patch adds early returns to both functions. In the "inherit"
case, we bail early if the target style already has the same fill
layer data as its parent style.
In the "initial" case, we optimize for the single-FillLayer case
and add an early return if the relevant value is either unset or
equal to the templatized initial value.
2.46 MB progression on HTML5-8266 locally.
Reviewed by Antti Koivisto.
2013-11-26 Antoine Quint <graouts@apple.com>
Web Inspector: Allow showing a context menu on all mouse events.
https://bugs.webkit.org/show_bug.cgi?id=124747
Reviewed by Joseph Pecoraro.
Add a new InspectorFrontendHost::dispatchEventAsContextMenuEvent(Event*) method
to let the inspector front-end dispatch a native contextmenu event that will allow
for a context menu to be shown from within a non-contextmenu event handler.
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
Check that we're dealing with a mouse event, get the frame for the event target
and the event's location to call ContextMenuController::showContextMenuAt()
which will handle the new contextmenu event dispatch to the original event target.
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
2013-11-25 Sam Weinig <sam@webkit.org>
Convert some Shape code to use references
https://bugs.webkit.org/show_bug.cgi?id=124876
Reviewed by Andreas Kling.
* inspector/InspectorOverlay.cpp:
* rendering/FloatingObjects.cpp:
* rendering/LayoutState.cpp:
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockLineLayout.cpp:
* rendering/RenderBox.cpp:
* rendering/RenderBox.h:
* rendering/line/BreakingContextInlineHeaders.h:
* rendering/line/LineWidth.cpp:
* rendering/shapes/ShapeInfo.cpp:
* rendering/shapes/ShapeInfo.h:
* rendering/shapes/ShapeInsideInfo.cpp:
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.cpp:
* rendering/shapes/ShapeOutsideInfo.h:
Replace yet more pointers with references.
2013-11-25 Simon Pena <simon.pena@samsung.com>
[EFL] X11Helper::createPixmap doesn't initialise out value handleId
https://bugs.webkit.org/show_bug.cgi?id=124722
Reviewed by Gyuyoung Kim.
The overloaded functions X11Helper::createPixmap don't initialise out
value handleId, and they do early returns on error situations. Since
the functions are void and they don't communicate their failure in any
way, returning an out value without initialising it could make the
error go farther unnoticed. With the variable being initialised, it can
be reliably checked for errors when the function returns.
* platform/graphics/surfaces/glx/X11Helper.cpp:
(WebCore::X11Helper::createPixmap): Initialise handleId to 0.
2013-11-25 Nick Diego Yamane <nick.yamane@openbossa.org>
Mark URLRegistry's lookup() as const and its child classes as final
https://bugs.webkit.org/show_bug.cgi?id=124865
Reviewed by Eric Carlson.
No new tests needed. No behavior changes.
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::lookup): marked as const.
* Modules/mediasource/MediaSourceRegistry.h: MediaSourceRegistry
marked as final.
* Modules/mediastream/MediaStreamRegistry.cpp:
(WebCore::MediaStreamRegistry::lookup): marked as const.
* Modules/mediastream/MediaStreamRegistry.h: MediaStreamRegistry
marked as final.
* fileapi/Blob.cpp:
* html/URLRegistry.h: lookup() marked as const.
(WebCore::URLRegistry::lookup): marked as const.
2013-11-25 Sergio Correia <sergio.correia@openbossa.org>
[MediaStream] Use std::unique_ptr instead of OwnPtr/PassOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=124858
Reviewed by Eric Carlson.
Another step of the OwnPtr/PassOwnPtr => std::unique_ptr conversion,
now targeting mediastream-related code.
No new tests, covered by existing ones.
* Modules/mediastream/RTCDTMFSender.cpp:
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCDataChannel.cpp:
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/mediastream/RTCPeerConnection.h:
* platform/mediastream/MediaStreamSource.cpp:
* platform/mediastream/RTCPeerConnectionHandler.cpp:
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
* platform/mock/RTCNotifiersMock.cpp:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
* platform/mock/RTCPeerConnectionHandlerMock.h:
2013-11-25 Nick Diego Yamane <nick.yamane@openbossa.org>
MediaStreamRegistry should store MediaStreams instead of MediaStreamPrivates
https://bugs.webkit.org/show_bug.cgi?id=124860
Reviewed by Eric Carlson.
MediaStreamRegistry::lookup() should return a MediaStream instead of MediaStreamPrivate.
No new tests needed. No behavior changes.
* Modules/mediastream/MediaStreamRegistry.cpp:
(WebCore::MediaStreamRegistry::registerURL): m_privateStreams -> m_mediaStreams
(WebCore::MediaStreamRegistry::unregisterURL): Ditto.
(WebCore::MediaStreamRegistry::lookup): Override URLRegistry::lookup() instead of add a
new method MediaStream::lookupMediaStreamPrivate().
* Modules/mediastream/MediaStreamRegistry.h:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::loadResource): call lookup() instead of lookupMediaStreamPrivate()
2013-11-25 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fails when GSTREAMER is not used.
https://bugs.webkit.org/show_bug.cgi?id=124853
Reviewed by Philippe Normand.
* platform/graphics/gstreamer/GStreamerUtilities.cpp: Don't include GStreamerUtilities.h when GSTREAMER is not used.
2013-11-25 Andreas Kling <akling@apple.com>
Deduplicate shortish Text node strings during tree construction.
<https://webkit.org/b/124855>
Let HTMLConstructionSite keep a hash set of already seen strings over
its lifetime. Use this to deduplicate the strings inside Text nodes
for any string up to 64 characters of length.
This optimization already sort-of existed for whitespace-only Texts,
but those are laundered in the AtomicString table which we definitely
don't want to pollute with every single Text. It might be a good idea
to stop using the AtomicString table for all-whitespace Text too.
3.82 MB progression on HTML5-8266 locally.
Reviewed by Anders Carlsson.
2013-11-25 Nick Diego Yamane <nick.yamane@openbossa.org>
Remove unnecessary MediaStreamTrackDescriptor forward declaration
https://bugs.webkit.org/show_bug.cgi?id=124854
Reviewed by Eric Carlson.
No new tests needed. No behavior changed.
* Modules/mediastream/VideoStreamTrack.h:
2013-11-25 Robert Hogan <robert@webkit.org>
Remove code now unnecessary after r159575
https://bugs.webkit.org/show_bug.cgi?id=124809
Reviewed by Antti Koivisto.
Covered by existing tests fast/block/margin-collapse/self-collapsing-block-with-float*
* rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::skipLeadingWhitespace):
2013-11-25 Laszlo Vidacs <lac@inf.u-szeged.hu>
Vertical border spacing is doubled between table row groups
https://bugs.webkit.org/show_bug.cgi?id=20040
Reviewed by Csaba Osztrogonác.
Based on Chromium fix https://chromium.googlesource.com/chromium/blink/+/eb615069267f895c59bc576f9d65b3fa5add41e9
Rebaseline needed for table related tests (100+).
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
2013-11-25 Andres Gomez <agomez@igalia.com>
[GStreamer] Seeking fails on media content provided by servers not supporting Range requests
https://bugs.webkit.org/show_bug.cgi?id=85994
Reviewed by Philippe Normand.
Based on the patch written by Andre Moreira Magalhaes.
When the GStreamer web source was doing a "Range" request we were
expecting to receive a 206 status reply with the "Content-Range"
header and just the requested data. Supporting "Range" requests is
not mandatory so, for the servers not supporting it they will be
replying with a 200 status and the whole content of the media
element. Now, we are properly handling these replies too.
Test: http/tests/media/media-seeking-no-ranges-server.html
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(StreamingClient::handleResponseReceived): Do not fail when
receiving 200 as response for HTTP range requests.
(StreamingClient::handleDataReceived): Manually seek on stream
when receiving the full data after a seek.
2013-11-25 Radu Stavila <stavila@adobe.com>
Removed obsolete FIXME after the landing of visual overflow patch (https://bugs.webkit.org/show_bug.cgi?id=118665).
https://bugs.webkit.org/show_bug.cgi?id=124833
Reviewed by Mihnea Ovidenie.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::layoutBlock):
2013-11-18 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Cache several vectors to avoid malloc/free churn
https://bugs.webkit.org/show_bug.cgi?id=123995
Reviewed by Dean Jackson.
From Blink r158228 by <jchaffraix@chromium.org>
Laying-out the grid items means a lot of calls to
distributeSpaceToTracks() and
resolveContentBasedTrackSizingFunctionsForItems() as they're
called in a loop. This means that there is a lot of malloc/free
going on there. By moving the vectors used by these methods to a
new class which is kept during the whole layout process we save a
lot of those calls.
This obviously mean that the price we pay for a significant
perfomance improvement is that we keep the maximum allocation till
the end of each layout, but it's an amount of memory that we have
to allocate anyway. The improvement in the
auto-grid-lots-of-data.html perf test is ~24% (165 runs/s vs 207
runs/s).
No new tests required as we're just refactoring code to a new
helper class. Nevertheless the performance improvement is backed
by the perf test mentioned above.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridSizingData::GridSizingData):
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::distributeSpaceToTracks):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::findChildLogicalPosition):
* rendering/RenderGrid.h:
2013-11-24 Brady Eidson <beidson@apple.com>
DatabaseProcess: Add "UniqueIDBDatabase" that multiple WebProcesses can connect to
https://bugs.webkit.org/show_bug.cgi?id=124819
Reviewed by Dan Bernstein.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::~IDBDatabaseBackend): Unregister from the IDBFactory.
2013-11-24 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Generate toHTMLMarquee|OListElement() to cleanup static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=124707
Reviewed by Darin Adler.
As a step to use toFoo(), we need to generate toHTMLMarquee|OListElement().
Besides this patch cleans up remaining static_cast<> usage.
No new tests, no behavior changes.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::initElement):
(WebCore::StyleResolver::locateCousinList):
(WebCore::StyleResolver::findSiblingForStyleSharing):
* dom/Attr.cpp:
(WebCore::Attr::style):
* dom/Element.cpp:
(WebCore::Element::removeAttribute):
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::wrappingStyleForSerialization):
* editing/Editor.cpp:
(WebCore::Editor::applyEditingStyleToElement):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
* html/HTMLMarqueeElement.h:
* html/HTMLOListElement.h:
* html/HTMLTagNames.in:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
* rendering/RenderCounter.cpp:
(WebCore::planCounter):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::resize):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::calcValue):
(WebCore::RenderListItem::updateListMarkerNumbers):
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::marqueeSpeed):
2013-11-24 Tim Horton <timothy_horton@apple.com>
REGRESSION (r156291): TileController tiles don't always repaint when they resize
https://bugs.webkit.org/show_bug.cgi?id=124796
Reviewed by Simon Fraser.
In removing platformCALayerDidCreateTiles, r156291 also removed
the call to setNeedsDisplay when tiles are resized, without
putting it somewhere else.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::setNeedsDisplay):
Use hasStaleContent when invalidating a whole tile, just
like we do for partial tile repaints.
(WebCore::TileController::setTileNeedsDisplayInRect):
Mark hasStaleContent for any unparented layers, so they'll be painted
when they are reparented.
(WebCore::TileController::ensureTilesForRect):
Invalidate the whole tile when it changes size.
2013-11-23 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] Remove 0.10 codepath
https://bugs.webkit.org/show_bug.cgi?id=124534
Reviewed by Philippe Normand.
All GStreamer ports are using 1.0 now so we remove the 0.10
codepath.
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters: Removed
GStreamerVersioning.
* platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
(onGStreamerWavparsePadAddedCallback): Removed.
(WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
Replaced webkitGstPipelineGetBus and removed 0.10 codepath.
(WebCore::AudioDestinationGStreamer::~AudioDestinationGStreamer):
Replaced webkitGstPipelineGetBus.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::copyGstreamerBuffersToAudioChannel):
(WebCore::onAppsinkPullRequiredCallback): Removed 0.10 codepath.
(WebCore::AudioFileReader::~AudioFileReader): Replaced
webkitGstPipelineGetBus and removed 0.10 codepath.
(WebCore::AudioFileReader::handleSample): Left as only codepath.
(WebCore::AudioFileReader::handleBuffer): Removed.
(WebCore::AudioFileReader::handleNewDeinterleavePad): Removed 0.10
codepath.
(WebCore::AudioFileReader::plugDeinterleave): Replaced
getGstAudioCaps.
(WebCore::AudioFileReader::decodeAudioForBusCreation): Replaced
webkitGstPipelineGetBus.
(WebCore::AudioFileReader::createBus): Removed 0.10 codepath.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(getGStreamerMonoAudioCaps):
(webKitWebAudioGStreamerChannelPosition): Removed 0.10 codepath.
(webkit_web_audio_src_class_init): Replaced
setGstElementClassMetadata.
(webkit_web_audio_src_init):
(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcFinalize):
(webKitWebAudioSrcLoop): Removed 0.10 codepath.
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::GstElement):
(WTF::GstPad):
(WTF::GstPadTemplate):
(WTF::GstTask):
(WTF::GstBus):
(WTF::GstElementFactory):
(WTF::adoptGRef): Replaced gstObjectIsFloating.
(WTF::refGRef): Replaced webkitGstObjectRefSink.
(WTF::GstTagList):
(WTF::GstSample): Removed checks for 1.0 as it is the only
codepath now.
* platform/graphics/gstreamer/GRefPtrGStreamer.h: Removed checks
for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/GStreamerUtilities.cpp:
(WebCore::webkitGstGhostPadFromStaticTemplate):
(WebCore::getVideoSizeAndFormatFromCaps):
(WebCore::createGstBuffer):
(WebCore::createGstBufferForData):
(WebCore::getGstBufferDataPointer):
(WebCore::mapGstBuffer):
(WebCore::unmapGstBuffer): Moved here from GstVersioning and added
to WebCore namespace.
* platform/graphics/gstreamer/GStreamerUtilities.h:
(WebCore::webkitGstCheckVersion): Moved here from GstVersioning
and added to WebCore namespace.
* platform/graphics/gstreamer/GStreamerVersioning.cpp: Removed.
* platform/graphics/gstreamer/GStreamerVersioning.h: Removed.
* platform/graphics/gstreamer/ImageGStreamer.h: Removed checks for
1.0 as it is the only codepath now.
* platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
(ImageGStreamer::ImageGStreamer): Removed 0.10 codepath.
(ImageGStreamer::~ImageGStreamer): Removed checks for 1.0 as it is
the only codepath now.
* platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::setAudioStreamPropertiesCallback): Removed 0.10 codepath.
(WebCore::mediaPlayerPrivateTextChangedCallback): Removed checks
for 1.0 as it is the only codepath now.
(WebCore::MediaPlayerPrivateGStreamer::isAvailable): Replaced
gPlaybinName.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
Removed checks for 1.0 and replaced webkitGstPipelineGetBus.
(WebCore::MediaPlayerPrivateGStreamer::duration): Removed 0.10
codepath.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::textChanged):
Removed checks for 1.0 as it is the only codepath now.
(WebCore::MediaPlayerPrivateGStreamer::buffered): Replaced
gPercentMax.
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Removed
0.10 codepath.
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContents):
Removed checks for 1.0 as it is the only codepath now.
(WebCore::MediaPlayerPrivateGStreamer::totalBytes): Removed 0.10
codepath.
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Replaced
gPlaybinName and webkitGstPipelineGetBus and removed checks for
1.0.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Removed 0.10
codepath.
* platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
* platform/graphics/gstreamer/TextCombinerGStreamer.h:
* platform/graphics/gstreamer/TextSinkGStreamer.cpp:
* platform/graphics/gstreamer/TextSinkGStreamer.h:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Removed
checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRender): Removed 0.10 codepath and added WebCore
as createGstBuffer namespace.
(webkitVideoSinkSetCaps): Removed 0.10 codepath.
(webkitVideoSinkProposeAllocation): Removed checks for 1.0 as it
is the only codepath now.
(webkitVideoSinkMarshalVoidAndMiniObject): Removed as it was 0.10.
(webkit_video_sink_class_init): Removed 0.10 codepath and replaced
setGstElementClassMetadata.
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
Removed checks for 1.0 as it is the only codepath now.
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
(webkit_media_src_class_init): Replaced
setGstElementClassMetadata.
(webKitMediaSrcAddSrc): Added WebCore namespace to
webkitGstGhostPadFromStaticTemplate.
(MediaSourceClientGstreamer::didReceiveData): Added WebCore
namespace to createGstBufferForData.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
Removed 0.10 codepath.
(webKitWebSrcQuery): Removed as it was 0.10 only.
(void webkit_web_src_class_init): Replaced setGstElementClassMetadata.
(webkit_web_src_init): Removed haveAppSrc27 private attribute and
0.10 codepath.
(webKitWebSrcStop): Removed checks for 1.0 as it is the only
codepath now.
(webKitWebSrcSetProperty):
(webKitWebSrcUriGetType):
(webKitWebSrcGetProtocols):
(webKitWebSrcGetUri):
(webKitWebSrcSetUri): Removed 0.10 codepath.
(StreamingClient::createReadBuffer): Removed checks for 1.0 and
replaced getGstBufferSize.
(StreamingClient::handleResponseReceived): Removed 0.10 codepath
and replaced notifyGstTagsOnPad.
(StreamingClient::handleDataReceived): Removed 0.10 codepath and
replaced setGstBufferSize and gst_buffer_get_size.
2013-11-22 Jer Noble <jer.noble@apple.com>
[Mac] Can't drag full-screen video to another monitor
https://bugs.webkit.org/show_bug.cgi?id=124798
Reviewed by Geoffrey Garen.
Make full screen windows movable by default. Previously, we wanted non-movable full screen
windows since they were in the same space and were just placed atop non-full screen windows.
Now that all our supported Mac platforms have explicit full screen support, we can remove this
non-movable restriction.
* platform/mac/WebCoreFullScreenWindow.mm:
(-[WebCoreFullScreenWindow initWithContentRect:styleMask:backing:defer:]):
2013-11-22 Brent Fulgham <bfulgham@apple.com>
[Win] Clean up ColorSpace handling in Windows code
https://bugs.webkit.org/show_bug.cgi?id=124795
Reviewed by Tim Horton.
Functionality covered by existing fast/css/color test suite.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::safeRGBColorSpaceRef): Handle case of Windows CG implementation not
handling sRGB correctly.
(WebCore::sRGBColorSpaceRef): Use new helper function.
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs): Pass correct color space to fill functions.
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::platformInit): Initialize color space to value passed
via the style to the constructor.
2013-11-22 Alexey Proskuryakov <ap@apple.com>
WebCrypto algorithms should check that key algorithm matches
https://bugs.webkit.org/show_bug.cgi?id=123628
Reviewed by Anders Carlsson.
No change in behavior yet, because we have one algorithm per key class.
Will be tested once more algorithms are added.
* WebCore.xcodeproj/project.pbxproj: Updated for file renames.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createRsaKeyParamsWithHash):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::createRSAKeyParametersWithHash):
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
* crypto/CryptoAlgorithmParameters.h:
(WebCore::CryptoAlgorithmParameters::ENUM_CLASS):
* crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h: Copied from Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h.
* crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Removed.
Renamed RsaSsaKeyParams to RsaKeyParamsWithHash, because other algorithms (like RSA-OAEP)
are in the same boat. Depending on where the spec goes, we might need to introduce
algorithm specific RSA parameter classes later, but let's reduce copy/pasted code at
least for now.
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Moved to the correct directory.
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Copied from Source/WebCore/crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): Factored out Mac specific
code, leaving type casting to cross-platform files.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Ditto.
* crypto/CryptoAlgorithmRegistry.h:
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Reduce copy/pasting in registration code.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches): Check key type and algorithm.
(WebCore::CryptoAlgorithmAES_CBC::encrypt): Cross platform type casting code.
Maybe we'll find a way to autogenerate or eliminate it one day.
(WebCore::CryptoAlgorithmAES_CBC::decrypt): Ditto.
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
Same changes for all algorithms that have keys.
2013-11-22 Brendan Long <b.long@cablelabs.com>
Fire "change" event on TextTrackList when a TextTrack's mode changes
https://bugs.webkit.org/show_bug.cgi?id=124789
Reviewed by Eric Carlson.
Since AudioTrackList and VideoTrackList already have this event, the
interesting bits are in TrackListBase::scheduleChangeEvent(), and we
just need to call it for TextTrackList changes.
Test: media/track/track-change-event.html
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::textTrackModeChanged): Call TrackListBase::scheduleChangeEvent().
* html/track/TextTrackList.idl: Add onchange event listener.
2013-11-22 Brendan Long <b.long@cablelabs.com>
Add TextTrackList::getTrackById().
https://bugs.webkit.org/show_bug.cgi?id=124785
Reviewed by Eric Carlson.
Test: media/track/track-id.html
* html/track/TextTrackList.cpp: Add getTrackById()
(TextTrackList::getTrackById):
* html/track/TextTrackList.h: Same.
* html/track/TextTrackList.idl: Same.
2013-11-22 Hans Muller <hmuller@adobe.com>
[CSS Shapes] When the <box> value is set, derive radii from border-radius
https://bugs.webkit.org/show_bug.cgi?id=124228
Reviewed by Dean Jackson.
Add support for BoxShape elliptical corners.
Tests: fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-001.html
fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-002.html
* platform/graphics/FloatRoundedRect.h:
(WebCore::FloatRoundedRect::bottomLeftCorner): Corrected a copy-and-pasteO.
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::getExcludedIntervals): Returned interval now depends on the top and bottom of the line.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Rounded rect parameters are now specified with a RoundedRect parameter.
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::computedShape): Pass style's rounded border to createShape().
2013-11-22 Andres Gomez <agomez@igalia.com>
Several missing/incorrect guards for LOG_DISABLED=0 against Release build (Mac)
https://bugs.webkit.org/show_bug.cgi?id=78735
Reviewed by Mario Sanchez Prada.
In a "Debug" build the CString.h header comes from another
indirect dependency. Now, we explicitly add this missing include.
* page/CaptionUserPreferencesMediaAF.cpp: Explicitly adding
missing include.
2013-11-22 Robert Sipka <sipka@inf.u-szeged.hu>
[curl] Fix of SSL certificate chain storage
https://bugs.webkit.org/show_bug.cgi?id=124768
Reviewed by Brent Fulgham.
Change the certificates storage type into ListHashSet
from HashSet to keep the chain order in each case.
This ensures that there is no difference between the stored
and the recieved certificate chain.
* platform/network/curl/SSLHandle.cpp:
(WebCore::allowsAnyHTTPSCertificateHosts):
(WebCore::sslIgnoreHTTPSCertificate):
(WebCore::pemData):
(WebCore::certVerifyCallback):
2013-11-22 Brent Fulgham <bfulgham@apple.com>
[Win] Avoid deadlock when interacting with some AVFoundationCF content
<rdar://problem/15482977> and https://bugs.webkit.org/show_bug.cgi?id=124752
Prevent deadlock caused by conflict over the "mapLock" mutex. Notification handling in the file,
which modify assets and make other changes, are required to happen on the main thread. This
patch enforces this requirement.
Reviewed by Eric Carlson.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::NotificationCallbackData::NotificationCallbackData): Added
(WebCore::AVFWrapper::processNotification): Moved logic from 'notificationCallback', which was
sometimes happening on a background thread.
(WebCore::AVFWrapper::notificationCallback): Dispatch calls to main thread.
2013-11-22 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile error when ACCELERATED_COMPOSITING is not used.
https://bugs.webkit.org/show_bug.cgi?id=124773
Reviewed by Brent Fulgham.
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations): Added USE(ACCELERATED_COMPOSITING) guard.
2013-11-18 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Improve content-sized track layout
https://bugs.webkit.org/show_bug.cgi?id=124408
Reviewed by Dean Jackson.
Test: fast/css-grid-layout/grid-item-with-percent-min-max-height-dynamic.html
From Blink r156122 & r157633 by <jchaffraix@chromium.org>
Added a couple of optimizations to speed up the layout of content
based tracks. The idea is to narrow down the conditions for
relayouting when the height of a grid area changes. We basically
just need to layout tracks with percentage heights as they're the
only ones that change.
A new performance test is attached to demonstrate the effect of
these optimizations. We get a ~1000% improvement on a i7 M620
going from 14.5 runs/s to 165 runs/s.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalContentHeightForChild):
(WebCore::RenderGrid::layoutGridItems):
2013-11-08 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Run the content-sized tracks sizing algorithm only when required
https://bugs.webkit.org/show_bug.cgi?id=124039
Reviewed by Dean Jackson.
The current code runs the content sized track sizing algorithm all
the time, which forces a layout even when the track is not
content-sized. This change improves the situation by applying two
optimizations. In the first one, we bail out the algorithm if we
detect that we don't need to run it. And by the second one we
reduce the amount of recomputations by only iterating over the
content sized tracks instead of all of them. Both changes follow
the ideas introduced in Blink r156028 and r156168 by
<jchaffraix@chromium.org>.
As we changed the way we iterate over children (we use the
GridIterator now) the way they're stored in the RenderGrid changes
too. If a item spans through several "cells" inside the grid, we
will have a reference to it on each of them.
These two changes account for a ~3200% improvement on a i7 M620 in
the test that accompanies this change (15.5 vs 520 run/s).
New perf test: PerformanceTests/Layout/fixed-grid-lots-of-data.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Keep track
of content sized tracks and only iterate over them.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
Early return if there are no tracks to pass to the algorithm.
* rendering/RenderGrid.h:
* rendering/style/GridLength.h:
(WebCore::GridLength::isContentSized):
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::isContentSized):
2013-11-22 Manuel Rego Casasnovas <rego@igalia.com>
[CSS Regions] Move code after early break in RenderRegion::repaintFlowThreadContentRectangle
https://bugs.webkit.org/show_bug.cgi?id=124743
Reviewed by Mihnea Ovidenie.
No new tests, covered by existing tests.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::repaintFlowThreadContentRectangle): Variable
flippedFlowThreadPortionRect is not used before the early break, so we
can move it after and save some unneeded operations.
2013-11-22 Manuel Rego Casasnovas <rego@igalia.com>
[CSS Regions] Use hasOverflowClip() in RenderRegion
https://bugs.webkit.org/show_bug.cgi?id=124746
Reviewed by Mihnea Ovidenie.
Implement the suggested FIXME in RenderRegion using hasOverflowClip().
No new tests, covered by existing tests.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion): Use
hasOverflowClip().
(WebCore::RenderRegion::rectFlowPortionForBox): Ditto.
2013-11-21 Frédéric Wang <fred.wang@free.fr>
Map the dir attribute to the CSS direction property.
https://bugs.webkit.org/show_bug.cgi?id=124572.
Reviewed by Darin Adler.
Test: mathml/presentation/mstyle-css-attributes.html
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::isPresentationAttribute): reorder attributes
(WebCore::MathMLElement::collectStyleForPresentationAttribute): reorder tags that accept dir
(WebCore::MathMLElement::isMathMLToken): add an inline function to test that a tag corresponds to a MathML Token Element.
* mathml/MathMLElement.h:
Follow-up work to address Darin's comments.
2013-11-21 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Remove ENABLE_WORKERS
https://bugs.webkit.org/show_bug.cgi?id=105784
Reviewed by Darin Adler.
2013-11-21 Alex Christensen <achristensen@webkit.org>
[Win] Unreviewed build fix after r159632.
* platform/network/curl/SSLHandle.cpp:
(WebCore::certVerifyCallback):
Fixed template syntax.
2013-11-21 Bear Travis <betravis@adobe.com>
Web Inspector: [CSS Shapes] Refactor highlighting code to decrease Shapes API surface
https://bugs.webkit.org/show_bug.cgi?id=124737
Reviewed by Timothy Hatcher.
Add a virtual method to Shapes, buildPath, that can be used to build the
path (in the Shape coordinate system) for display in the Inspector. This allows us
to remove methods such as type(), polygon(), and logicalRx/Ry() which exposed the
inner workings of the Shapes classes. Also covers the addition of the BoxShape type.
Refactoring, existing test is inspector-protocol/model/highlight-shape-outside.html.
* inspector/InspectorOverlay.cpp:
(WebCore::appendPathCommandAndPoints): Points need to be translated from shape space
to renderer space using ShapeInfo.
(WebCore::buildObjectForShapeOutside): Add the ShapeOutsideInfo to the path info struct.
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::buildPath): Build the path for a BoxShape.
* rendering/shapes/BoxShape.h:
* rendering/shapes/PolygonShape.cpp:
(WebCore::PolygonShape::buildPath): Build the path for a PolygonShape.
* rendering/shapes/PolygonShape.h:
* rendering/shapes/RasterShape.h:
* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::buildPath): Build the path for a RectangleShape.
* rendering/shapes/RectangleShape.h:
* rendering/shapes/Shape.h:
2013-11-21 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/124702> Stop overriding VALID_ARCHS.
All modern versions of Xcode set it appropriately for our needs.
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig:
2013-11-21 Gwang Yoon Hwang <ryumiel@company100.net>
[GTK] Unreviewed buildfix after r159614 and r159656.
* bindings/gobject/WebKitDOMCustom.cpp: Add missing header
2013-11-21 Laszlo Vidacs <lac@inf.u-szeged.hu>
Fix WinCairo unreachable code warnings in SimpleLineLayout.cpp
https://bugs.webkit.org/show_bug.cgi?id=124704
Reviewed by Antti Koivisto.
Fix unreachable code warnings using conditional directives.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-11-21 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/124701> Fix an error in a few Xcode configuration setting files.
Reviewed by Alexey Proskuryakov.
* Configurations/Base.xcconfig:
2013-11-21 Mark Rowe <mrowe@apple.com>
<https://webkit.org/b/124700> Fix some deprecation warnings.
Reviewed by Anders Carlsson.
* platform/mac/HTMLConverter.mm:
(fileWrapperForURL): Move off a deprecated NSFileWrapper method.
2013-11-21 Daniel Bates <dabates@apple.com>
[iOS] Build fix; export symbol for WebCore::provideDeviceOrientationTo()
Add the symbol __ZN7WebCore26provideDeviceOrientationToEPNS_4PageEPNS_23DeviceOrientationClientE.
* WebCore.exp.in:
2013-11-21 Daniel Bates <dabates@apple.com>
Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard
https://bugs.webkit.org/show_bug.cgi?id=124741
Reviewed by Alexey Proskuryakov.
Add !USE(NETWORK_CFDATA_ARRAY_CALLBACK)-guard around code that is unused
when building with feature NETWORK_CFDATA_ARRAY_CALLBACK.
Additionally, add a declaration for allocateSegment() with attribute WARN_UNUSED_RETURN
to have the compiler warn when the return value of this function is unused. Together with
warnings treated as errors this change will prevent a memory leak.
* platform/SharedBuffer.cpp:
2013-11-21 Daniel Bates <dabates@apple.com>
Remove unused functions from WebCore and WebKit2
https://bugs.webkit.org/show_bug.cgi?id=124739
Reviewed by Alexey Proskuryakov.
* editing/markup.cpp: Remove unused functions isHTMLBlockElement and
ancestorToRetainStructureAndAppearanceWithNoRenderer.
* rendering/InlineElementBox.cpp: Append newline to the end of the file.
2013-11-21 Daniel Bates <dabates@apple.com>
Only generate isObservable() when IDL specifies GenerateIsReachable
https://bugs.webkit.org/show_bug.cgi?id=124729
Reviewed by Geoffrey Garen.
We should only generate the static inline function isObservable() when the IDL
specifies GenerateIsReachable. Otherwise, this function is unused.
Added a new test IDL TestGenerateIsReachable.idl and expected results to test that
we generate isObservable() when an IDL specifies GenerateIsReachable. Additionally,
rebased existing test results.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.cpp: Added.
* bindings/scripts/test/CPP/WebDOMTestGenerateIsReachable.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp: Added.
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.h: Added.
* bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachablePrivate.h: Added.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Removed unused function isObservable().
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
* bindings/scripts/test/JS/JSTestEventConstructor.cpp: Ditto.
* bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
* bindings/scripts/test/JS/JSTestException.cpp: Ditto.
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Added.
* bindings/scripts/test/JS/JSTestGenerateIsReachable.h: Added.
* bindings/scripts/test/JS/JSTestInterface.cpp: Removed unused function isObservable().
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Ditto.
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Ditto.
* bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
* bindings/scripts/test/JS/JSattribute.cpp: Ditto.
* bindings/scripts/test/JS/JSreadonly.cpp: Ditto.
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h: Added.
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm: Added.
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h: Added.
* bindings/scripts/test/TestGenerateIsReachable.idl: Added.
2013-11-21 Beth Dakin <bdakin@apple.com>
Add a new mode to extend the tile cache beyond the page
https://bugs.webkit.org/show_bug.cgi?id=124216
Reviewed by Simon Fraser.
This patch makes it possible to give the tile cache a margin of tiles. If there is
a margin of tiles, this patch paints those tiles with the background color. Note
that this patch does not actually give the tile cache a margin at this time.
You opt into a margined tiled cache by called setTileMargins() with number of
pixels that the margin on that side should be.
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tilesWouldChangeForVisibleRect):
TileController::bounds() now computes the bounds INCLUDING the margin.
(WebCore::TileController::bounds):
adjustRectAtTileIndexForMargin() is a new function that is required to get the
rect size for tiles in the margin right. rectForTileIndex() assumes all tiles
strive to be the size of m_tileSize, but now margin tiles will be whatever the
margin sizes were set to.
(WebCore::TileController::adjustRectAtTileIndexForMargin):
(WebCore::TileController::rectForTileIndex):
This is another instance where m_tileSize is not always the right size to use.
(WebCore::TileController::getTileIndexRangeForRect):
The tile coverage rect now might include the margin tiles. Only include them in
slow-scrolling mode if the current position is within one tile of the edge.
(WebCore::TileController::computeTileCoverageRect):
tileSizeForCoverageRect() does not make sense in a world where the coverage rect
will include margin. Instead, this patch implements the current strategy more
explicitly by returning the visibleRect in the slow scrolling case, and in the
process this patch also re-names tileSizeForCoverageRect() to computeTileSize()
since it no longer takes a coverageRect.
(WebCore::TileController::computeTileSize):
(WebCore::TileController::revalidateTiles):
New setters and getters for the tile margins on each side.
(WebCore::TileController::setTileMargins):
(WebCore::TileController::hasMargins):
(WebCore::TileController::topMarginHeight):
(WebCore::TileController::bottomMarginHeight):
(WebCore::TileController::leftMarginWidth):
(WebCore::TileController::rightMarginWidth):
New function to add margin onto the composited bounds if there is one.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::tiledBackingHasMargin):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::compositedBoundsIncludingMargin):
* rendering/RenderLayerBacking.h:
Do not set masks to bounds if there is a margin on the root layer.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::mainFrameBackingIsTiledWithMargin):
* rendering/RenderLayerCompositor.h:
Allow background color to paint into the margin tiles.
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
2013-11-21 Alexey Proskuryakov <ap@apple.com>
Implement WebCrypto wrapKey
https://bugs.webkit.org/show_bug.cgi?id=124738
Reviewed by Anders Carlsson.
Tests: crypto/subtle/aes-cbc-wrap-rsa-non-extractable.html
crypto/subtle/aes-cbc-wrap-rsa.html
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::exportKey): Factored out the actual operation that can be chained with
encryption for wrapKey.
(WebCore::JSSubtleCrypto::exportKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey): Fixed a memory leak in failure code path.
* crypto/SubtleCrypto.idl: Added wrapKey.
2013-11-21 Alexey Proskuryakov <ap@apple.com>
Implement WebCrypto unwrapKey
https://bugs.webkit.org/show_bug.cgi?id=124725
Reviewed by Anders Carlsson.
Tests: crypto/subtle/aes-cbc-unwrap-failure.html
crypto/subtle/aes-cbc-unwrap-rsa.html
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
* bindings/js/JSCryptoAlgorithmDictionary.h:
Removed calls for wrap/unwrap parameter parsing, these are just the same as encrypt/decrypt.
* bindings/js/JSCryptoOperationData.cpp:
(WebCore::cryptoOperationDataFromJSValue):
* bindings/js/JSCryptoOperationData.h:
* crypto/CryptoKeySerialization.h:
More Vector<char> elimination.
* bindings/js/JSDOMPromise.cpp:
* bindings/js/JSDOMPromise.h:
Removed unneccessary copy constructor and assignment operator, they are no diffdrent
than compiler generated ones.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::cryptoKeyUsagesFromJSValue): Minor style fixes.
(WebCore::JSSubtleCrypto::encrypt): Ditto.
(WebCore::JSSubtleCrypto::decrypt): Ditto.
(WebCore::JSSubtleCrypto::sign): Ditto.
(WebCore::JSSubtleCrypto::verify): Ditto.
(WebCore::JSSubtleCrypto::generateKey): Ditto.
(WebCore::importKey): Separated actual import operation and the parts that read
arguments from ExecState, and call the promise. Logically, this should be outside
of bindings code even, but JWK makes that quite challenging.
(WebCore::JSSubtleCrypto::importKey): This only does the more mundane arguments
and return parts now.
(WebCore::JSSubtleCrypto::exportKey): Minor style fixes.
(WebCore::JSSubtleCrypto::unwrapKey): Chain decrypt and import.
* crypto/CryptoAlgorithm.cpp:
(WebCore::CryptoAlgorithm::encryptForWrapKey):
(WebCore::CryptoAlgorithm::decryptForUnwrapKey):
* crypto/CryptoAlgorithm.h:
There are algorithms that expose wrap/unwrap, but not encrypt/decrypt. These will
override these new functions, and leave encrypt/decrypt to raise NOT_SUPPORTED_ERR.
* crypto/SubtleCrypto.idl: Added unwrapKey.
2013-11-21 Robert Sipka <sipka@inf.u-szeged.hu>
[curl]Improve ssl certificate storage and check
https://bugs.webkit.org/show_bug.cgi?id=124569
Reviewed by Brent Fulgham.
Storage and check the whole certificate chain, not just the root certificate.
* platform/network/curl/SSLHandle.cpp:
(WebCore::allowsAnyHTTPSCertificateHosts):
(WebCore::sslIgnoreHTTPSCertificate):
(WebCore::pemData):
(WebCore::certVerifyCallback):
2013-11-21 Mihai Maerean <mmaerean@adobe.com>
Fix hover area for divs with css transforms
https://bugs.webkit.org/show_bug.cgi?id=124647
Reviewed by Allan Sandfeld Jensen.
Non transformed layers are now being hit last, not through or in-between transformed layers.
The paint order says that the divs creating stacking contexts (including transforms) are painted after the
other siblings so they should be hit tested in the reverse order. Also, a rotated div in a non-rotated parent
should be hit in its entire area, not hit its parent's background, even if the z-coordinate is negative where
the mouse is located.
Test: transforms/3d/hit-testing/hover-rotated-negative-z.html
* rendering/RenderLayer.cpp:
(WebCore::computeZOffset):
2013-11-21 Andres Gomez <agomez@igalia.com>
[GTK] Release compilation fails when defining "LOG_DISABLED=0"
https://bugs.webkit.org/show_bug.cgi?id=124661
Reviewed by Mario Sanchez Prada.
In a "Debug" build the CString.h header comes from another
indirect dependency. Now, we explicitly add this missing include.
* html/HTMLTrackElement.cpp: Explicitly adding missing include.
2013-11-21 Ryosuke Niwa <rniwa@webkit.org>
Fix Range.insertNode when the inserted node is in the same container as the Range
https://bugs.webkit.org/show_bug.cgi?id=123957
Reviewed by Antti Koivisto.
Inspired by https://chromium.googlesource.com/chromium/blink/+/fb6ca1f488703e8d4f20ce6449cc8ea210be6edb
When a node from the same container is inserted, we can't simply adjust m_end with the offset.
Compute m_start and m_end from the inserted nodes instead.
Also, don't adjust m_start and m_end to nodes outside of the document if the inserted nodes had been
removed by mutation events.
Test: fast/dom/Range/range-insertNode-same-container.html
* dom/Range.cpp:
(WebCore::Range::insertNode):
2013-11-21 Ryosuke Niwa <rniwa@webkit.org>
nextBoundary and previousBoundary are very slow when there is a password field
https://bugs.webkit.org/show_bug.cgi?id=123973
Reviewed by Antti Koivisto.
Merge https://chromium.googlesource.com/chromium/blink/+/57366eec5e3edea54062d4e74c0e047f8681dbad
When iterating through DOM nodes nextBoundary and previousBoundary convert the contents of nodes using
text security to a sequence of 'x' characters. The SimplifiedBackwardsTextIterator and TextIterator
may iterate past node boundaries. Before this patch, the transformation was done looking at the starting
node rather than the current node. In some situations, this replaced all boundaries with 'x' and caused
the text iterator to continue iterating and transforming until the extent of the document.
Test: editing/deleting/password-delete-performance.html
* editing/TextIterator.h:
(WebCore::SimplifiedBackwardsTextIterator::node):
* editing/VisibleUnits.cpp:
(WebCore::previousBoundary):
(WebCore::nextBoundary):
2013-11-21 Ryosuke Niwa <rniwa@webkit.org>
HTML parser should not associate elements inside templates with forms
https://bugs.webkit.org/show_bug.cgi?id=117779
Reviewed by Antti Koivisto.
Merge https://chromium.googlesource.com/chromium/blink/+/45aadf7ee7ee010327eb692066cf013315ef3ed7
When parsing <form><template><input>, the previous behavior was to associate the <input> with the <form>,
even though they're not in the same tree (or even the same document).
This patch changes that by checking, prior to creating a form control element, whether the element to be
created lives in a document with a browsing context.
We don't update m_form as needed to faithfully match the HTML5 specification's form element pointer
http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#form-element-pointer
and its algorithm for creating and inserting nodes:
http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#creating-and-inserting-nodes
While this leaves isindex's reference to form element pointer stale:
http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html#isindex
The HTML5 specification matches the behaviors of Chrome and Firefox so we leave it as is.
Test: fast/dom/HTMLTemplateElement/no-form-association.html
* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElement):
2013-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Cannot scroll in option menu when it larger than the screen
https://bugs.webkit.org/show_bug.cgi?id=124671
Reviewed by Martin Robinson.
The problem is that the popup menu is not resized to fit in the
screen, so it doesn't scroll and some of the items are offscreen
so they can't be selected either. GTK+ automatically resizes the
popup menus to fit in the work area, but only when the menu is
already positioned.
* platform/gtk/GtkPopupMenu.cpp:
(WebCore::GtkPopupMenu::popUp): Schedule a resize of the popup
menu right after showing it once it has a position.
2013-11-21 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Mark all deprecated symbols in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=124406
Reviewed by Gustavo Noronha Silva.
Move deprecated API from WebKitDOMCustom to a new file
WebKitDOMDeprecated leaving in WebKitDOMCustom only the
non-deprecated API that is not autogenerated. Also added the
deprecation decorations and tags in the documentation.
* bindings/gobject/GNUmakefile.am:
* bindings/gobject/WebKitDOMCustom.cpp:
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols:
* bindings/gobject/WebKitDOMDeprecated.cpp: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.cpp.
(webkit_dom_blob_webkit_slice):
(webkit_dom_html_element_get_id):
(webkit_dom_html_element_set_id):
(webkit_dom_html_element_get_class_name):
(webkit_dom_html_element_set_class_name):
(webkit_dom_html_element_get_class_list):
(webkit_dom_html_form_element_dispatch_form_change):
(webkit_dom_html_form_element_dispatch_form_input):
(webkit_dom_webkit_named_flow_get_overflow):
(webkit_dom_element_get_webkit_region_overflow):
(webkit_dom_webkit_named_flow_get_content_nodes):
(webkit_dom_webkit_named_flow_get_regions_by_content_node):
(webkit_dom_bar_info_get_property):
(webkit_dom_bar_info_class_init):
(webkit_dom_bar_info_init):
(webkit_dom_bar_info_get_visible):
(webkit_dom_console_get_memory):
(webkit_dom_css_style_declaration_get_property_css_value):
(webkit_dom_document_get_webkit_hidden):
(webkit_dom_document_get_webkit_visibility_state):
(webkit_dom_html_document_open):
(webkit_dom_html_element_set_item_id):
(webkit_dom_html_element_get_item_id):
(webkit_dom_html_element_get_item_ref):
(webkit_dom_html_element_get_item_prop):
(webkit_dom_html_element_set_item_scope):
(webkit_dom_html_element_get_item_scope):
(webkit_dom_html_element_get_item_type):
(webkit_dom_html_style_element_set_scoped):
(webkit_dom_html_style_element_get_scoped):
(webkit_dom_html_properties_collection_get_property):
(webkit_dom_html_properties_collection_class_init):
(webkit_dom_html_properties_collection_init):
(webkit_dom_html_properties_collection_item):
(webkit_dom_html_properties_collection_named_item):
(webkit_dom_html_properties_collection_get_length):
(webkit_dom_html_properties_collection_get_names):
(webkit_dom_node_get_attributes):
(webkit_dom_node_has_attributes):
(webkit_dom_memory_info_get_property):
(webkit_dom_memory_info_class_init):
(webkit_dom_memory_info_init):
(webkit_dom_memory_info_get_total_js_heap_size):
(webkit_dom_memory_info_get_used_js_heap_size):
(webkit_dom_memory_info_get_js_heap_size_limit):
(webkit_dom_micro_data_item_value_class_init):
(webkit_dom_micro_data_item_value_init):
(webkit_dom_performance_get_memory):
(webkit_dom_property_node_list_get_property):
(webkit_dom_property_node_list_class_init):
(webkit_dom_property_node_list_init):
(webkit_dom_property_node_list_item):
(webkit_dom_property_node_list_get_length):
(webkit_dom_html_media_element_get_start_time):
(webkit_dom_html_media_element_get_initial_time):
(webkit_dom_html_head_element_get_profile):
(webkit_dom_html_head_element_set_profile):
(webkit_dom_processing_instruction_get_data):
(webkit_dom_processing_instruction_set_data):
* bindings/gobject/WebKitDOMDeprecated.h: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.h.
* bindings/gobject/WebKitDOMDeprecated.symbols: Copied from Source/WebCore/bindings/gobject/WebKitDOMCustom.symbols.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction): Do not include deprecation guards in the cpp file.
* bindings/scripts/gobject-generate-headers.pl: Do not create
fordward declarations for non-existent classes like Custom and
Deprecated.
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(webkit_dom_test_event_target_dispatch_event):
2013-11-20 Jae Hyun Park <jae.park@company100.net>
[CoordinatedGraphics] Use std::unique_ptrs rather than OwnPtrs
https://bugs.webkit.org/show_bug.cgi?id=124692
Reviewed by Noam Rosenthal.
No new tests, covered by existing ones.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
* platform/graphics/TiledBackingStore.h:
* platform/graphics/TiledBackingStoreBackend.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::createBackingStore):
* platform/graphics/texmap/coordinated/CoordinatedTile.h:
2013-11-20 Brady Eidson <beidson@apple.com>
Add more infrastructure for ServerConnection communication between Web and Database processes
https://bugs.webkit.org/show_bug.cgi?id=124693
Reviewed by Anders Carlsson.
* WebCore.exp.in:
2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
Hoist <template> to head when found between </head> and <body> for consistency with <script>
https://bugs.webkit.org/show_bug.cgi?id=123949
Reviewed by Antti Koivisto.
Merge https://chromium.googlesource.com/chromium/blink/+/835fb468fd211054a920fb7612a6dc5043662495
Move template elements between head and body elements into the head to be consistent with script elements.
The HTML5 specification was changed in http://html5.org/tools/web-apps-tracker?from=8217&to=8218.
Inline comments below are cited from https://www.w3.org/Bugs/Public/show_bug.cgi?id=23002
and https://codereview.chromium.org/25900003 for clarity.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag): Add the template element to the list of elements to be hoisted into
the head element.
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
Replace the assertion that isParsingFragment is true when item->node() == m_tree.openElements()->rootNode() since,
with this change, we can now invoke resetInsertionMode when parsing a normal document (not fragment) and there is
only the html element on the stack of open elements.
For the second change, consider: <head></head><template>
This example breaks in the old HTML parser because the template element is handled by "after head" state which
pushes the head element back on, processes the template element for "in head", then pops the head element off.
EOF is reached, which processes a fake close tag for the template element, which pops the template element off
and resets the insertion mode appropriately
The problem here is that "reset the insertion mode" is going to inspect the bottom-most element on the stack which
is now the html element and it will set the mode to "before head". Nothing good happens after this.
We fix this problem by having the reset algorithm check if the head element pointer is set, and if so, go to after
head instead of before head.
2013-11-20 Radu Stavila <stavila@adobe.com>
[CSS Regions] Implement visual overflow for first & last regions
https://bugs.webkit.org/show_bug.cgi?id=118665
In order to properly propagate the visual overflow of elements flowed inside regions,
the responsiblity of painting and hit-testing content inside flow threads has been
moved to the flow thread layer's level.
Each region keeps the associated overflow with each box in the RenderBoxRegionInfo
structure, including one for the flow thread itself. This data is used during
painting and hit-testing.
Reviewed by David Hyatt.
Tests: fast/regions/overflow-first-and-last-regions-in-container-hidden.html
fast/regions/overflow-first-and-last-regions.html
fast/regions/overflow-nested-regions.html
fast/regions/overflow-region-float.html
fast/regions/overflow-region-inline.html
fast/regions/overflow-region-transform.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::setLayoutOverflow):
(WebCore::InlineFlowBox::setVisualOverflow):
* rendering/InlineFlowBox.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addOverflowFromChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::estimateRegionRangeForBoxChild):
(WebCore::RenderBlock::updateRegionRangeForBoxChild):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::hasNextPage):
(WebCore::RenderBlockFlow::relayoutForPagination):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::positionNewFloatOnLine):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::addVisualOverflow):
(WebCore::RenderBox::isUnsplittableForPagination):
(WebCore::RenderBox::overflowRectForPaintRejection):
* rendering/RenderBox.h:
(WebCore::RenderBox::canHaveOutsideRegionRange):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
* rendering/RenderBoxRegionInfo.h:
(WebCore::RenderBoxRegionInfo::createOverflow):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
(WebCore::RenderFlowThread::mapFromLocalToFlowThread):
(WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
(WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
(WebCore::RenderFlowThread::flipForWritingModeLocalCoordinates):
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
(WebCore::RenderFlowThread::addRegionsVisualOverflow):
(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
* rendering/RenderFlowThread.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::expandClipRectForRegionAndReflection):
(WebCore::expandClipRectForDescendantsAndReflection):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::updateDescendantsLayerListsIfNeeded):
(WebCore::RenderLayer::repaintIncludingDescendants):
(WebCore::RenderLayer::paintNamedFlowThreadInsideRegion):
(WebCore::RenderLayer::paintFlowThreadIfRegion):
(WebCore::RenderLayer::hitTestFlowThreadIfRegion):
* rendering/RenderLayer.h:
(WebCore::ClipRect::inflateX):
(WebCore::ClipRect::inflateY):
(WebCore::ClipRect::inflate):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::addOverflowFromChildren):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
(WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::createStyle):
(WebCore::RenderNamedFlowFragment::namedFlowThread):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderOverflow.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::flowThreadPortionOverflowRect):
(WebCore::RenderRegion::flowThreadPortionLocation):
(WebCore::RenderRegion::regionContainerLayer):
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::RenderRegion::computeOverflowFromFlowThread):
(WebCore::RenderRegion::repaintFlowThreadContent):
(WebCore::RenderRegion::repaintFlowThreadContentRectangle):
(WebCore::RenderRegion::insertedIntoTree):
(WebCore::RenderRegion::ensureOverflowForBox):
(WebCore::RenderRegion::rectFlowPortionForBox):
(WebCore::RenderRegion::addLayoutOverflowForBox):
(WebCore::RenderRegion::addVisualOverflowForBox):
(WebCore::RenderRegion::layoutOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::paint):
2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
[HTML parser] reset insertion mode appropriate must check for "in select in table" mode
https://bugs.webkit.org/show_bug.cgi?id=123850
Reviewed by Antti Koivisto.
Merge https://chromium.googlesource.com/chromium/blink/+/2cb7523df57dfb48111f6aa16b7138cd54024ba7
The HTML specification has been updated to detect encountering a template element inside of a select element,
which in turn is inside of a table element. In this case, the select element will cause the parser to be in
"InSelectInTable" mode. Thus when the template element closes, it should return to that mode.
The fix here is that resetInsertionModeAppropriately must continue looking up the stack if the first node is
select element to see whether the select element is inside of a table element.
See also: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#reset-the-insertion-mode-appropriately
Test: html5lib/resources/template.dat
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
2013-11-20 Mark Lam <mark.lam@apple.com>
Build fix for last commit.
https://bugs.webkit.org/show_bug.cgi?id=124634.
Not reviewed.
No new tests.
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
2013-11-20 Mark Lam <mark.lam@apple.com>
Introducing VMEntryScope to update the VM stack limit.
https://bugs.webkit.org/show_bug.cgi?id=124634.
Reviewed by Geoffrey Garen.
No new tests.
Renamed dynamicGlobalObject() to vmEntryGlobalObject().
Replaced uses of DynamicGlobalObjectScope with VMEntryScope.
* ForwardingHeaders/runtime/VMEntryScope.h: Added.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
(WebCore::JSCryptoAlgorithmBuilder::add):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::create):
* bindings/js/JSDOMBinding.cpp:
(WebCore::firstDOMWindow):
* bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JavaScriptCallFrame.h:
(WebCore::JavaScriptCallFrame::vmEntryGlobalObject):
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::recompileAllJSFunctions):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::evaluateBreakpointAction):
(WebCore::ScriptDebugServer::handlePause):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
* bindings/objc/WebScriptObject.mm:
(WebCore::addExceptionToConsole):
* bridge/c/c_utility.cpp:
(JSC::Bindings::convertValueToNPVariant):
* bridge/objc/objc_instance.mm:
(ObjcInstance::moveGlobalExceptionToExecState):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::convertValueToObjcObject):
* bridge/objc/objc_utility.mm:
(JSC::Bindings::convertValueToObjcValue):
2013-11-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Generate toHTMLFooElement() to clean up static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=124571
Reviewed by Ryosuke Niwa.
Though there are a lot of clean up commits before, there are still
use of static_cast<HTMLFooElement*>. To clean up them, we need to generate
toHTMLDetails|Meta|Summary|TableCaptionElement().
Additionally, other static_cast<> are removed as well.
No new tests, no behavior changes.
* html/HTMLDetailsElement.h:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::selectNextSourceChild):
* html/HTMLMetaElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::isDisabledFormControl):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateWidgetCallback):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::detailsElement):
* html/HTMLSummaryElement.h:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::caption):
* html/HTMLTagNames.in:
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/shadow/DetailsMarkerControl.cpp:
(WebCore::DetailsMarkerControl::summaryElement):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::handleFallbackContent):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
* page/DragController.cpp:
(WebCore::DragController::canProcessDrag):
* page/Frame.cpp:
(WebCore::Frame::searchForLabelsBeforeElement):
* page/SpatialNavigation.cpp:
(WebCore::frameOwnerElement):
2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
Clear TemplateContentDocumentFragment::m_host when HTMLTemplateElement is destroyed
https://bugs.webkit.org/show_bug.cgi?id=122806
Reviewed by Antti Koivisto.
Merge https://chromium.googlesource.com/chromium/blink/+/858ed5f6341de9d900768c1f4668fcfce870c52e
The document fragment of a template element outlives the element itself.
Clear the host property on the document fragment when that happens.
Test: fast/dom/HTMLTemplateElement/content-outlives-template-crash.html
* dom/TemplateContentDocumentFragment.h:
* html/HTMLTemplateElement.cpp:
(WebCore::HTMLTemplateElement::~HTMLTemplateElement):
* html/HTMLTemplateElement.h:
2013-11-20 Chris Fleizach <cfleizach@apple.com>
AX: Implement CSS -webkit-alt property (text alternative for generated content pseudo-elements ::before and ::after)
https://bugs.webkit.org/show_bug.cgi?id=120188
Reviewed by Dean Jackson.
Add a -webkit-alt CSS property that can be used to label Image content or Text content for accessibility clients.
To accomplish this, it sets the string in the RenderStyle. Then when the ContentData creates an anonymous renderer,
it sets that string on the TextFragment or RenderImage, which can be queried by accessibility code.
Test: platform/mac/accessibility/webkit-alt-for-css-content.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::alternativeText):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::objectInclusionFromAltText):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::altTextToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseAlt):
* css/CSSParser.h:
* css/CSSPropertyNames.in:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/RenderImage.h:
(WebCore::RenderImage::altText):
(WebCore::RenderImage::setAltText):
* rendering/RenderTextFragment.h:
* rendering/style/ContentData.cpp:
(WebCore::ImageContentData::createRenderer):
(WebCore::TextContentData::createRenderer):
* rendering/style/ContentData.h:
(WebCore::ContentData::setAltText):
(WebCore::ContentData::altText):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setContent):
(WebCore::RenderStyle::setContentAltText):
(WebCore::RenderStyle::contentAltText):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.h:
2013-11-20 Roger Fong <roger_fong@apple.com>
Use compile flag SH_UNFOLD_SHORT_CIRCUIT when compiling shaders.
https://bugs.webkit.org/show_bug.cgi?id=124684.
Reviewed by Brent Fulgham.
Existing test webgl/1.0.2/conformance/glsl/misc/shader-with-short-circuiting-operators.html
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
2013-11-20 Robert Sipka <sipka@inf.u-szeged.hu>
[curl] Improve detecting and handling of SSL related errors
https://bugs.webkit.org/show_bug.cgi?id=119436
Reviewed by Brent Fulgham.
Set the exact SSL verification error on CURL
and store the enabled domain with certificate.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/curl/ResourceError.h:
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::sslErrors):
(WebCore::ResourceError::setSSLErrors):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::setHostAllowsAnyHTTPSCertificate):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::initializeHandle):
* platform/network/curl/SSLHandle.cpp: Added.
(WebCore::allowsAnyHTTPSCertificateHosts):
(WebCore::sslIgnoreHTTPSCertificate):
(WebCore::sslCertificateFlag):
(WebCore::pemData):
(WebCore::certVerifyCallback):
(WebCore::sslctxfun):
(WebCore::setSSLVerifyOptions):
* platform/network/curl/SSLHandle.h: Added.
2013-11-20 Bem Jones-Bey <bjonesbe@adobe.com>
[css shapes] Parse new circle shape syntax
https://bugs.webkit.org/show_bug.cgi?id=124618
Reviewed by Antti Koivisto.
Implement parsing of the new cicle shape syntax. The implementation of
the old syntax has been move aside as deprecated, and will be removed
once the new syntax is stable.
Updated existing parsing tests to cover this.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForCenterCoordinate): Create a CSSPrimitiveValue from a
BasicShapeCenterCoordinate.
(WebCore::valueForBasicShape): Convert new basic shape and rename old
one.
(WebCore::convertToCenterCoordinate): Create a
BasicShapeCenterCoordinate from a CSSPrimitiveValue.
(WebCore::basicShapeForValue): Convert new shape value and rename old
one.
* css/CSSBasicShapes.cpp:
(WebCore::buildCircleString): Build a new circle string.
(WebCore::CSSBasicShapeCircle::cssText): Serialize the new circle
shape.
(WebCore::CSSBasicShapeCircle::equals): Compare new circle shapes.
(WebCore::CSSBasicShapeCircle::serializeResolvingVariables):
* css/CSSBasicShapes.h:
(WebCore::CSSBasicShapeCircle::CSSBasicShapeCircle): Add class for new
circle shape.
(WebCore::CSSDeprecatedBasicShapeCircle::create): Renamed to move out
of the way of the new circle implementation.
(WebCore::CSSDeprecatedBasicShapeCircle::centerX): Ditto.
(WebCore::CSSDeprecatedBasicShapeCircle::centerY): Ditto.
(WebCore::CSSDeprecatedBasicShapeCircle::radius): Ditto.
(WebCore::CSSDeprecatedBasicShapeCircle::setCenterX): Ditto.
(WebCore::CSSDeprecatedBasicShapeCircle::setCenterY): Ditto.
(WebCore::CSSDeprecatedBasicShapeCircle::setRadius): Ditto.
(WebCore::CSSDeprecatedBasicShapeCircle::CSSDeprecatedBasicShapeCircle): Ditto.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseShapeRadius): Parse the radius for the new
circle syntax. Will also be used by the new ellipse syntax.
(WebCore::CSSParser::parseBasicShapeCircle): Parse the new circle
syntax.
(WebCore::CSSParser::parseDeprecatedBasicShapeCircle): Rename to make
way for the new implementation.
(WebCore::isDeprecatedBasicShape): Check if we have a new circle or an
old circle.
(WebCore::CSSParser::parseBasicShape): Update to parse the new circle
syntax.
* css/CSSParser.h:
* css/CSSValueKeywords.in: Add support for the new circle keywords.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
* rendering/style/BasicShapes.cpp: Deprecate old circle and add stub
for layout code.
(WebCore::DeprecatedBasicShapeCircle::path): Rename to make way for
the new implementation.
(WebCore::DeprecatedBasicShapeCircle::blend): Rename to make way for
the new implementation.
(WebCore::BasicShapeCircle::path): Create path for new circle shape.
(WebCore::BasicShapeCircle::blend): Interpolate the new circle shape.
* rendering/style/BasicShapes.h:
(WebCore::BasicShapeCenterCoordinate::BasicShapeCenterCoordinate):
Represent an x or y coordinate for the center of a new circle,
since it can be either a keyword along with an offset that cannot
be resolved until layout time or an ordinary Length. This will
also be used by the new ellipse implementation.
(WebCore::BasicShapeCenterCoordinate::keyword):
(WebCore::BasicShapeCenterCoordinate::length):
(WebCore::BasicShapeCenterCoordinate::blend): Interpolate.
(WebCore::BasicShapeRadius::BasicShapeRadius): Represent the radius of
a new circle shape since it can either be a straightforward Length or
a keyword that cannot be resolved until layout time.
(WebCore::BasicShapeRadius::value):
(WebCore::BasicShapeRadius::type):
(WebCore::BasicShapeRadius::blend): Interpolate.
(WebCore::BasicShapeCircle::centerX):
(WebCore::BasicShapeCircle::centerY):
(WebCore::BasicShapeCircle::radius):
(WebCore::BasicShapeCircle::setCenterX):
(WebCore::BasicShapeCircle::setCenterY):
(WebCore::BasicShapeCircle::setRadius):
(WebCore::BasicShapeCircle::BasicShapeCircle): New circle class.
(WebCore::DeprecatedBasicShapeCircle::create): Rename to make room for
new circle implementation.
(WebCore::DeprecatedBasicShapeCircle::DeprecatedBasicShapeCircle): Ditto.
2013-11-20 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Add BoxShape and FloatRoundingRect classes
https://bugs.webkit.org/show_bug.cgi?id=124368
Reviewed by Dean Jackson.
Added the BoxShape class. It's now used to represent shape-outside box
values: [margin/border/padding/content]-box. BoxShape depends on a new
FloatRoundedRect class, which is a float analog of the existing (int)
RoundedRect class. The FloatRoundedRect class contains the same basic
methods and accessors as BorderRect and adds a set of four methods,
for example topLeftCorner(), that return a FloatRect that represents the
bounds of one elliptical corner. I also added a method, xInterceptsAtY()
that returns two X coordinates of the intersection between a horizontal
line and the rounded rectangle.
No new tests, this is just an internal refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/FloatRoundedRect.cpp: Added.
(WebCore::FloatRoundedRect::FloatRoundedRect):
(WebCore::FloatRoundedRect::Radii::isZero):
(WebCore::FloatRoundedRect::Radii::scale):
(WebCore::FloatRoundedRect::Radii::expand):
(WebCore::cornerRectIntercept):
(WebCore::FloatRoundedRect::xInterceptsAtY):
* platform/graphics/FloatRoundedRect.h: Added.
(WebCore::FloatRoundedRect::Radii::Radii):
(WebCore::FloatRoundedRect::Radii::setTopLeft):
(WebCore::FloatRoundedRect::Radii::setTopRight):
(WebCore::FloatRoundedRect::Radii::setBottomLeft):
(WebCore::FloatRoundedRect::Radii::setBottomRight):
(WebCore::FloatRoundedRect::Radii::topLeft):
(WebCore::FloatRoundedRect::Radii::topRight):
(WebCore::FloatRoundedRect::Radii::bottomLeft):
(WebCore::FloatRoundedRect::Radii::bottomRight):
(WebCore::FloatRoundedRect::Radii::expand):
(WebCore::FloatRoundedRect::Radii::shrink):
(WebCore::FloatRoundedRect::rect):
(WebCore::FloatRoundedRect::radii):
(WebCore::FloatRoundedRect::isRounded):
(WebCore::FloatRoundedRect::isEmpty):
(WebCore::FloatRoundedRect::setRect):
(WebCore::FloatRoundedRect::setRadii):
(WebCore::FloatRoundedRect::move):
(WebCore::FloatRoundedRect::inflate):
(WebCore::FloatRoundedRect::expandRadii):
(WebCore::FloatRoundedRect::shrinkRadii):
(WebCore::FloatRoundedRect::topLeftCorner):
(WebCore::FloatRoundedRect::topRightCorner):
(WebCore::FloatRoundedRect::bottomLeftCorner):
(WebCore::FloatRoundedRect::bottomRightCorner):
(WebCore::operator==):
* rendering/shapes/BoxShape.cpp: Added.
(WebCore::BoxShape::BoxShape):
(WebCore::BoxShape::getExcludedIntervals):
(WebCore::BoxShape::getIncludedIntervals):
(WebCore::BoxShape::firstIncludedIntervalLogicalTop):
* rendering/shapes/BoxShape.h: Added.
* rendering/shapes/Shape.cpp:
(WebCore::createBoxShape):
(WebCore::Shape::createShape):
2013-11-20 Antti Koivisto <antti@apple.com>
Simple line layout should support floats
https://bugs.webkit.org/show_bug.cgi?id=124666
Reviewed by Dave Hyatt.
Tests: fast/text/simple-lines-float-compare.html
fast/text/simple-lines-float.html
* rendering/line/LineWidth.h:
(WebCore::LineWidth::logicalLeftOffset):
Expose the left offset so we don't need to recompute it.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::computeLineLeft):
Include the left offset from floats.
(WebCore::SimpleLineLayout::createTextRuns):
Keep the flow height updated during the loop as LineWidth reads the current position from there.
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::Run::baseline):
(WebCore::SimpleLineLayout::RunResolver::RunResolver):
(WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
We now bake the border and the padding to the line left offset. No need to add it during resolve.
2013-11-20 Alexey Proskuryakov <ap@apple.com>
Use std::function callbacks in CryptoAlgorithm instead of JS promises
https://bugs.webkit.org/show_bug.cgi?id=124673
Reviewed by Anders Carlsson.
To implement key wrapping/unwrapping, we'll need to chain existing operations.
It's much easier to do with C++ callbacks than with functions fulfilling JS
promises directly.
Also, this will decouple CryptoAlgorithm from JS, which is nice.
SubtleCrypto IDL says that all functions return Promise<any>, but in reality,
there is very little polymorphism, the only function whose return type depends
on algorithm is generateKey (it can create a Key or a KeyPair).
* bindings/js/JSDOMPromise.cpp:
(WebCore::PromiseWrapper::PromiseWrapper):
(WebCore::PromiseWrapper::operator=):
* bindings/js/JSDOMPromise.h:
Made it copyable, as each crypto function wraps the promise in success and failure
functional objects now.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::encrypt):
(WebCore::JSSubtleCrypto::decrypt):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::digest):
(WebCore::JSSubtleCrypto::generateKey):
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::exportKey):
* crypto/CryptoAlgorithm.cpp:
(WebCore::CryptoAlgorithm::encrypt):
(WebCore::CryptoAlgorithm::decrypt):
(WebCore::CryptoAlgorithm::sign):
(WebCore::CryptoAlgorithm::verify):
(WebCore::CryptoAlgorithm::digest):
(WebCore::CryptoAlgorithm::generateKey):
(WebCore::CryptoAlgorithm::deriveKey):
(WebCore::CryptoAlgorithm::deriveBits):
(WebCore::CryptoAlgorithm::importKey):
* crypto/CryptoAlgorithm.h:
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey):
(WebCore::CryptoAlgorithmAES_CBC::importKey):
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey):
(WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmSHA1.cpp:
(WebCore::CryptoAlgorithmSHA1::digest):
* crypto/algorithms/CryptoAlgorithmSHA1.h:
* crypto/algorithms/CryptoAlgorithmSHA224.cpp:
(WebCore::CryptoAlgorithmSHA224::digest):
* crypto/algorithms/CryptoAlgorithmSHA224.h:
* crypto/algorithms/CryptoAlgorithmSHA256.cpp:
(WebCore::CryptoAlgorithmSHA256::digest):
* crypto/algorithms/CryptoAlgorithmSHA256.h:
* crypto/algorithms/CryptoAlgorithmSHA384.cpp:
(WebCore::CryptoAlgorithmSHA384::digest):
* crypto/algorithms/CryptoAlgorithmSHA384.h:
* crypto/algorithms/CryptoAlgorithmSHA512.cpp:
(WebCore::CryptoAlgorithmSHA512::digest):
* crypto/algorithms/CryptoAlgorithmSHA512.h:
* crypto/keys/CryptoKeyRSA.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::transformAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::generatePair):
2013-11-20 Robert Hogan <robert@webkit.org>
REGRESSION(r127163): Respect clearance set on ancestors when placing floats
https://bugs.webkit.org/show_bug.cgi?id=119979
Reviewed by David Hyatt.
Refactor the way self-collapsing blocks with clearance are positioned so that they
get the correct logical-top position during margin-collapsing.
Test: fast/block/margin-collapse/self-collapsing-block-with-float-descendants.html
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::clearFloats):
(WebCore::RenderBlockFlow::marginOffsetForSelfCollapsingBlock):
(WebCore::RenderBlockFlow::collapseMargins):
(WebCore::RenderBlockFlow::clearFloatsIfNeeded):
(WebCore::RenderBlockFlow::handleAfterSideOfBlock):
* rendering/RenderBlockFlow.h:
2013-11-20 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
[GTK] Remove Chromium as user agent and claim to be Safari in OS X
https://bugs.webkit.org/show_bug.cgi?id=124229
Reviewed by Martin Robinson.
http://www.duolingo.com/ doesn't get render correctly because it uses
Chrome/Chromium specific variables, added after it was forked. Because
of this, it is necessary to remove the Chrome/Chromium identification
in the user agent. Also, from now on, by default, The GTK+ port will
claim to be Safari in OS X to avoid loading wrong resources.
* platform/gtk/UserAgentGtk.cpp:
(WebCore::standardUserAgent):
2013-11-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r159551.
http://trac.webkit.org/changeset/159551
https://bugs.webkit.org/show_bug.cgi?id=124669
made many tests asserts (Requested by anttik on #webkit).
* html/HTMLDetailsElement.h:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::selectNextSourceChild):
* html/HTMLMetaElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::isDisabledFormControl):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateWidgetCallback):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::detailsElement):
* html/HTMLSummaryElement.h:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::caption):
(WebCore::HTMLTableElement::tHead):
(WebCore::HTMLTableElement::tFoot):
(WebCore::HTMLTableElement::lastBody):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::rowIndex):
* html/HTMLTableSectionElement.h:
* html/HTMLTagNames.in:
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/shadow/DetailsMarkerControl.cpp:
(WebCore::DetailsMarkerControl::summaryElement):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::handleFallbackContent):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
* page/DragController.cpp:
(WebCore::DragController::canProcessDrag):
* page/Frame.cpp:
(WebCore::Frame::searchForLabelsBeforeElement):
* page/SpatialNavigation.cpp:
(WebCore::frameOwnerElement):
2013-11-20 Zoltan Horvath <zoltan@webkit.org>
Move LineWidth.{h,cpp} into rendering/line
<https://webkit.org/b/124448>
Reviewed by David Hyatt.
In r159354 I introduced line directory. Now it's time to move the helper classes of RenderBlockLineLayout into 'line' subdirectory.
No new tests, no behavior change.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* rendering/line/LineWidth.cpp: Renamed from Source/WebCore/rendering/LineWidth.cpp.
(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::fitsOnLine):
(WebCore::LineWidth::fitsOnLineIncludingExtraWidth):
(WebCore::LineWidth::fitsOnLineExcludingTrailingWhitespace):
(WebCore::LineWidth::updateAvailableWidth):
(WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
(WebCore::LineWidth::commit):
(WebCore::LineWidth::applyOverhang):
(WebCore::LineWidth::fitBelowFloats):
(WebCore::LineWidth::setTrailingWhitespaceWidth):
(WebCore::LineWidth::updateCurrentShapeSegment):
(WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
(WebCore::LineWidth::fitsOnLineExcludingTrailingCollapsedWhitespace):
* rendering/line/LineWidth.h: Renamed from Source/WebCore/rendering/LineWidth.h.
(WebCore::LineWidth::currentWidth):
(WebCore::LineWidth::uncommittedWidth):
(WebCore::LineWidth::committedWidth):
(WebCore::LineWidth::availableWidth):
(WebCore::LineWidth::addUncommittedWidth):
(WebCore::LineWidth::shouldIndentText):
2013-11-20 Brady Eidson <beidson@apple.com>
Alphabetization followup to r159567
Reviewed by style-bot :(
* Modules/indexeddb/IDBDatabaseBackend.h:
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* inspector/InspectorIndexedDBAgent.cpp:
2013-11-20 Brady Eidson <beidson@apple.com>
Rename IDBMetadata.h to IDBDatabaseMetadata.h
https://bugs.webkit.org/show_bug.cgi?id=124668
Reviewed by Dean Jackson.
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseBackend.h:
* Modules/indexeddb/IDBDatabaseMetadata.h: Renamed from Source/WebCore/Modules/indexeddb/IDBMetadata.h.
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
(WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
(WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h:
* inspector/InspectorIndexedDBAgent.cpp:
2013-11-20 Ryosuke Niwa <rniwa@webkit.org>
Remove bogus assertions in updateNameForTreeScope and updateNameForDocument
https://bugs.webkit.org/show_bug.cgi?id=124639
Reviewed by Darin Adler.
Removed assertions. We can't assert that the element in a tree scope or a document
since these two functions are called from removedFrom.
* dom/Element.cpp:
(WebCore::Element::updateNameForTreeScope):
(WebCore::Element::updateNameForDocument):
2013-11-20 Brady Eidson <beidson@apple.com>
Cleanup getOrEstablishIDBDatabaseMetadata and stub it out in WK2
https://bugs.webkit.org/show_bug.cgi?id=124635
Reviewed by Tim Horton.
getOrEstablishIDBDatabaseMetadata() should not have to take a database name parameter because the
server connection should already know what database name it represents.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::openInternalAsync):
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
(WebCore::IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
(WebCore::IDBFactoryBackendLevelDB::open):
2013-11-20 Andrzej Badowski <a.badowski@samsung.com>
[EFL] <video> and <audio> should be accessible.
https://bugs.webkit.org/show_bug.cgi?id=124494
Reviewed by Gyuyoung Kim.
Adding descriptions of media-element controls.
* platform/efl/LocalizedStringsEfl.cpp:
(WebCore::localizedMediaControlElementString):
2013-11-20 Antti Koivisto <antti@apple.com>
Don't paint simple text runs outside the paint rect
https://bugs.webkit.org/show_bug.cgi?id=124651
Reviewed by Anders Carlsson.
This speeds up partial paints for long text paragraphs.
Also add the same optimization for hit testing.
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
Iterate over the run range that needs painting.
(WebCore::SimpleLineLayout::hitTestFlow):
Iterate over the line range that needs painting.
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::Range::Range):
(WebCore::SimpleLineLayout::Range::begin):
(WebCore::SimpleLineLayout::Range::end):
Add Range type.
(WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator++):
(WebCore::SimpleLineLayout::RunResolver::Iterator::advance):
(WebCore::SimpleLineLayout::RunResolver::Iterator::advanceLines):
Optimize case where runCount==lineCount. In this case we can just directly jump
to the right run/line.
(WebCore::SimpleLineLayout::RunResolver::begin):
(WebCore::SimpleLineLayout::RunResolver::end):
(WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
(WebCore::SimpleLineLayout::RunResolver::rangeForRect):
Get the range corresponding to a rect. This currently cares about y coordinates only.
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator++):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
(WebCore::SimpleLineLayout::LineResolver::rangeForRect):
2013-11-20 Antoine Quint <graouts@apple.com>
Cannot animate "points" attribute for <svg:polygon>
https://bugs.webkit.org/show_bug.cgi?id=21371
Reviewed by Antti Koivisto.
Ensure we use animated list of points for SVG <polygon> and <polyline> elements
when we build the path used to draw them, otherwise the animated changes won't
be rendered and the base value will be used.
Tests: svg/animations/polygon-set.svg
svg/animations/polyline-set.svg
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromPolygonElement):
(WebCore::updatePathFromPolylineElement):
2013-11-20 Andrei Bucur <abucur@adobe.com>
[CSSRegions] Move region styling code into RenderNamedFlowFragment
https://bugs.webkit.org/show_bug.cgi?id=122957
Reviewed by Mihnea Ovidenie.
The patch moves all the region styling functionality outside of RenderRegion
to RenderNamedFlowFragment and outside of RenderFlowThread to RenderNamedFlowThread.
This generates a couple of undesired casts that will be removed in later patches
when everything CSS Regions specific will be located inside RenderNamedFlowThread
and RenderNamedFlowFragment (e.g. the move of the isValid flag, the auto-height
code etc.).
The painting function was also moved from RenderRegion to RenderNamedFlowFragment. It
was only used by the CSS Regions code. The new multi-column implementation has its own
painting mechanism.
Tests: No changed functionality, just refactorings.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::removeFlowChildInfo):
(WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
* rendering/RenderFlowThread.h:
* rendering/RenderInline.cpp:
(WebCore::RenderInline::updateAlwaysCreateLineBoxes):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::styleDidChange):
(WebCore::RenderNamedFlowFragment::checkRegionStyle):
(WebCore::RenderNamedFlowFragment::computeStyleInRegion):
(WebCore::RenderNamedFlowFragment::computeChildrenStyleInRegion):
(WebCore::RenderNamedFlowFragment::setObjectStyleInRegion):
(WebCore::RenderNamedFlowFragment::clearObjectStyleInRegion):
(WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
(WebCore::RenderNamedFlowFragment::restoreRegionObjectsOriginalStyle):
(WebCore::shouldPaintRegionContentsInPhase):
(WebCore::RenderNamedFlowFragment::paintObject):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
(WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
(WebCore::RenderNamedFlowThread::removeFlowChildInfo):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::RenderRegion):
(WebCore::RenderRegion::styleDidChange):
(WebCore::RenderRegion::attachRegion):
* rendering/RenderRegion.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::writeRenderRegionList):
2013-11-19 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Generate toHTMLFooElement() to clean up static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=124571
Reviewed by Darin Adler.
Though there are a lot of clean up commits before, there are still
use of static_cast<HTMLFooElement*>. To clean up them, we need to generate
toHTMLDetails|Meta|Summary|TableSection|TableCaptionElement().
Additionally, other static_cast<> are removed as well.
No new tests, no behavior changes.
* html/HTMLDetailsElement.h:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::selectNextSourceChild):
* html/HTMLMetaElement.h:
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::isDisabledFormControl):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::updateWidgetCallback):
* html/HTMLSummaryElement.cpp:
(WebCore::HTMLSummaryElement::detailsElement):
* html/HTMLSummaryElement.h:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::caption):
(WebCore::HTMLTableElement::tHead):
(WebCore::HTMLTableElement::tFoot):
(WebCore::HTMLTableElement::lastBody):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::rowIndex):
* html/HTMLTableSectionElement.h:
* html/HTMLTagNames.in:
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* html/shadow/DetailsMarkerControl.cpp:
(WebCore::DetailsMarkerControl::summaryElement):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::handleFallbackContent):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
* page/DragController.cpp:
(WebCore::DragController::canProcessDrag):
* page/Frame.cpp:
(WebCore::Frame::searchForLabelsBeforeElement):
* page/SpatialNavigation.cpp:
(WebCore::frameOwnerElement):
2013-11-19 Ryosuke Niwa <rniwa@webkit.org>
Enable HTMLTemplateElement on Mac port
https://bugs.webkit.org/show_bug.cgi?id=124637
Reviewed by Tim Horton.
Enabled the feature.
* Configurations/FeatureDefines.xcconfig:
2013-11-19 Jinwoo Song <jinwoo7.song@samsung.com>
Remove unused member function declaration in DocumentOrderedMap.h
https://bugs.webkit.org/show_bug.cgi?id=124629
Reviewed by Ryosuke Niwa.
checkConsistency() is not used anywhere.
* dom/DocumentOrderedMap.h:
2013-11-19 Seokju Kwon <seokju@webkit.org>
Removal of redundant function call in Editor::insertTextWithoutSendingTextEvent
https://bugs.webkit.org/show_bug.cgi?id=124563
Reviewed by Brent Fulgham.
No new tests needed, no behavior change.
* editing/Editor.cpp:
(WebCore::Editor::insertTextWithoutSendingTextEvent):
2013-11-19 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Fix build break after r159533.
* CMakeLists.txt: Update ANGLE files.
2013-11-19 Zhuang Zhigang <zhuangzg@cn.fujitsu.com>
Implement spin control on WinCE port.
https://bugs.webkit.org/show_bug.cgi?id=123254
Reviewed by Brent Fulgham.
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderThemeWinCE::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeWinCE::paintInnerSpinButton):
* rendering/RenderThemeWinCE.h:
2013-11-19 Roger Fong <roger_fong@apple.com>
Update ANGLE sources.
https://bugs.webkit.org/show_bug.cgi?id=124615.
Reviewed by Dean Jackson.
Tests covered by Khronos WebGL conformance tests.
* platform/graphics/ANGLEWebKitBridge.cpp: Resolve a build error that resulted from updating ANGLE.
(WebCore::getSymbolInfo):
(WebCore::ANGLEWebKitBridge::compileShaderSource):
2013-11-19 Filip Pizlo <fpizlo@apple.com>
Rename WatchpointSet::notifyWrite() should be renamed to WatchpointSet::fireAll()
https://bugs.webkit.org/show_bug.cgi?id=124609
Rubber stamped by Mark Lam.
No new tests because no new behavior.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
* bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::JSTestEventTarget::create):
2013-11-19 Bear Travis <betravis@adobe.com>
[CSS Shapes] Parse [<box> || <shape>] values
https://bugs.webkit.org/show_bug.cgi?id=124426
Reviewed by Dirk Schulze.
Shape values can now have an optional box specifying the coordinate sytem to use
for sizing and positioning the shape. This patch adds the functionality to support
parsing these new values.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForBox): Added function to convert between BasicShape::ReferenceBox
and CSSPrimitiveValue (which wraps a CSSValueID).
(WebCore::boxForValue): Ditto.
(WebCore::valueForBasicShape): Translations between CSSBasicShape and BasicShape
must now include the reference box.
(WebCore::basicShapeForValue): Ditto.
* css/BasicShapeFunctions.h:
* css/CSSBasicShapes.cpp:
(WebCore::buildRectangleString): Include the box in the built CSS string.
(WebCore::CSSBasicShapeRectangle::cssText): Ditto.
(WebCore::CSSBasicShapeRectangle::equals): Include the box in comparisions.
(WebCore::buildCircleString):
(WebCore::CSSBasicShapeCircle::cssText):
(WebCore::CSSBasicShapeCircle::equals):
(WebCore::buildEllipseString):
(WebCore::CSSBasicShapeEllipse::cssText):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::buildPolygonString):
(WebCore::CSSBasicShapePolygon::cssText):
(WebCore::CSSBasicShapePolygon::equals):
(WebCore::buildInsetRectangleString):
(WebCore::CSSBasicShapeInsetRectangle::cssText):
(WebCore::CSSBasicShapeInsetRectangle::equals):
* css/CSSBasicShapes.h:
(WebCore::CSSBasicShape::box): BasicShapes now have an reference box.
(WebCore::CSSBasicShape::setBox): Ditto.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Shape-inside can also
parse the box values.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): The shape properties use parseShapeProperty,
while minor adjustments were made to parseBasicShape's return type.
(WebCore::isBoxValue): Is the CSSValueID one of the box values.
(WebCore::CSSParser::parseShapeProperty): Parse one of the shape properties
and return an appropriate CSSValue.
(WebCore::CSSParser::parseBasicShape): Return a CSSBasicShape rather than
adding a ShapeValue to the style.
* css/CSSParser.h:
* rendering/style/BasicShapes.h:
(WebCore::BasicShape::box): Add a box to BasicShape and getters/setters.
(WebCore::BasicShape::setBox): Ditto.
(WebCore::BasicShape::BasicShape): Ditto.
2013-11-19 Jer Noble <jer.noble@apple.com>
[Mac] 9 WebGL conformance failures after r159518.
https://bugs.webkit.org/show_bug.cgi?id=124608
Reviewed by Dean Jackson.
Once we removed the CIImage drawing path, there was no longer any reason to flip the
CGImageRef before drawing to the provided GraphicsContext.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
2013-11-19 Chris Fleizach <cfleizach@apple.com>
Web Speech API crashes onboundary event handling with reload
https://bugs.webkit.org/show_bug.cgi?id=124607
Reviewed by Tim Horton.
If the page goes away, we need to cleanup the Mac platform synthesizer object, because
NSSpeechSynthesizer is retained elsewhere to handle the callbacks (so it doesn't automatically
get torn down).
The layout tests for speech rely on a Mock synthesizer, so there is no good way to test this
Mac platform specific behavior.
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper invalidate]):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
2013-11-19 Mark Lam <mark.lam@apple.com>
Add tracking of endColumn for Executables.
https://bugs.webkit.org/show_bug.cgi?id=124245.
Reviewed by Geoffrey Garen.
Test: js/dom/script-start-end-locations.html
* ForwardingHeaders/bytecode: Added.
* ForwardingHeaders/bytecode/CodeBlock.h: Added.
* WebCore.exp.in:
* testing/Internals.cpp:
(WebCore::GetCallerCodeBlockFunctor::GetCallerCodeBlockFunctor):
(WebCore::GetCallerCodeBlockFunctor::operator()):
(WebCore::GetCallerCodeBlockFunctor::codeBlock):
(WebCore::Internals::parserMetaData):
* testing/Internals.h:
* testing/Internals.idl:
2013-11-15 Jer Noble <jer.noble@apple.com>
[MSE] Support fastSeek() in MediaSource.
https://bugs.webkit.org/show_bug.cgi?id=124422
Reviewed by Eric Carlson.
Test: media/media-source/media-source-fastseek.html
* Modules/mediasource/MediaSource.cpp:
* Modules/mediasource/MediaSource.h:
Add support for "seek to the next fastest time" in MediaSource by
returning the time of the nearest Sync sample.
Move the data structure logic out of SourceBuffer and into it's own
class:
* Modules/mediasource/SampleMap.cpp: Added.
(WebCore::SampleIsLessThanMediaTimeComparator::operator()):
(WebCore::SampleIsGreaterThanMediaTimeComparator::operator()):
(WebCore::SampleIsRandomAccess::operator()):
(WebCore::SamplePresentationTimeIsWithinRangeComparator::operator()):
(WebCore::SampleMap::addSample):
(WebCore::SampleMap::removeSample):
(WebCore::SampleMap::findSampleContainingPresentationTime):
(WebCore::SampleMap::findSampleAfterPresentationTime):
(WebCore::SampleMap::findSampleWithDecodeTime):
(WebCore::SampleMap::reverseFindSampleContainingPresentationTime):
(WebCore::SampleMap::reverseFindSampleBeforePresentationTime):
(WebCore::SampleMap::reverseFindSampleWithDecodeTime):
(WebCore::SampleMap::findSyncSamplePriorToPresentationTime):
(WebCore::SampleMap::findSyncSamplePriorToDecodeIterator):
(WebCore::SampleMap::findSyncSampleAfterPresentationTime):
(WebCore::SampleMap::findSyncSampleAfterDecodeIterator):
(WebCore::SampleMap::findSamplesBetweenPresentationTimes):
(WebCore::SampleMap::findDependentSamples):
* Modules/mediasource/SampleMap.h: Added.
(WebCore::SampleMap::presentationBegin):
(WebCore::SampleMap::presentationEnd):
(WebCore::SampleMap::decodeBegin):
(WebCore::SampleMap::decodeEnd):
(WebCore::SampleMap::reversePresentationBegin):
(WebCore::SampleMap::reversePresentationEnd):
(WebCore::SampleMap::reverseDecodeBegin):
(WebCore::SampleMap::reverseDecodeEnd):
Add logic to find and return the time of the next & previous sync
sample, within the threshold provided:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::TrackBuffer::TrackBuffer):
(WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
(WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime):
(WebCore::SourceBuffer::appendBufferTimerFired):
(WebCore::SourceBuffer::setActive):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
(WebCore::SourceBuffer::provideMediaData):
* Modules/mediasource/SourceBuffer.h:
* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::setActive):
* platform/graphics/SourceBufferPrivateClient.h:
(WebCore::SourceBufferPrivateClient::sourceBufferPrivateFastSeekTimeForMediaTime):
(WebCore::SourceBufferPrivateClient::sourceBufferPrivateSeekToTime):
Add new files to the project:
* WebCore.xcodeproj/project.pbxproj:
Drive-by fixes in HTMLMediaElement:
* html/HTMLMediaSource.h:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::finishSeek): Cause the MediaSource to check the ready state of all its buffers.
(HTMLMediaElement::selectNextSourceChild): Pass in whether the source element has a MediaSource URL.
Implement the seekWithTolerance behavior in MockMediaPlayerMediaSource:
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::maxTimeSeekableDouble):
(WebCore::MockMediaPlayerMediaSource::currentTimeDouble):
(WebCore::MockMediaPlayerMediaSource::seekWithTolerance):
(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime):
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::seekToTime):
* platform/mock/mediasource/MockMediaSourcePrivate.h:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockMediaSample::flags):
(WebCore::MockSourceBufferPrivate::setActive):
(WebCore::MockSourceBufferPrivate::fastSeekTimeForMediaTime):
(WebCore::MockSourceBufferPrivate::seekToTime):
* platform/mock/mediasource/MockSourceBufferPrivate.h:
2013-11-19 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 Dean Jackson.
Improve performance by creating a CGImageRef which directly references the CVPixelBuffer provided
by AVPlayerItemVideoOutput:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::CVPixelBufferGetBytePointerCallback):
(WebCore::CVPixelBufferReleaseBytePointerCallback):
(WebCore::CVPixelBufferReleaseInfoCallback):
(WebCore::createImageFromPixelBuffer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
Additionally, when asked to paint with an AVPlayerItemVideoOutput, block until the output notifies
its delegate that a pixel buffer is available:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::globalPullDelegateQueue):
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(-[WebCoreAVFPullDelegate initWithCallback:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(-[WebCoreAVFPullDelegate outputSequenceWasFlushed:]):
To further optimize video -> canvas drawing, add a method which can return a PassNativeImage to be
drawn directly onto the canvas, rather than rendering into an intermediary context:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::nativeImageForCurrentTime):
* html/HTMLVideoElement.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::nativeImageForCurrentTime):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::nativeImageForCurrentTime):
2013-11-19 Brady Eidson <beidson@apple.com>
Consolidate IDBBackingStore*Interface and IDBBackingStore*LevelDB
https://bugs.webkit.org/show_bug.cgi?id=124597
Reviewed by Alexey Proskuryakov.
The Interface abstraction doesnt make sense anymore, as LevelDB will be the only implementor.
* Modules/indexeddb/IDBBackingStoreCursorInterface.h: Removed.
* Modules/indexeddb/IDBBackingStoreInterface.h: Removed.
* Modules/indexeddb/IDBBackingStoreTransactionInterface.h: Removed.
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h:
(WebCore::IDBBackingStoreCursorLevelDB::key):
(WebCore::IDBBackingStoreCursorLevelDB::primaryKey):
(WebCore::IDBBackingStoreCursorLevelDB::recordIdentifier):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::getOrEstablishIDBDatabaseMetadata):
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseVersion):
(WebCore::IDBBackingStoreLevelDB::deleteDatabase):
(WebCore::IDBBackingStoreLevelDB::createObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
(WebCore::IDBBackingStoreLevelDB::getRecord):
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::clearObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::createIndex):
(WebCore::IDBBackingStoreLevelDB::deleteIndex):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
(WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
(WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h:
(WebCore::IDBBackingStoreTransactionLevelDB::levelDBTransactionFrom):
* Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.cpp:
(WebCore::IDBIndexWriterLevelDB::writeIndexKeys):
(WebCore::IDBIndexWriterLevelDB::verifyIndexKeys):
(WebCore::IDBIndexWriterLevelDB::addingKeyAllowed):
* Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::get):
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::count):
(WebCore::IDBServerConnectionLevelDB::deleteRange):
* WebCore.xcodeproj/project.pbxproj:
2013-11-19 Sergio Correia <sergio.correia@openbossa.org>
Get rid of bare new in SVGAnimatedColorAnimator::constructFromString()
https://bugs.webkit.org/show_bug.cgi?id=124595
Reviewed by Darin Adler.
Use std::unique_ptr instead, to manage the arguments passed to the create
methods of SVGAnimatedType.
No new tests, covered by existing tests.
* svg/SVGAnimatedAngle.cpp:
(WebCore::SVGAnimatedAngleAnimator::constructFromString): Replace bare
pointer with std::unique_ptr.
* svg/SVGAnimatedBoolean.cpp:
(WebCore::SVGAnimatedBooleanAnimator::constructFromString): Ditto.
* svg/SVGAnimatedColor.cpp:
(WebCore::SVGAnimatedColorAnimator::constructFromString): Ditto.
* svg/SVGAnimatedEnumeration.cpp:
(WebCore::SVGAnimatedEnumerationAnimator::constructFromString): Ditto.
* svg/SVGAnimatedInteger.cpp:
(WebCore::SVGAnimatedIntegerAnimator::constructFromString): Ditto.
* svg/SVGAnimatedIntegerOptionalInteger.cpp:
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
Ditto.
* svg/SVGAnimatedLength.cpp:
(WebCore::SVGAnimatedLengthAnimator::constructFromString): Ditto.
* svg/SVGAnimatedLengthList.cpp:
(WebCore::SVGAnimatedLengthListAnimator::constructFromString): Ditto.
* svg/SVGAnimatedNumber.cpp:
(WebCore::SVGAnimatedNumberAnimator::constructFromString): Ditto.
* svg/SVGAnimatedNumberList.cpp:
(WebCore::SVGAnimatedNumberListAnimator::constructFromString): Ditto.
* svg/SVGAnimatedNumberOptionalNumber.cpp:
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::constructFromString):
Ditto.
* svg/SVGAnimatedPointList.cpp:
(WebCore::SVGAnimatedPointListAnimator::constructFromString): Ditto.
* svg/SVGAnimatedPreserveAspectRatio.cpp:
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::constructFromString):
Ditto.
* svg/SVGAnimatedRect.cpp:
(WebCore::SVGAnimatedRectAnimator::constructFromString): Ditto.
* svg/SVGAnimatedString.cpp:
(WebCore::SVGAnimatedStringAnimator::constructFromString): Ditto.
* svg/SVGAnimatedTransformList.cpp:
(WebCore::SVGAnimatedTransformListAnimator::constructFromString):
Ditto.
* svg/SVGAnimatedType.cpp:
(WebCore::SVGAnimatedType::createAngleAndEnumeration): Use
std::unique_ptr instead of bare pointer as parameter.
(WebCore::SVGAnimatedType::createBoolean): Ditto.
(WebCore::SVGAnimatedType::createColor): Ditto.
(WebCore::SVGAnimatedType::createEnumeration): Ditto.
(WebCore::SVGAnimatedType::createInteger): Ditto.
(WebCore::SVGAnimatedType::createIntegerOptionalInteger): Ditto.
(WebCore::SVGAnimatedType::createLength): Ditto.
(WebCore::SVGAnimatedType::createLengthList): Ditto.
(WebCore::SVGAnimatedType::createNumber): Ditto.
(WebCore::SVGAnimatedType::createNumberList): Ditto.
(WebCore::SVGAnimatedType::createNumberOptionalNumber): Ditto.
(WebCore::SVGAnimatedType::createPointList): Ditto.
(WebCore::SVGAnimatedType::createPreserveAspectRatio): Ditto.
(WebCore::SVGAnimatedType::createRect): Ditto.
(WebCore::SVGAnimatedType::createString): Ditto.
(WebCore::SVGAnimatedType::createTransformList): Ditto.
* svg/SVGAnimatedType.h: Use std::unique_ptr as parameter in the
create methods.
* svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::constructFromBaseValue): Make
helper return std::unique_ptr instead of bare pointer.
(WebCore::SVGAnimatedTypeAnimator::constructFromBaseValues): Ditto.
2013-11-19 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Refactor RectangleShape
https://bugs.webkit.org/show_bug.cgi?id=124416
Privatize and rename the FloatRoundedRect class defined in RectangleShape.h.
The new class is called RectangleShape::ShapeBounds. This change enables
creating a proper FloatRoundedRect analog of the existing RoundedRect class;
part of adding support for box shapes, per the latest CSS spec.
Reviewed by Dean Jackson.
No new tests, just refactoring.
* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::ShapeBounds::paddingBounds):
(WebCore::RectangleShape::ShapeBounds::marginBounds):
(WebCore::RectangleShape::ShapeBounds::cornerInterceptForWidth):
(WebCore::RectangleShape::shapePaddingBounds):
(WebCore::RectangleShape::shapeMarginBounds):
(WebCore::RectangleShape::getExcludedIntervals):
(WebCore::RectangleShape::getIncludedIntervals):
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop):
* rendering/shapes/RectangleShape.h:
(WebCore::RectangleShape::ShapeBounds::ShapeBounds):
(WebCore::RectangleShape::ShapeBounds::rx):
(WebCore::RectangleShape::ShapeBounds::ry):
2013-11-19 Sergio Correia <sergio.correia@openbossa.org>
Mark classes deriving from SVGAnimatedTypeAnimator as FINAL
https://bugs.webkit.org/show_bug.cgi?id=124456
Reviewed by Darin Adler.
Also add OVERRIDE to their virtual methods appropriately and remove
existing empty virtual destructors.
No new tests, covered by existing ones.
* svg/SVGAnimatedAngle.h:
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedColor.h:
* svg/SVGAnimatedEnumeration.h:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedIntegerOptionalInteger.h:
* svg/SVGAnimatedLength.h:
* svg/SVGAnimatedLengthList.h:
* svg/SVGAnimatedNumber.h:
* svg/SVGAnimatedNumberList.h:
* svg/SVGAnimatedNumberOptionalNumber.h:
* svg/SVGAnimatedPath.h:
* svg/SVGAnimatedPointList.h:
* svg/SVGAnimatedPreserveAspectRatio.h:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimatedString.h:
* svg/SVGAnimatedTransformList.h:
2013-11-19 Brady Eidson <beidson@apple.com>
Add WebIDBServerConnection and DatabaseProcessIDBConnection stubs
https://bugs.webkit.org/show_bug.cgi?id=124562
Reviewed by Alexey Proskuryakov.
Export some more symbols and headers for WK2 to use.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2013-11-19 Frédéric Wang <fred.wang@free.fr>
Map the dir attribute to the CSS direction property.
https://bugs.webkit.org/show_bug.cgi?id=124572.
Reviewed by Darin Adler.
Tests: mathml/presentation/direction-overall.html
mathml/presentation/direction-token.html
mathml/presentation/direction.html
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::isPresentationAttribute): add dir
(WebCore::MathMLElement::collectStyleForPresentationAttribute): map dir
* mathml/mathattrs.in: add the dir attribute
* mathml/mathtags.in: add the mstyle tag (needed to use mstyleTag)
2013-11-19 Sergio Correia <sergio.correia@openbossa.org>
[SVG] Convert OwnPtr/PassOwnPtr to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=124382
Reviewed by Darin Adler.
The files modified are mostly under WebCore/svg/; in a few cases, some
"external" files needed changes as well.
No new tests, covered by existing ones.
* css/CSSFontFaceSource.cpp:
* loader/cache/CachedImage.cpp:
* loader/cache/CachedImage.h:
* platform/graphics/SimpleFontData.cpp:
* platform/graphics/SimpleFontData.h:
* rendering/svg/RenderSVGResourceContainer.cpp:
* svg/SVGAnimateElement.cpp:
* svg/SVGAnimateElement.h:
* svg/SVGAnimatedAngle.cpp:
* svg/SVGAnimatedAngle.h:
* svg/SVGAnimatedBoolean.cpp:
* svg/SVGAnimatedBoolean.h:
* svg/SVGAnimatedColor.cpp:
* svg/SVGAnimatedColor.h:
* svg/SVGAnimatedEnumeration.cpp:
* svg/SVGAnimatedEnumeration.h:
* svg/SVGAnimatedInteger.cpp:
* svg/SVGAnimatedInteger.h:
* svg/SVGAnimatedIntegerOptionalInteger.cpp:
* svg/SVGAnimatedIntegerOptionalInteger.h:
* svg/SVGAnimatedLength.cpp:
* svg/SVGAnimatedLength.h:
* svg/SVGAnimatedLengthList.cpp:
* svg/SVGAnimatedLengthList.h:
* svg/SVGAnimatedNumber.cpp:
* svg/SVGAnimatedNumber.h:
* svg/SVGAnimatedNumberList.cpp:
* svg/SVGAnimatedNumberList.h:
* 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/SVGAnimatedRect.cpp:
* svg/SVGAnimatedRect.h:
* svg/SVGAnimatedString.cpp:
* svg/SVGAnimatedString.h:
* svg/SVGAnimatedTransformList.cpp:
* svg/SVGAnimatedTransformList.h:
* svg/SVGAnimatedType.cpp:
* svg/SVGAnimatedType.h:
* svg/SVGAnimatedTypeAnimator.cpp:
* svg/SVGAnimatedTypeAnimator.h:
* svg/SVGAnimatorFactory.h:
* svg/SVGDocumentExtensions.cpp:
* svg/SVGDocumentExtensions.h:
* svg/SVGFontData.h:
* svg/SVGFontElement.cpp:
* svg/SVGFontElement.h:
* svg/SVGGraphicsElement.cpp:
* svg/SVGGraphicsElement.h:
* svg/SVGPathByteStreamSource.h:
* svg/SVGPathParser.h:
* svg/SVGPathSegListSource.h:
* svg/SVGPathStringSource.h:
* svg/SVGPathUtilities.cpp:
* svg/SVGPathUtilities.h:
* svg/animation/SMILTimeContainer.cpp:
* svg/animation/SMILTimeContainer.h:
* svg/graphics/SVGImage.cpp:
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.h:
* svg/properties/SVGAttributeToPropertyMap.cpp:
* svg/properties/SVGAttributeToPropertyMap.h:
2013-11-19 Zoltan Horvath <zoltan@webkit.org>
Add LineInlineHeaders.h to WebCore.xcodeproj
<https://webkit.org/b/124460>
Reviewed by Csaba Osztrogonác.
LineInlineHeaders.h (r159354) hasn't been added to WebCore.xcodeproj. This patch adds to it.
No new tests, no behavior change.
* WebCore.xcodeproj/project.pbxproj:
2013-11-19 Krzysztof Czech <k.czech@samsung.com>
[AX] Use std::unique_ptr to manage AXComputedObjectAttributeCache
https://bugs.webkit.org/show_bug.cgi?id=124404
Reviewed by Mario Sanchez Prada.
Convert OwnPtr/PassOwnPtr to std::unique_ptr.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::startCachingComputedObjectAttributesUntilTreeMutates):
(WebCore::AXObjectCache::stopCachingComputedObjectAttributes):
* accessibility/AXObjectCache.h:
(WebCore::AXComputedObjectAttributeCache::AXComputedObjectAttributeCache):
2013-11-19 Ryosuke Niwa <rniwa@webkit.org>
Add more assertions with security implications in DocumentOrderedMap
https://bugs.webkit.org/show_bug.cgi?id=124559
Reviewed by Antti Koivisto.
Assert that newly added elements and existing elements in the document ordered map are in the same tree scope
as the document ordered map. Also exit early if we're about to add an element in a wrong document to the map.
We don't exit early in get() because the damage has already been done at that point (the element may have been
deleted already).
* dom/Document.cpp:
(WebCore::Document::addImageElementByLowercasedUsemap):
* dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::add): Assert that the newly added element is in the current tree scope.
Also exit early if either the element is not in the tree scope or not in the right document.
While this doesn't make the function completely fault safe, it'll catch when we try to add a detached node.
(WebCore::DocumentOrderedMap::remove): Convert existing assertions to ones with security implication.
(WebCore::DocumentOrderedMap::get): Assert with security implication that the element we're about to return
is in the current tree scope. The element may have already been deleted if we ever hit these assertions.
(WebCore::DocumentOrderedMap::getAllElementsById): Convert an existing assertion to an assertion with security
implication.
* dom/DocumentOrderedMap.h:
* dom/TreeScope.cpp:
(WebCore::TreeScope::addElementById):
(WebCore::TreeScope::addElementByName):
(WebCore::TreeScope::addImageMap):
(WebCore::TreeScope::addLabel):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::addDocumentNamedItem):
(WebCore::HTMLDocument::addWindowNamedItem):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::insertedInto): Set InTreeScope flag before calling addImageElementByLowercasedUsemap.
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::insertedInto): Ditto for addImageMap.
2013-11-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r159455.
http://trac.webkit.org/changeset/159455
https://bugs.webkit.org/show_bug.cgi?id=124568
broke two api tests (see bug 124564) (Requested by thorton on
#webkit).
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOM.mm:
(-[DOMNode renderedImage]):
(-[DOMRange renderedImageForcingBlackText:]):
* dom/Clipboard.cpp:
(WebCore::Clipboard::createDragImage):
* dom/ClipboardMac.mm:
(WebCore::Clipboard::createDragImage):
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* page/Frame.cpp:
(WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
(WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):
* page/Frame.h:
* page/FrameSnapshotting.cpp: Removed.
* page/FrameSnapshotting.h: Removed.
* page/mac/FrameMac.mm: Copied from Source/WebCore/page/win/FrameWin.h.
(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):
* page/mac/FrameSnapshottingMac.h: Copied from Source/WebCore/page/win/FrameWin.h.
* page/mac/FrameSnapshottingMac.mm: Added.
(WebCore::imageFromRect):
(WebCore::selectionImage):
(WebCore::rangeImage):
(WebCore::snapshotDragImage):
* page/win/FrameWin.cpp:
(WebCore::Frame::dragImageForSelection):
(WebCore::Frame::nodeImage):
* page/win/FrameWin.h:
* platform/DragImage.cpp:
(WebCore::fitDragImageToMaxSize):
(WebCore::createDragImageForLink):
* platform/DragImage.h:
2013-11-18 Mark Rowe <mrowe@apple.com>
Use hw.activecpu for determining how many processes to spawn.
It's documented as the preferred way to determine the number of threads
or processes to create in a SMP aware application.
Rubber-stamped by Tim Horton.
* WebCore.xcodeproj/project.pbxproj:
2013-11-18 Samuel White <samuel_white@apple.com>
AX: aria-labelledby should be used in preference to aria-labeledby
https://bugs.webkit.org/show_bug.cgi?id=62351
Reviewed by Chris Fleizach.
Making sure aria-labelled by overrides the incorrectly spelled aria-labeledby attribute.
Test: accessibility/aria-labelledby-overrides-aria-labeledby.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::ariaLabeledByElements):
2013-11-18 Zalan Bujtas <zalan@apple.com>
use after free in WebCore::DocumentOrderedMap::remove / WebCore::TreeScope::removeElementById
https://bugs.webkit.org/show_bug.cgi?id=121324
Reviewed by Ryosuke Niwa.
Update the document ordered map for an image element before dispatching load or error events
when it's inserted into a document.
Test: fast/dom/modify-node-and-while-in-the-callback-too-crash.html
* dom/DocumentOrderedMap.cpp: defensive fix to avoid use after free issues.
(WebCore::DocumentOrderedMap::remove):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::insertedInto):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): setting m_failedLoadURL makes
repeated updateFromElement calls return early.
2013-11-18 Benjamin Poulain <bpoulain@apple.com>
Upstream iOS's ResourceHandle implementation
https://bugs.webkit.org/show_bug.cgi?id=124554
Reviewed by Sam Weinig.
* platform/network/ResourceHandle.h:
(WebCore::ResourceHandle::quickLookHandle):
(WebCore::ResourceHandle::setQuickLookHandle):
* platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::connectionProperties):
(WebCore::ResourceHandleClient::shouldCacheResponse):
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::synthesizeRedirectResponseIfNecessary):
(WebCore::willSendRequest):
(WebCore::didReceiveResponse):
(WebCore::didReceiveDataArray):
(WebCore::didReceiveData):
(WebCore::didFinishLoading):
(WebCore::didFail):
(WebCore::willCacheResponse):
(WebCore::canRespondToProtectionSpace):
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::currentRequest):
(WebCore::ResourceHandle::connectionClientCallbacks):
2013-11-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r159430.
http://trac.webkit.org/changeset/159430
https://bugs.webkit.org/show_bug.cgi?id=124548
WebCore can know nothing about nor use files from WebKit/
(Requested by thorton on #webkit).
* DerivedSources.make:
2013-11-18 Brady Eidson <beidson@apple.com>
Remove IDBServerConnection's deprecatedBackingStore()
https://bugs.webkit.org/show_bug.cgi?id=124547
Reviewed by Tim Horton.
It is no longer needed, as the front end no longer knows about the backing store.
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2013-11-18 Samuel White <samuel_white@apple.com>
AX: Add ability to fetch only visible table rows.
https://bugs.webkit.org/show_bug.cgi?id=124430
Reviewed by Chris Fleizach.
Adding AccessibilityTable::visibleRows method to support AXVisibleRows attribute mac platform.
Test: platform/mac/accessibility/table-visible-rows.html
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::columnHeaders):
(WebCore::AccessibilityTable::rowHeaders):
(WebCore::AccessibilityTable::visibleRows):
* accessibility/AccessibilityTable.h:
* accessibility/AccessibilityTableRow.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-11-18 Simon Fraser <simon.fraser@apple.com>
At some scales, opaque compositing layers have garbage pixels around the edges
https://bugs.webkit.org/show_bug.cgi?id=124541
Reviewed by Dean Jackson.
Layers get marked as having opaque contents when their background is
known to paint the entire layer. However, this failed to take into
account two reasons why every pixel may not get painted.
First, subpixel layout can result in non-integral RenderLayer
bounds, which will get rounded up to an integral GraphicsLayer
size. When this happens we may not paint edge pixels.
Second, at non-integral scale factors, graphics context scaling
may cause us to not paint edge pixels.
Fix by only marking PlatformCALayers as having opaque contents
when the contentsScale of the layer is integral.
Not testable, because we can't guarantee to get garbage pixels
in a ref test, and layer dumps show GraphicsLayer's notion of
content opaqueness, not the one we set on the PlatformCALayer.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::isIntegral):
(WebCore::clampedContentsScaleForScale):
(WebCore::GraphicsLayerCA::updateRootRelativeScale):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateContentsOpaque):
(WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact):
Drive-by typo fix.
(WebCore::GraphicsLayerCA::noteChangesForScaleSensitiveProperties):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2013-11-18 David Hyatt <hyatt@apple.com>
Add a quirk to not respect center text-align when positioning
<rdar://problem/15427571>
https://bugs.webkit.org/show_bug.cgi?id=124522
Reviewed by Simon Fraser.
Added fast/block/legacy-text-align-position-quirk.html
* page/Settings.in:
Add the quirk setting.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::startAlignedOffsetForLine):
Don't pay attention to center text-align when the quirk is set.
2013-11-18 Brian J. Burg <burg@cs.washington.edu>
Consolidate various frame snapshot capabilities.
https://bugs.webkit.org/show_bug.cgi?id=124325
Reviewed by Timothy Hatcher.
Various snapshot creation methods had duplicated code and were split
between Frame, DragImage, and platform-specific implementationss.
This patch puts WebCore snapshot methods into FrameSnapshotting
and removes platform implementations where possible.
DragImage methods reuse snapshot methods where possible. Inspector
will be able to take snapshots without using drag images.
No new tests, this is a refactoring.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOM.mm:
(-[DOMNode renderedImage]):
(-[DOMRange renderedImageForcingBlackText:]):
* dom/Clipboard.cpp:
(WebCore::Clipboard::createDragImage):
* dom/ClipboardMac.mm:
(WebCore::Clipboard::createDragImage):
* page/DragController.cpp:
(WebCore::DragController::startDrag):
* page/Frame.cpp:
* page/Frame.h:
* page/FrameSnapshotting.cpp: Added.
(WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
(WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
(WebCore::snapshotFrameRect): Move most buffer logic to here.
(WebCore::snapshotSelection): Moved from Frame.
(WebCore::snapshotNode): Moved from Frame.
* page/FrameSnapshotting.h: Added.
* page/mac/FrameMac.mm: Removed.
* page/mac/FrameSnapshottingMac.h: Removed.
* page/mac/FrameSnapshottingMac.mm: Removed.
* page/win/FrameWin.cpp: remove duplicate implementation.
* page/win/FrameWin.h: Fix an incorrect parameter name.
* platform/DragImage.cpp:
(WebCore::ScopedNodeDragState::ScopedNodeDragState):
(WebCore::ScopedNodeDragState::~ScopedNodeDragState):
(WebCore::createDragImageFromSnapshot): Boilerplate buffer conversion.
(WebCore::createDragImageForNode):
(WebCore::createDragImageForSelection):
(WebCore::ScopedFrameSelectionState::ScopedFrameSelectionState):
(WebCore::ScopedFrameSelectionState::~ScopedFrameSelectionState):
(WebCore::createDragImageForRange): Moved from Frame.
(WebCore::createDragImageForImage): Moved from FrameSnapshottingMac.
(WebCore::createDragImageForLink): use nullptr.
2013-11-18 Brendan Long <b.long@cablelabs.com>
[GStreamer] Crash when using media source
https://bugs.webkit.org/show_bug.cgi?id=124525
Reviewed by Philippe Normand.
No new tests because this is already covered by tests in media/media-source (which aren't enabled because the feature isn't done).
* platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer): Add missing adoptRef()
2013-11-18 Brady Eidson <beidson@apple.com>
Remove unneeded BackingStore-related #include from IDBFactoryBackendInterface
Rubberstamped by Beth Dakin.
* Modules/indexeddb/IDBFactoryBackendInterface.h:
2013-11-18 Nick Diego Yamane <nick.yamane@openbossa.org>
Change mediasource and mediastream modules to use nullptr
https://bugs.webkit.org/show_bug.cgi?id=124530
Reviewed by Tim Horton.
No new tests needed, no behavior change.
* Modules/mediasource/MediaSource.cpp:
* Modules/mediasource/SourceBuffer.cpp:
* Modules/mediastream/MediaStream.cpp:
* Modules/mediastream/RTCDTMFSender.cpp:
* Modules/mediastream/RTCDataChannel.cpp:
* Modules/mediastream/RTCIceCandidate.cpp:
* Modules/mediastream/RTCPeerConnection.cpp:
* Modules/mediastream/RTCSessionDescription.cpp:
* Modules/mediastream/RTCStatsResponse.cpp:
* Modules/mediastream/UserMediaRequest.cpp:
2013-11-18 Brady Eidson <beidson@apple.com>
Move execution of IDBCursorBackendOperations to the IDBServerConnection
https://bugs.webkit.org/show_bug.cgi?id=124463
Reviewed by Tim Horton.
This almost entirely removes knowledge of the backing store from the front end.
The primary change here is to give cursors a unique ID.
This way the IDBCursorBackend can reference itself by ID, while the
IDBServerConnection can handle mapping that ID to a backing store.
* Modules/indexeddb/IDBBackingStoreCursorInterface.h:
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBCursorBackend.cpp:
(WebCore::IDBCursorBackend::IDBCursorBackend):
(WebCore::IDBCursorBackend::deleteFunction):
(WebCore::IDBCursorBackend::prefetchReset):
(WebCore::IDBCursorBackend::close):
(WebCore::IDBCursorBackend::updateCursorData):
(WebCore::IDBCursorBackend::clearCursorData):
* Modules/indexeddb/IDBCursorBackend.h:
(WebCore::IDBCursorBackend::create):
(WebCore::IDBCursorBackend::key):
(WebCore::IDBCursorBackend::primaryKey):
(WebCore::IDBCursorBackend::value):
(WebCore::IDBCursorBackend::id):
(WebCore::IDBCursorBackend::transaction):
(WebCore::IDBCursorBackend::setSavedCursorID):
* Modules/indexeddb/IDBCursorBackendOperations.cpp:
(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):
(WebCore::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendOperations.h:
(WebCore::CursorIterationOperation::key):
(WebCore::CursorIterationOperation::callbacks):
(WebCore::CursorAdvanceOperation::count):
(WebCore::CursorAdvanceOperation::callbacks):
(WebCore::CursorPrefetchIterationOperation::numberToFetch):
(WebCore::CursorPrefetchIterationOperation::callbacks):
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h:
(WebCore::IDBBackingStoreCursorLevelDB::IDBBackingStoreCursorLevelDB):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::ObjectStoreKeyCursorImpl::create):
(WebCore::ObjectStoreKeyCursorImpl::clone):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreCursorImpl::create):
(WebCore::ObjectStoreCursorImpl::clone):
(WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
(WebCore::IDBServerConnectionLevelDB::setIndexKeys):
(WebCore::IDBServerConnectionLevelDB::createObjectStore):
(WebCore::IDBServerConnectionLevelDB::createIndex):
(WebCore::IDBServerConnectionLevelDB::deleteIndex):
(WebCore::IDBServerConnectionLevelDB::get):
(WebCore::IDBServerConnectionLevelDB::put):
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::count):
(WebCore::IDBServerConnectionLevelDB::deleteRange):
(WebCore::IDBServerConnectionLevelDB::clearObjectStore):
(WebCore::IDBServerConnectionLevelDB::deleteObjectStore):
(WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion):
(WebCore::IDBServerConnectionLevelDB::cursorAdvance):
(WebCore::IDBServerConnectionLevelDB::cursorIterate):
(WebCore::IDBServerConnectionLevelDB::cursorPrefetchIteration):
(WebCore::IDBServerConnectionLevelDB::cursorPrefetchReset):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2013-11-17 Jer Noble <jer.noble@apple.com>
[WTF] Media time should not have a constructor which accepts a single int or float.
https://bugs.webkit.org/show_bug.cgi?id=124470
Reviewed by Eric Carlson.
Fix the compile error exposed by removing the default parameter in the MediaTime constructor.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::setTimestampOffset):
2013-11-18 Nick Diego Yamane <nick.yamane@openbossa.org>
Change webaudio to use nullptr for null pointers
https://bugs.webkit.org/show_bug.cgi?id=124526
Reviewed by Anders Carlsson.
No new tests needed, no behavior change.
* Modules/webaudio/AudioBuffer.cpp:
* Modules/webaudio/AudioContext.cpp:
* Modules/webaudio/AudioNode.cpp:
* Modules/webaudio/ChannelMergerNode.cpp:
* Modules/webaudio/ChannelSplitterNode.cpp:
* Modules/webaudio/MediaStreamAudioSource.cpp:
* Modules/webaudio/OfflineAudioContext.cpp:
* Modules/webaudio/PeriodicWave.cpp:
* Modules/webaudio/ScriptProcessorNode.cpp:
2013-11-18 peavo@outlook.com <peavo@outlook.com>
[Curl] Basic authentication is not reused.
https://bugs.webkit.org/show_bug.cgi?id=124452
Reviewed by Brent Fulgham.
After a successful basic authentication, the credentials are not reused for later requests.
In the CFNetwork port, this is solved by trying basic authentication first, if credentials exists.
Also, when a 401 response is received, the first thing the CFNetwork port does, is to use
m_user/m_pass as credentials in the following request if they are set.
This can be done the same way for the Curl version.
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Try using m_user/m_pass as credentials first, if they are set.
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::applyAuthenticationToRequest): Try basic authentication first, if credentials exists.
2013-11-18 Mátyás Mustoha <mmatyas@inf.u-szeged.hu>
[curl] Add file cache
https://bugs.webkit.org/show_bug.cgi?id=123333
Reviewed by Brent Fulgham.
Implementation of on disc file cache
for the curl network backend.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* platform/network/curl/CurlCacheEntry.cpp: Added.
(WebCore::CurlCacheEntry::CurlCacheEntry):
(WebCore::CurlCacheEntry::~CurlCacheEntry):
(WebCore::CurlCacheEntry::isCached):
(WebCore::CurlCacheEntry::requestHeaders):
(WebCore::CurlCacheEntry::saveCachedData):
(WebCore::CurlCacheEntry::loadCachedData):
(WebCore::CurlCacheEntry::saveResponseHeaders):
(WebCore::CurlCacheEntry::loadResponseHeaders):
(WebCore::CurlCacheEntry::setResponseFromCachedHeaders):
(WebCore::CurlCacheEntry::didFail):
(WebCore::CurlCacheEntry::didFinishLoading):
(WebCore::CurlCacheEntry::generateBaseFilename):
(WebCore::CurlCacheEntry::loadFileToBuffer):
(WebCore::CurlCacheEntry::invalidate):
(WebCore::CurlCacheEntry::parseResponseHeaders):
* platform/network/curl/CurlCacheEntry.h: Added.
(WebCore::CurlCacheEntry::isInMemory):
* platform/network/curl/CurlCacheManager.cpp: Added.
(WebCore::CurlCacheManager::getInstance):
(WebCore::CurlCacheManager::CurlCacheManager):
(WebCore::CurlCacheManager::~CurlCacheManager):
(WebCore::CurlCacheManager::setCacheDirectory):
(WebCore::CurlCacheManager::loadIndex):
(WebCore::CurlCacheManager::saveIndex):
(WebCore::CurlCacheManager::didReceiveResponse):
(WebCore::CurlCacheManager::didFinishLoading):
(WebCore::CurlCacheManager::isCached):
(WebCore::CurlCacheManager::requestHeaders):
(WebCore::CurlCacheManager::didReceiveData):
(WebCore::CurlCacheManager::saveResponseHeaders):
(WebCore::CurlCacheManager::invalidateCacheEntry):
(WebCore::CurlCacheManager::didFail):
(WebCore::CurlCacheManager::loadCachedData):
* platform/network/curl/CurlCacheManager.h: Added.
(WebCore::CurlCacheManager::getCacheDirectory):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::writeCallback):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::initializeHandle):
2013-11-18 peavo@outlook.com <peavo@outlook.com>
[Win] WebKit version in user agent string is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=124454
Reviewed by Brent Fulgham.
* DerivedSources.make: Generate WebKitVersion.h
2013-11-18 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am: Add inspector json files to EXTRA_DIST and
remove maketokenizer from EXTRA_DIST.
* GNUmakefile.list.am: Add missing header files.
2013-11-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Generate toHTMLDataList|Html|EmbedElement
https://bugs.webkit.org/show_bug.cgi?id=124482
Reviewed by Tim Horton.
To clean up static_cast<HTMLFoo*>, toHTMLEmbedElement, toHTMLHtmlElement, toHTMLDataListElement
are generated.
No new tests, no behavior changes.
* html/HTMLDataListElement.h:
* html/HTMLEmbedElement.h:
* html/HTMLHtmlElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::dataList):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::ownerDataListElement):
* html/HTMLTagNames.in:
* html/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure):
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::replaceMediaElementTimerFired):
* html/PluginDocument.cpp:
(WebCore::PluginDocumentParser::createDocumentStructure):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintSliderTicks):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
2013-11-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Clean up static_cast<HTMLFoo*> usage
https://bugs.webkit.org/show_bug.cgi?id=124480
Reviewed by Tim Horton.
Though there are toHTMLFoo(), some places are still using static_cast<>.
Additionally, toHTMLBodyElement() is supported from now.
No new tests, no behavior changes.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isRequired):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isDataTable):
* bindings/js/JSHTMLFrameSetElementCustom.cpp:
(WebCore::JSHTMLFrameSetElement::nameGetter):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginInstance):
* dom/Document.cpp:
(WebCore::Document::openSearchDescriptionURL):
(WebCore::Document::iconURLs):
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
* editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
* html/HTMLBodyElement.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::bgColor):
(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::fgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::alinkColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::linkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::vlinkColor):
(WebCore::HTMLDocument::setVlinkColor):
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::rendererIsNeeded):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateAncestorDisabledState):
(WebCore::HTMLFormControlElement::enclosingFormControlElement):
* html/HTMLFormElement.cpp:
(WebCore::submitElementFromEvent):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::virtualForm):
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForNode):
2013-11-18 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update GObject DOM symbols file after r158760.
* bindings/gobject/webkitdom.symbols: Add
webkit_dom_text_track_get_id prototype.
2013-11-18 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r158821): [GTK] API break due to removed properties in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=124489
Reviewed by Philippe Normand.
In r158821, several properties were changed from readonly to
CustomSetter. The GObject DOM bindings currently skips any
attribute having a custom getter or setter, and those properties
are not generated anymore. We should add support for generating
attributes having a custom getter or setter in GObject DOM
bindings generator, but to fix the ABI break now we bring the old
implementatiom back as custom implementation. This fixes the ABI
compatibility, but not the API since the GObject properties are
not generated.
* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_audio_track_get_kind):
(webkit_dom_audio_track_get_language):
(webkit_dom_text_track_get_kind):
(webkit_dom_text_track_get_language):
(webkit_dom_video_track_get_kind):
(webkit_dom_video_track_get_language):
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols:
2013-11-18 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update GObject DOM symbols file after r158662.
* bindings/gobject/webkitdom.symbols: Add missing prototypes.
2013-11-18 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Update GObject DOM symbols file after r159208 and r159363.
* bindings/gobject/webkitdom.symbols: Add
webkit_dom_html_media_element_fast_seek prototype.
2013-11-18 Carlos Garcia Campos <cgarcia@igalia.com>
REGRESSION(r159363): [GTK] API break in webkit_dom_html_media_element_set_current_time
https://bugs.webkit.org/show_bug.cgi?id=124485
Reviewed by Philippe Normand.
In r159363 currentTime attribute was changed to not raise
exceptions. This breaks the API of GObject DOM bindings because we
use a GError parameter for exceptions that has been removed.
* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_html_media_element_set_current_time): Custom
implementation that receives a GError for backwards
compatibility.
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols: Add
webkit_dom_html_media_element_set_current_time prototype.
* bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction): Skip
webkit_dom_html_media_element_set_current_time since we are adding
a custom implementation.
2013-11-17 Alexey Proskuryakov <ap@apple.com>
Support exporting public RSASSA-PKCS1-v1_5 keys
https://bugs.webkit.org/show_bug.cgi?id=124475
Reviewed by Sam Weinig.
Test: crypto/subtle/rsa-export-key.html
* bindings/js/JSCryptoKeySerializationJWK.h:
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::buildJSONForRSAComponents):
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON):
(WebCore::JSCryptoKeySerializationJWK::serialize):
Added said support (this part works with private keys too).
* crypto/keys/CryptoKeyRSA.h:
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::getPublicKeyComponents): Moved the logic for getting a
public key from private one here for reuse in keySizeInBits().
(WebCore::CryptoKeyRSA::isRestrictedToHash):
(WebCore::CryptoKeyRSA::keySizeInBits):
(WebCore::CryptoKeyRSA::exportData):
Exposed information necessary for JWK serialization.
2013-11-17 Alexey Proskuryakov <ap@apple.com>
RSASSA-PKCS1-v1_5 JWK import doesn't check key size
https://bugs.webkit.org/show_bug.cgi?id=124472
Reviewed by Sam Weinig.
Test: crypto/subtle/rsassa-pkcs1-v1_5-import-jwk-small-key.html
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::keySizeIsValid): Added the checks.
(WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents): Check key size when
importing.
(WebCore::JSCryptoKeySerializationJWK::serialize): Updated a comment.
* crypto/keys/CryptoKeySerializationRaw.cpp: (WebCore::CryptoKeySerializationRaw::serialize):
Updated a comment.
2013-11-17 Alexey Proskuryakov <ap@apple.com>
JWK crypto key export result is a DOM string instead of an array buffer
https://bugs.webkit.org/show_bug.cgi?id=124473
Reviewed by Sam Weinig.
* bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::exportKey):
Fix it.
2013-11-17 Sam Weinig <sam@webkit.org>
LayoutStateMaintainer should use references where possible
https://bugs.webkit.org/show_bug.cgi?id=124471
Reviewed by Dan Bernstein.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::simplifiedLayout):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::layout):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::layout):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::pushFlowThreadLayoutState):
* rendering/RenderFlowThread.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::layout):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
* rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::layout):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::layout):
* rendering/RenderView.cpp:
(WebCore::RenderView::pushLayoutState):
(WebCore::RenderView::pushLayoutStateForCurrentFlowThread):
* rendering/RenderView.h:
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
2013-11-16 Alexey Proskuryakov <ap@apple.com>
Use uint8_t vectors for WebCrypto data
https://bugs.webkit.org/show_bug.cgi?id=124466
Reviewed by Sam Weinig.
Using Vector<char> for crypto key data is somewhat non-idiomatic, and it gets simply
dangerous for bignums, because signed arithmetic is not appropriate for bignum digits.
* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::generateSecWebSocketKey):
(WebCore::WebSocketHandshake::getExpectedWebSocketAccept):
No longer need to cast data to char* here.
* bindings/js/JSCryptoKeySerializationJWK.cpp:
* bindings/js/JSCryptoKeySerializationJWK.h:
* crypto/CryptoDigest.h:
* crypto/CryptoKey.h:
* crypto/keys/CryptoKeyAES.cpp:
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyDataOctetSequence.h:
* crypto/keys/CryptoKeyDataRSAComponents.cpp:
* crypto/keys/CryptoKeyDataRSAComponents.h:
* crypto/keys/CryptoKeyHMAC.cpp:
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.h:
* crypto/keys/CryptoKeySerializationRaw.cpp:
* crypto/keys/CryptoKeySerializationRaw.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
* crypto/mac/CryptoDigestMac.cpp:
* crypto/mac/CryptoKeyMac.cpp:
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
Switched to Vector<uint8_t>.
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::getPublicKeyComponents): Extracted from buildAlgorithmDescription() and simplified.
(WebCore::CryptoKeyRSA::create): Switched to Vector<uint8_t>.
(WebCore::CryptoKeyRSA::buildAlgorithmDescription): No longer need to copy data just
to change type from Vector<char> to Vector<unsigned char>.
(WebCore::bigIntegerToUInt32): Ditto. No longer need to cast types when dealing with the bignum.
(WebCore::CryptoKeyRSA::generatePair): Improved an error message a little.
* fileapi/FileReaderLoader.cpp: (WebCore::FileReaderLoader::convertToDataURL):
* inspector/DOMPatchSupport.cpp: (WebCore::DOMPatchSupport::createDigest):
* inspector/InspectorPageAgent.cpp: (WebCore::InspectorPageAgent::archive):
* platform/graphics/cg/ImageBufferCG.cpp: (WebCore::CGImageToDataURL):
No longer need to cast data to char* here.
2013-11-17 Antti Koivisto <antti@apple.com>
REGRESSION (r158774): Iteration over element children is broken
https://bugs.webkit.org/show_bug.cgi?id=124145
Reviewed by Anders Carlsson.
Mutation during traversal invalidates the position cache. After the mid-point we start
traversing backwards as it the shortest path. However backward traversal of children-only
HTMLCollection was wrong and would end up going to descendants.
Reduction by yannick.poirier@inverto.tv.
Test: fast/dom/htmlcollection-children-mutation.html
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::collectionTraverseBackward):
Traverse direct children only when m_shouldOnlyIncludeDirectChildren bit is set.
2013-11-17 Zoltan Horvath <zoltan@webkit.org>
Move LineLayoutState.h into rendering/line
<https://webkit.org/b/124458>
Reviewed by Mihnea Ovidenie.
LineLayoutState is a helper class of RenderBlockLineLayout, so I'm moving it into line subdirectory.
No new tests, no behavior change.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/line/LineLayoutState.h: Renamed from Source/WebCore/rendering/LineLayoutState.h.
(WebCore::FloatWithRect::FloatWithRect):
(WebCore::LineLayoutState::LineLayoutState):
(WebCore::LineLayoutState::lineInfo):
(WebCore::LineLayoutState::endLineLogicalTop):
(WebCore::LineLayoutState::setEndLineLogicalTop):
(WebCore::LineLayoutState::endLine):
(WebCore::LineLayoutState::setEndLine):
(WebCore::LineLayoutState::lastFloat):
(WebCore::LineLayoutState::setLastFloat):
(WebCore::LineLayoutState::floats):
(WebCore::LineLayoutState::floatIndex):
(WebCore::LineLayoutState::setFloatIndex):
(WebCore::LineLayoutState::adjustedLogicalLineTop):
(WebCore::LineLayoutState::setAdjustedLogicalLineTop):
(WebCore::LineLayoutState::flowThread):
(WebCore::LineLayoutState::setFlowThread):
(WebCore::LineLayoutState::endLineMatched):
(WebCore::LineLayoutState::setEndLineMatched):
(WebCore::LineLayoutState::checkForFloatsFromLastLine):
(WebCore::LineLayoutState::setCheckForFloatsFromLastLine):
(WebCore::LineLayoutState::markForFullLayout):
(WebCore::LineLayoutState::isFullLayout):
(WebCore::LineLayoutState::usesRepaintBounds):
(WebCore::LineLayoutState::setRepaintRange):
(WebCore::LineLayoutState::updateRepaintRangeFromBox):
2013-11-17 Antti Koivisto <antti@apple.com>
Simple line path does not respect visibility:hidden
https://bugs.webkit.org/show_bug.cgi?id=124467
Reviewed by Anders Carlsson.
Test: fast/text/text-visibility.html
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
2013-11-16 Alexey Proskuryakov <ap@apple.com>
WebCrypto no longer uses sequences of ArrayBuffers
https://bugs.webkit.org/show_bug.cgi?id=124451
Build fix.
* crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::calculateSignature):
Now that the function became shorter, clang realized that a variable was used
uninitialized in an impossible code path.
2013-11-16 Alexey Proskuryakov <ap@apple.com>
WebCrypto no longer uses sequences of ArrayBuffers
https://bugs.webkit.org/show_bug.cgi?id=124451
Reviewed by Sam Weinig.
Covered by existing tests.
Changed all operations to take single CryptoOperationData objects.
* bindings/js/JSCryptoOperationData.cpp:
* bindings/js/JSCryptoOperationData.h:
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::encrypt):
(WebCore::JSSubtleCrypto::decrypt):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::digest):
* crypto/CryptoAlgorithm.cpp:
(WebCore::CryptoAlgorithm::encrypt):
(WebCore::CryptoAlgorithm::decrypt):
(WebCore::CryptoAlgorithm::sign):
(WebCore::CryptoAlgorithm::verify):
(WebCore::CryptoAlgorithm::digest):
* crypto/CryptoAlgorithm.h:
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/algorithms/CryptoAlgorithmSHA1.cpp:
(WebCore::CryptoAlgorithmSHA1::digest):
* crypto/algorithms/CryptoAlgorithmSHA1.h:
* crypto/algorithms/CryptoAlgorithmSHA224.cpp:
(WebCore::CryptoAlgorithmSHA224::digest):
* crypto/algorithms/CryptoAlgorithmSHA224.h:
* crypto/algorithms/CryptoAlgorithmSHA256.cpp:
(WebCore::CryptoAlgorithmSHA256::digest):
* crypto/algorithms/CryptoAlgorithmSHA256.h:
* crypto/algorithms/CryptoAlgorithmSHA384.cpp:
(WebCore::CryptoAlgorithmSHA384::digest):
* crypto/algorithms/CryptoAlgorithmSHA384.h:
* crypto/algorithms/CryptoAlgorithmSHA512.cpp:
(WebCore::CryptoAlgorithmSHA512::digest):
* crypto/algorithms/CryptoAlgorithmSHA512.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::transformAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::calculateSignature):
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
2013-11-16 Zoltan Horvath <zoltan@webkit.org>
Remove the include of LineWidth.h from SimpleLineLayoutFunctions.cpp
<https://webkit.org/b/124449>
Reviewed by Antti Koivisto.
I removed the include of LineWidth, since SimpleLineLayoutFunctions.cpp doesn't use it.
No new tests, no behavior change.
* rendering/SimpleLineLayoutFunctions.cpp:
2013-11-15 Alexey Proskuryakov <ap@apple.com>
Support exporting symmetric keys as JWK
https://bugs.webkit.org/show_bug.cgi?id=124442
Reviewed by Sam Weinig.
Error handling is not consistent yet - some errors cause exceptions, and others
result in rejected promises. This part of spec is incomplete, so I basically did
what was most straightforward in each case.
* bindings/js/JSCryptoKeySerializationJWK.h:
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Updated a comment with a better link.
(WebCore::JSCryptoKeySerializationJWK::buildJSONForOctetSequence): A helper to building JWK.
(WebCore::JSCryptoKeySerializationJWK::addToJSON): Ditto.
(WebCore::JSCryptoKeySerializationJWK::addBoolToJSON): Ditto.
(WebCore::JSCryptoKeySerializationJWK::addJWKAlgorithmToJSON): Ditto. The code for
mapping is my best guess, this all needs to be specified.
(WebCore::JSCryptoKeySerializationJWK::addJWKUseToJSON): A helper to building JWK.
(WebCore::JSCryptoKeySerializationJWK::serialize): Build a JSON string for the key.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::importKey): Updated a comment.
(WebCore::JSSubtleCrypto::exportKey): Use CryptoKeySerialization (also for raw keys,
for consistency).
* crypto/CryptoKey.h:
(WebCore::CryptoKey::algorithmIdentifier):
(WebCore::CryptoKey::usagesBitmap):
Exposed data needed for building JWK (it used to be only exposed in a form suitable
for DOM accessors).
* crypto/keys/CryptoKeyHMAC.h: Ditto, added an accessor for JWK.
* crypto/keys/CryptoKeySerializationRaw.cpp: (WebCore::CryptoKeySerializationRaw::serialize):
* crypto/keys/CryptoKeySerializationRaw.h:
Moved from JSSubtleCryptoCustom.cpp for consistency.
2013-11-15 Brady Eidson <beidson@apple.com>
Move IDBCursorBackend operations into their own files
https://bugs.webkit.org/show_bug.cgi?id=124444
Reviewed by Tim Horton.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBCursorBackend.cpp:
* Modules/indexeddb/IDBCursorBackend.h:
(WebCore::IDBCursorBackend::cursorType):
(WebCore::IDBCursorBackend::deprecatedBackingStoreCursor):
(WebCore::IDBCursorBackend::deprecatedSetBackingStoreCursor):
(WebCore::IDBCursorBackend::deprecatedSetSavedBackingStoreCursor):
* Modules/indexeddb/IDBCursorBackendOperations.cpp: Added.
(WebCore::CallOnDestruct::CallOnDestruct):
(WebCore::CallOnDestruct::~CallOnDestruct):
(WebCore::CursorAdvanceOperation::perform):
(WebCore::CursorIterationOperation::perform):
(WebCore::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBCursorBackendOperations.h: Added.
(WebCore::CursorIterationOperation::create):
(WebCore::CursorIterationOperation::CursorIterationOperation):
(WebCore::CursorAdvanceOperation::create):
(WebCore::CursorAdvanceOperation::CursorAdvanceOperation):
(WebCore::CursorPrefetchIterationOperation::create):
(WebCore::CursorPrefetchIterationOperation::CursorPrefetchIterationOperation):
2013-11-14 David Farler <dfarler@apple.com>
Copy ASAN flag settings to WebCore and JavaScriptCore intermediate build tools
https://bugs.webkit.org/show_bug.cgi?id=124362
Reviewed by David Kilzer.
No new tests needed.
* WebCore.xcodeproj/project.pbxproj:
Use ASAN_C*FLAGS for WebCoreExportFileGenerator.
2013-11-15 Jer Noble <jer.noble@apple.com>
[Mac][AVF] Allow video and audio tracks to be initialized with an AVAssetTrack.
https://bugs.webkit.org/show_bug.cgi?id=124421
Reviewed by Eric Carlson.
Currently, VideoTrackPrivateAVFObjC and AudioTrackPrivateAVFObjC are initialized with an
AVPlayerItemTrack, but most of its methods use the AVAssetTrack wrapped by the
AVPlayerItemTrack. Allow these objects to be alternatively initialized with an AVAssetTrack.
Add factory methods taking an AVAssetTrack:
* platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
(WebCore::AudioTrackPrivateAVFObjC::create):
* platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
(WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
(WebCore::AudioTrackPrivateAVFObjC::setAssetTrack):
(WebCore::AudioTrackPrivateAVFObjC::assetTrack):
* platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
(WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
(WebCore::VideoTrackPrivateAVFObjC::setAssetTrack):
(WebCore::VideoTrackPrivateAVFObjC::assetTrack):
* platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
Use m_assetTrack instead of [m_playerItemTrack assetTrack]:
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
(WebCore::AVTrackPrivateAVFObjCImpl::assetTrack):
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
(WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl):
(WebCore::AVTrackPrivateAVFObjCImpl::enabled):
(WebCore::AVTrackPrivateAVFObjCImpl::setEnabled):
(WebCore::AVTrackPrivateAVFObjCImpl::audioKind):
(WebCore::AVTrackPrivateAVFObjCImpl::videoKind):
(WebCore::AVTrackPrivateAVFObjCImpl::id):
(WebCore::AVTrackPrivateAVFObjCImpl::label):
(WebCore::AVTrackPrivateAVFObjCImpl::language):
(WebCore::AVTrackPrivateAVFObjCImpl::trackID):
2013-11-15 Brady Eidson <beidson@apple.com>
Let IDBDatabaseBackend create IDBTransactionBackend's directly
https://bugs.webkit.org/show_bug.cgi?id=124438
Reviewed by Beth Dakin.
Create IDBTransactionBackends directly:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::createTransaction):
* Modules/indexeddb/IDBDatabaseBackend.h:
Remove maybeCreateTransactionBackend():
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
2013-11-15 Jer Noble <jer.noble@apple.com>
HTMLMediaElement should not throw an exception from setCurrentTime or fastSeek.
https://bugs.webkit.org/show_bug.cgi?id=124294
Reviewed by Eric Carlson.
Update the seek logic to match the current specification. This means removing exception
throwing from both the .idl and the implementation.
Remove the ExceptionCode parameter from setCurrentTime and fastSeek:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::fastSeek):
(HTMLMediaElement::seek):
(HTMLMediaElement::seekWithTolerance):
(HTMLMediaElement::setCurrentTime):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* html/MediaController.cpp:
(MediaController::setCurrentTime):
* html/MediaController.h:
* html/MediaController.idl:
* html/MediaControllerInterface.h:
Do not pass in an ExceptionCode placeholder when calling seek:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::rewind):
(HTMLMediaElement::returnToRealtime):
(HTMLMediaElement::finishSeek):
(HTMLMediaElement::playInternal):
(HTMLMediaElement::mediaPlayerTimeChanged):
(HTMLMediaElement::mediaPlayerDurationChanged):
(HTMLMediaElement::applyMediaFragmentURI):
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* html/MediaController.cpp:
(MediaController::bringElementUpToSpeed):
* html/MediaController.h:
* html/MediaController.idl:
* html/MediaControllerInterface.h:
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlSeekButtonElement::seekTimerFired):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlRewindButtonElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::defaultEventHandler):
* platform/mac/WebVideoFullscreenHUDWindowController.mm:
(-[WebVideoFullscreenHUDWindowController setCurrentTime:]):
2013-11-15 Brady Eidson <beidson@apple.com>
Remove last vestiges of IDBBackingStore* from IDBTransactionBackend.
https://bugs.webkit.org/show_bug.cgi?id=124436
Reviewed by Tim Horton.
* Modules/indexeddb/IDBFactoryBackendInterface.h: Removed createCursorBackend.
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp: Removed createCursorBackend.
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h: Removed createCursorBackend.
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBTransactionBackend.cpp:
* Modules/indexeddb/IDBTransactionBackend.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::openCursor):
2013-11-15 Brady Eidson <beidson@apple.com>
Make IDBIndexWriter a LevelDB specific concept
https://bugs.webkit.org/show_bug.cgi?id=124434
Reviewed by Tim Horton.
This includes renaming the class and moving it into the leveldb subdirectory.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBIndexWriter.cpp.
(WebCore::IDBIndexWriterLevelDB::IDBIndexWriterLevelDB):
(WebCore::IDBIndexWriterLevelDB::writeIndexKeys):
(WebCore::IDBIndexWriterLevelDB::verifyIndexKeys):
(WebCore::IDBIndexWriterLevelDB::addingKeyAllowed):
* Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h: Renamed from Source/WebCore/Modules/indexeddb/IDBIndexWriter.h.
(WebCore::IDBIndexWriterLevelDB::create):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::setIndexKeys):
(WebCore::IDBServerConnectionLevelDB::put):
2013-11-15 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: DOM.performSearch should accept a list of context nodes
https://bugs.webkit.org/show_bug.cgi?id=124390
Reviewed by Timothy Hatcher.
Extracted the code in InspectorDOMAgent::performSearch into its own helper class
called InspectorNodeFinder. Also added a new array parameter called "nodeIds"
that can be used to limit the search results to just partial subtrees.
Tests: inspector-protocol/dom/dom-search-crash.html
inspector-protocol/dom/dom-search-with-context.html
inspector-protocol/dom/dom-search.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/protocol/DOM.json:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::performSearch):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorNodeFinder.cpp: Added.
(WebCore::stripCharacters):
(WebCore::InspectorNodeFinder::InspectorNodeFinder):
(WebCore::InspectorNodeFinder::performSearch):
(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
(WebCore::InspectorNodeFinder::matchesAttribute):
(WebCore::InspectorNodeFinder::matchesElement):
(WebCore::InspectorNodeFinder::searchUsingXPath):
(WebCore::InspectorNodeFinder::searchUsingCSSSelectors):
* inspector/InspectorNodeFinder.h: Added.
(WebCore::InspectorNodeFinder::results):
2013-11-15 Brady Eidson <beidson@apple.com>
Remove IDBBackingStoreInterface.h includes that are no longer needed
https://bugs.webkit.org/show_bug.cgi?id=124433
Reviewed by Tim Horton.
* Modules/indexeddb/IDBCursorBackend.cpp:
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackend.h:
2013-11-15 Zoltan Horvath <zoltan@webkit.org>
Move BreakingContext and LineBreaker into their own files
<https://webkit.org/b/124336>
Reviewed by David Hyatt.
In this change I introduced 'line' subdirectory inside 'rendering', this directory will contain all the classes
which have been refactored from RenderBlockLineLayout.cpp. This change contains the separation of BreakingContext,
and the separation of LineBreaker classes. Since I wanted to keep the helper functions organized, I also added a
new file called LineInlineHeaders.h, which contains the functions which used in LineBreaker.h and BreakingContext.h.
I moved LineInfo class into line directory. It was necessary this time, since I added a cpp for it. I'll move the
rest of the line layout related helper classes later. (I wanted to minimize merge conflicts.)
No new tests, no behavior change.
* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCoreCommon.props:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::createRun):
* rendering/line/BreakingContextInlineHeaders.h: Added.
(WebCore::WordMeasurement::WordMeasurement):
(WebCore::TrailingObjects::TrailingObjects):
(WebCore::TrailingObjects::setTrailingWhitespace):
(WebCore::TrailingObjects::clear):
(WebCore::TrailingObjects::appendBoxIfNeeded):
(WebCore::deprecatedAddMidpoint):
(WebCore::startIgnoringSpaces):
(WebCore::stopIgnoringSpaces):
(WebCore::ensureLineBoxInsideIgnoredSpaces):
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes):
(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::currentObject):
(WebCore::BreakingContext::lineBreak):
(WebCore::BreakingContext::lineBreakRef):
(WebCore::BreakingContext::lineWidth):
(WebCore::BreakingContext::atEnd):
(WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
(WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::increment):
(WebCore::BreakingContext::handleBR):
(WebCore::borderPaddingMarginStart):
(WebCore::borderPaddingMarginEnd):
(WebCore::shouldAddBorderPaddingMargin):
(WebCore::previousInFlowSibling):
(WebCore::inlineLogicalWidth):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleFloat):
(WebCore::shouldSkipWhitespaceAfterStartObject):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::firstPositiveWidth):
(WebCore::updateSegmentsForShapes):
(WebCore::iteratorIsBeyondEndOfRenderCombineText):
(WebCore::nextCharacter):
(WebCore::updateCounterIfNeeded):
(WebCore::measureHyphenWidth):
(WebCore::textWidth):
(WebCore::ensureCharacterGetsLineBox):
(WebCore::tryHyphenating):
(WebCore::BreakingContext::handleText):
(WebCore::textBeginsWithBreakablePosition):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
(WebCore::checkMidpoints):
(WebCore::BreakingContext::handleEndOfLine):
* rendering/line/LineBreaker.cpp: Added.
(WebCore::LineBreaker::reset):
(WebCore::LineBreaker::skipTrailingWhitespace):
(WebCore::LineBreaker::skipLeadingWhitespace):
* rendering/line/LineBreaker.h: Added.
(WebCore::LineBreaker::LineBreaker):
(WebCore::LineBreaker::lineWasHyphenated):
(WebCore::LineBreaker::positionedObjects):
(WebCore::LineBreaker::clear):
* rendering/line/LineInfo.cpp: Added.
(WebCore::LineInfo::setEmpty):
* rendering/line/LineInfo.h: Renamed from Source/WebCore/rendering/LineInfo.h.
(WebCore::LineInfo::LineInfo):
(WebCore::LineInfo::isFirstLine):
(WebCore::LineInfo::isLastLine):
(WebCore::LineInfo::isEmpty):
(WebCore::LineInfo::previousLineBrokeCleanly):
(WebCore::LineInfo::floatPaginationStrut):
(WebCore::LineInfo::runsFromLeadingWhitespace):
(WebCore::LineInfo::resetRunsFromLeadingWhitespace):
(WebCore::LineInfo::incrementRunsFromLeadingWhitespace):
(WebCore::LineInfo::setFirstLine):
(WebCore::LineInfo::setLastLine):
(WebCore::LineInfo::setPreviousLineBrokeCleanly):
(WebCore::LineInfo::setFloatPaginationStrut):
* rendering/line/LineInlineHeaders.h: Added.
(WebCore::hasInlineDirectionBordersPaddingOrMargin):
(WebCore::lineStyle):
(WebCore::requiresLineBoxForContent):
(WebCore::shouldCollapseWhiteSpace):
(WebCore::skipNonBreakingSpace):
(WebCore::alwaysRequiresLineBox):
(WebCore::requiresLineBox):
(WebCore::setStaticPositions):
2013-11-15 Brady Eidson <beidson@apple.com>
Move execution of IDBTransactionBackendOperations to the IDBServerConnection
https://bugs.webkit.org/show_bug.cgi?id=124385
Reviewed by Tim Horton.
Each IDBOperation has its ::perform() moved to a method on IDBServerConnection.
This almost removes all knowledge of the backing stores from the front end.
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::clearObjectStore):
(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackend.h:
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::clear):
Add methods to reflect each transaction backend operation:
* Modules/indexeddb/IDBServerConnection.h:
Schedule certain operations with callbacks:
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::scheduleVersionChangeOperation):
(WebCore::IDBTransactionBackend::schedulePutOperation):
(WebCore::IDBTransactionBackend::scheduleOpenCursorOperation):
(WebCore::IDBTransactionBackend::scheduleCountOperation):
(WebCore::IDBTransactionBackend::scheduleDeleteRangeOperation):
(WebCore::IDBTransactionBackend::scheduleClearObjectStoreOperation):
* Modules/indexeddb/IDBTransactionBackend.h:
Make each operations perform() method defer to the IDBServerConnection (with a callback):
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::GetOperation::perform):
(WebCore::PutOperation::perform):
(WebCore::SetIndexesReadyOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearObjectStoreOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
(WebCore::CreateObjectStoreAbortOperation::perform):
Add accessors to each operations data members so the IDBServerConnection has everything it needs:
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::CreateObjectStoreOperation::objectStoreMetadata):
(WebCore::DeleteObjectStoreOperation::objectStoreMetadata):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::version):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::callbacks):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::databaseCallbacks):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::VersionChangeOperation):
(WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(WebCore::CreateIndexOperation::objectStoreID):
(WebCore::CreateIndexOperation::idbIndexMetadata):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
(WebCore::DeleteIndexOperation::objectStoreID):
(WebCore::DeleteIndexOperation::idbIndexMetadata):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::GetOperation::objectStoreID):
(WebCore::GetOperation::indexID):
(WebCore::GetOperation::cursorType):
(WebCore::GetOperation::keyRange):
(WebCore::GetOperation::callbacks):
(WebCore::GetOperation::autoIncrement):
(WebCore::GetOperation::keyPath):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::putMode):
(WebCore::PutOperation::objectStore):
(WebCore::PutOperation::key):
(WebCore::PutOperation::indexIDs):
(WebCore::PutOperation::indexKeys):
(WebCore::PutOperation::callbacks):
(WebCore::PutOperation::value):
(WebCore::PutOperation::PutOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::objectStoreID):
(WebCore::OpenCursorOperation::indexID):
(WebCore::OpenCursorOperation::direction):
(WebCore::OpenCursorOperation::cursorType):
(WebCore::OpenCursorOperation::taskType):
(WebCore::OpenCursorOperation::keyRange):
(WebCore::OpenCursorOperation::cursorDirection):
(WebCore::OpenCursorOperation::callbacks):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::objectStoreID):
(WebCore::CountOperation::indexID):
(WebCore::CountOperation::keyRange):
(WebCore::CountOperation::callbacks):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::objectStoreID):
(WebCore::DeleteRangeOperation::callbacks):
(WebCore::DeleteRangeOperation::keyRange):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearObjectStoreOperation::create):
(WebCore::ClearObjectStoreOperation::objectStoreID):
(WebCore::ClearObjectStoreOperation::callbacks):
(WebCore::ClearObjectStoreOperation::ClearObjectStoreOperation):
Implement each operation in terms of the appropriate backing store, then perform the callback:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::createObjectStore):
(WebCore::IDBServerConnectionLevelDB::createIndex):
(WebCore::IDBServerConnectionLevelDB::deleteIndex):
(WebCore::IDBServerConnectionLevelDB::get):
(WebCore::IDBServerConnectionLevelDB::put):
(WebCore::IDBServerConnectionLevelDB::openCursor):
(WebCore::IDBServerConnectionLevelDB::count):
(WebCore::IDBServerConnectionLevelDB::deleteRange):
(WebCore::IDBServerConnectionLevelDB::clearObjectStore):
(WebCore::IDBServerConnectionLevelDB::deleteObjectStore):
(WebCore::IDBServerConnectionLevelDB::changeDatabaseVersion):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
* WebCore.xcodeproj/project.pbxproj:
2013-11-15 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Modifying RTCIceCandidate object construction to match the spec
https://bugs.webkit.org/show_bug.cgi?id=124369
Reviewed by Eric Carlson.
According to the spec the RTCIceCandidateInit parameter in RTCSessionDescription constructor is optional,
which must not be nullable, and, if passed, must be a valid Dictionary. If the keys are not present, the string
object that stores them in the RTCIceCandidate class, must be null in those cases. Also, if a key is present
and its value is not valid an exception must be raised.
Existing test was updated.
* GNUmakefile.list.am:
* Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
* Modules/mediastream/RTCIceCandidate.idl:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSRTCIceCandidateCustom.cpp: Added.
(WebCore::JSRTCIceCandidateConstructor::constructJSRTCIceCandidate):
2013-11-15 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r159337.
http://trac.webkit.org/changeset/159337
https://bugs.webkit.org/show_bug.cgi?id=124423
broke a bunch of fast/regions tests on EFL/GTK (Requested by
philn on #webkit).
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::setLayoutOverflow):
(WebCore::InlineFlowBox::setVisualOverflow):
* rendering/InlineFlowBox.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addOverflowFromChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::estimateRegionRangeForBoxChild):
(WebCore::RenderBlock::updateRegionRangeForBoxChild):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::hasNextPage):
(WebCore::RenderBlockFlow::relayoutForPagination):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::positionNewFloatOnLine):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::addVisualOverflow):
(WebCore::RenderBox::isUnsplittableForPagination):
(WebCore::RenderBox::overflowRectForPaintRejection):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
* rendering/RenderBoxRegionInfo.h:
(WebCore::RenderBoxRegionInfo::createOverflow):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::paintFlowThreadPortionInRegion):
(WebCore::RenderFlowThread::hitTestFlowThreadPortionInRegion):
(WebCore::RenderFlowThread::checkRegionsWithStyling):
(WebCore::RenderFlowThread::mapFromLocalToFlowThread):
(WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
* rendering/RenderFlowThread.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::expandClipRectForDescendantsAndReflection):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::repaintIncludingDescendants):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::addOverflowFromChildren):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
(WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::createStyle):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderOverflow.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::flowThreadPortionOverflowRect):
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::shouldPaintRegionContentsInPhase):
(WebCore::RenderRegion::paintObject):
(WebCore::RenderRegion::hitTestContents):
(WebCore::RenderRegion::computeOverflowFromFlowThread):
(WebCore::RenderRegion::repaintFlowThreadContent):
(WebCore::RenderRegion::repaintFlowThreadContentRectangle):
(WebCore::RenderRegion::insertedIntoTree):
(WebCore::RenderRegion::ensureOverflowForBox):
(WebCore::RenderRegion::rectFlowPortionForBox):
(WebCore::RenderRegion::addLayoutOverflowForBox):
(WebCore::RenderRegion::addVisualOverflowForBox):
(WebCore::RenderRegion::layoutOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::paint):
2013-11-15 Antti Koivisto <antti@apple.com>
Hovering over text using simple line path should not cause switch to line boxes
https://bugs.webkit.org/show_bug.cgi?id=124418
Reviewed by Anders Carlsson.
Test: fast/text/simple-lines-hover.html
* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis):
(WebCore::RenderText::absoluteQuads):
Collect quads and rects directly from simple lines without requiring the line box switch.
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::collectTextAbsoluteRects):
(WebCore::SimpleLineLayout::collectTextAbsoluteQuads):
Add these.
* rendering/SimpleLineLayoutFunctions.h:
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::start):
(WebCore::SimpleLineLayout::RunResolver::Run::end):
For future use.
2013-11-15 Radu Stavila <stavila@adobe.com>
[CSS Regions] Implement visual overflow for first & last regions
https://bugs.webkit.org/show_bug.cgi?id=118665
In order to properly propagate the visual overflow of elements flowed inside regions,
the responsiblity of painting and hit-testing content inside flow threads has been
moved to the flow thread layer's level.
Each region keeps the associated overflow with each box in the RenderBoxRegionInfo
structure, including one for the flow thread itself. This data is used during
painting and hit-testing.
Reviewed by David Hyatt.
Tests: fast/regions/overflow-first-and-last-regions-in-container-hidden.html
fast/regions/overflow-first-and-last-regions.html
fast/regions/overflow-nested-regions.html
fast/regions/overflow-region-float.html
fast/regions/overflow-region-inline.html
fast/regions/overflow-region-transform.html
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::setLayoutOverflow):
(WebCore::InlineFlowBox::setVisualOverflow):
* rendering/InlineFlowBox.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addOverflowFromChildren):
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::estimateRegionRangeForBoxChild):
(WebCore::RenderBlock::updateRegionRangeForBoxChild):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::hasNextPage):
(WebCore::RenderBlockFlow::relayoutForPagination):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::positionNewFloatOnLine):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::borderBoxRectInRegion):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::addLayoutOverflow):
(WebCore::RenderBox::addVisualOverflow):
(WebCore::RenderBox::isUnsplittableForPagination):
(WebCore::RenderBox::overflowRectForPaintRejection):
* rendering/RenderBox.h:
(WebCore::RenderBox::canHaveOutsideRegionRange):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
* rendering/RenderBoxRegionInfo.h:
(WebCore::RenderBoxRegionInfo::createOverflow):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
(WebCore::RenderFlowThread::mapFromLocalToFlowThread):
(WebCore::RenderFlowThread::mapFromFlowThreadToLocal):
(WebCore::RenderFlowThread::decorationsClipRectForBoxInRegion):
(WebCore::RenderFlowThread::flipForWritingModeLocalCoordinates):
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
(WebCore::RenderFlowThread::addRegionsVisualOverflow):
(WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
* rendering/RenderFlowThread.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::expandClipRectForRegionAndReflection):
(WebCore::expandClipRectForDescendantsAndReflection):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::paintForegroundForFragments):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::parentClipRects):
(WebCore::RenderLayer::calculateRects):
(WebCore::RenderLayer::intersectsDamageRect):
(WebCore::RenderLayer::updateDescendantsLayerListsIfNeeded):
(WebCore::RenderLayer::repaintIncludingDescendants):
(WebCore::RenderLayer::paintNamedFlowThreadInsideRegion):
(WebCore::RenderLayer::paintFlowThreadIfRegion):
(WebCore::RenderLayer::hitTestFlowThreadIfRegion):
* rendering/RenderLayer.h:
(WebCore::ClipRect::inflateX):
(WebCore::ClipRect::inflateY):
(WebCore::ClipRect::inflate):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::addOverflowFromChildren):
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
(WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::createStyle):
(WebCore::RenderNamedFlowFragment::namedFlowThread):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderOverflow.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::flowThreadPortionOverflowRect):
(WebCore::RenderRegion::flowThreadPortionLocation):
(WebCore::RenderRegion::regionContainerLayer):
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::RenderRegion::computeOverflowFromFlowThread):
(WebCore::RenderRegion::repaintFlowThreadContent):
(WebCore::RenderRegion::repaintFlowThreadContentRectangle):
(WebCore::RenderRegion::insertedIntoTree):
(WebCore::RenderRegion::ensureOverflowForBox):
(WebCore::RenderRegion::rectFlowPortionForBox):
(WebCore::RenderRegion::addLayoutOverflowForBox):
(WebCore::RenderRegion::addVisualOverflowForBox):
(WebCore::RenderRegion::layoutOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::paint):
2013-11-15 Stephane Jadaud <sjadaud@sii.fr>
[GStreamer] Add support for Media Source API
https://bugs.webkit.org/show_bug.cgi?id=99065
The patch integrate a Media Source player for the GStreamer backend. The implementented architecture is:
- MediaPlayerPrivateGStreamer engine is modified to support Media Source URIs (change blob:// to mediasourceblob://), in addition to the existing support for web (http/https/blob) URIs
- Similar to the existing WebKitWebSrc gstreamer element that handles web URIs, a new gstreamer element named WebKitMediaSrc is implemented to handle Media Source URIs
- WebKitMediaSrc registers its URI protocol handler, allowing uridecodebin to dynamically create the appropriate source element.
- The WebKitMediaSrc element creates a bin with 2 appsrc: One for Audio and One for Video. Pads are dynamically linked at the reception of first video and audio buffers.
Reviewed by Philippe Normand.
Tests: Activate http/tests/media/media-source and media/media-source tests
* GNUmakefile.am:
* GNUmakefile.list.am:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::initializeGStreamerAndRegisterWebKitElements):
(WebCore::MediaPlayerPrivateGStreamer::load):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaSourceGStreamer.cpp: Added.
(WebCore::MediaSourceGStreamer::open):
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::~MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::addSourceBuffer):
(WebCore::MediaSourceGStreamer::setDuration):
(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
* platform/graphics/gstreamer/MediaSourceGStreamer.h: Added.
* platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp: Added.
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::abort):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
* platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h: Added.
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Added.
(webKitMediaSrcAddSrc):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetProperty):
(webKitMediaSrcGetProperty):
(webKitMediaVideoSrcStop):
(webKitMediaAudioSrcStop):
(webKitMediaVideoSrcStart):
(webKitMediaAudioSrcStart):
(webKitMediaSrcChangeState):
(webKitMediaSrcQueryWithParent):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):
(webKitMediaVideoSrcNeedDataMainCb):
(webKitMediaAudioSrcNeedDataMainCb):
(webKitMediaVideoSrcNeedDataCb):
(webKitMediaAudioSrcNeedDataCb):
(webKitMediaVideoSrcEnoughDataMainCb):
(webKitMediaAudioSrcEnoughDataMainCb):
(webKitMediaVideoSrcEnoughDataCb):
(webKitMediaAudioSrcEnoughDataCb):
(webKitMediaVideoSrcSeekMainCb):
(webKitMediaAudioSrcSeekMainCb):
(webKitMediaVideoSrcSeekDataCb):
(webKitMediaAudioSrcSeekDataCb):
(webKitMediaSrcSetMediaPlayer):
(webKitMediaSrcSetPlayBin):
(MediaSourceClientGstreamer::MediaSourceClientGstreamer):
(MediaSourceClientGstreamer::~MediaSourceClientGstreamer):
(MediaSourceClientGstreamer::didReceiveDuration):
(MediaSourceClientGstreamer::didReceiveData):
(MediaSourceClientGstreamer::didFinishLoading):
(MediaSourceClientGstreamer::didFail):
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h: Added.
2013-11-14 Victor Costan <costan@gmail.com>
XMLSerializer escapes < > & correctly inside <script> and <style> tags.
https://bugs.webkit.org/show_bug.cgi?id=123914
Reviewed by Darin Adler.
Test: fast/dom/XMLSerializer-entities.html
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces): vim removed some whitespace.
(WebCore::MarkupAccumulator::entityMaskForText): Fixed the returned value for <script> etc in XML.
2013-11-14 Bem Jones-Bey <bjonesbe@adobe.com>
ASSERTION FAILED: rangesIntersect(m_renderer.pixelSnappedLogicalTopForFloat(floatingObject), m_renderer.pixelSnappedLogicalBottomForFloat(floatingObject), m_lineTop, m_lineBottom) ../../Source/WebCore/rendering/FloatingObjects.cpp(463)
https://bugs.webkit.org/show_bug.cgi?id=124375
Reviewed by Alexandru Chiculita.
When moving the placed floats tree over to LayoutUnit, I forgot to
update these asserts, which causes issues on ports with subpixel
layout enabled.
No new tests, no behavior change.
* rendering/FloatingObjects.cpp:
(WebCore::FindNextFloatLogicalBottomAdapter::collectIfNeeded):
(WebCore::::collectIfNeeded):
2013-11-14 Victor Costan <costan@gmail.com>
Clean up sequence handling in Blob constructor
https://bugs.webkit.org/show_bug.cgi?id=124343
Reviewed by Alexey Proskuryakov.
Added test case to LayoutTests/fast/files/blob-constructor.html
* bindings/js/JSBlobCustom.cpp:
(WebCore::JSBlobConstructor::constructJSBlob):
Handle exceptions in sequences, eliminate double type-checking for
ArrayBuffer, ArrayBufferView and Blob parts.
2013-11-14 Oliver Hunt <oliver@apple.com>
Make CLoop easier to build, and make it work
https://bugs.webkit.org/show_bug.cgi?id=124359
Reviewed by Geoffrey Garen.
Add cloop configuration info to WebCore FeatureDefines
so that it's consistent with JSC
* Configurations/FeatureDefines.xcconfig:
2013-11-14 Aloisio Almeida Jr <aloisio.almeida@openbossa.org>
[Cairo] Avoid extra copy when drawing images
https://bugs.webkit.org/show_bug.cgi?id=124209
Reviewed by Martin Robinson.
To solve the bug #58309 a cairo subsurface is being used to limit the
source image boundaries.
In many cases, when a cairo subsurface is used for drawing an image,
it occurs an image copy, causing performance penalty. In the case of
the function PlatformContextCairo::drawSurfaceToContext, the image
copy always happens.
So, we should use the subsurface only when it's really necessary.
In cases where we're drawing the whole image, the subsurface is
unnecessary.
The proposed patch avoid the use of subsurfaces when sampling the whole
image.
No new tests. It's an enhancement. Already covered by existing tests.
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext):
2013-11-14 Alexey Proskuryakov <ap@apple.com>
Implement raw format for WebCrypto key export
https://bugs.webkit.org/show_bug.cgi?id=124376
Reviewed by Anders Carlsson.
Tests: crypto/subtle/aes-export-key.html
crypto/subtle/hmac-export-key.html
A CryptoKey just exports its native CryptoKeyData, which will also work nicely for
JWK format soon. For spki and pkcs8, we'll need to figure out the best way to
utilize platform library support for ASN.1, but we are not there yet.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::exportKey):
* crypto/CryptoKey.h:
* crypto/SubtleCrypto.idl:
* crypto/keys/CryptoKeyAES.cpp:
(WebCore::CryptoKeyAES::exportData):
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyHMAC.cpp:
(WebCore::CryptoKeyHMAC::exportData):
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.h:
* crypto/mac/CryptoKeyRSAMac.cpp:
(WebCore::CryptoKeyRSA::exportData):
Added a dummy implementation for RSA.
2013-11-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Simply generated domain dispatch methods for domains with few commands
https://bugs.webkit.org/show_bug.cgi?id=124374
Reviewed by Timothy Hatcher.
* inspector/CodeGeneratorInspector.py:
(Generator.go):
(Generator.process_command):
* inspector/CodeGeneratorInspectorStrings.py:
2013-11-14 Bear Travis <betravis@adobe.com>
[CSS Shapes] Accept the new <box> value for shape-outside
https://bugs.webkit.org/show_bug.cgi?id=124227
Reviewed by David Hyatt.
The shape-outside property can now be set to the box values [margin/border/padding/content]-box.
This patch adds the parsing code required to accept the new values, and the layout code
to create a rectangle shape that has the size and position of the appropriate box.
Tests: fast/shapes/shape-outside-floats/shape-outside-boxes-001.html
fast/shapes/shape-outside-floats/shape-outside-boxes-002.html
fast/shapes/shape-outside-floats/shape-outside-boxes-003.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue): Output the new box values.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Accept the new box values.
* css/CSSValueKeywords.in: Add margin-box value.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyShape::applyValue): Accept the new box values.
* rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::borderLogicalWidth): Added new utility methods to help
with box sizing.
(WebCore::RenderBoxModelObject::borderLogicalHeight): Ditto.
(WebCore::RenderBoxModelObject::paddingLogicalWidth): Ditto.
(WebCore::RenderBoxModelObject::paddingLogicalHeight): Ditto.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): You can create a shape from a box's dimensions, rather
than always using a BasicShape or RasterShape value.
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::computedShape): Create the appropriate shape based on the box values.
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::setShapeSize): Adjust for the box size when using a box value.
(WebCore::ShapeInfo::logicalTopOffset): Ditto.
(WebCore::ShapeInfo::logicalLeftOffset): Ditto.
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::isEnabledFor): Enable for the box values.
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::isEnabledFor): Disable for shape-inside.
* rendering/style/ShapeValue.h:
(WebCore::ShapeValue::createBoxValue): Create the appropriate shape value for a box.
(WebCore::ShapeValue::box): Return the box value for this ShapeValue.
(WebCore::ShapeValue::ShapeValue): Create a ShapeValue from a box value.
2013-11-14 Beth Dakin <bdakin@apple.com>
Rubber-stamped by Tim Horton.
Post-checkin review comment! StickToViewportBounds sounds better and more accurate
than StickToWindowBounds.
* platform/ScrollTypes.h:
2013-11-13 Jer Noble <jer.noble@apple.com>
Unreviewed build failure; update MediaPlayerPrivateAVFFoundationCF::seekToTime after r159208.
After r159208, seekToTime takes tolerance parameters.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::seekToTime):
(WebCore::AVFWrapper::seekToTime):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
2013-11-14 Beth Dakin <bdakin@apple.com>
Add a new mode where fixed elements don't constrain their positions during a
rubber band
https://bugs.webkit.org/show_bug.cgi?id=124260
Reviewed by Tim Horton.
This patch adds a new enum called ScrollBehaviorForFixedElements, which has
two values, StickToDocumentBounds or StickToWindowBounds. StickToDocumentBounds
corresponds to our current behavior, where fixed elements constrain
their positions during a rubber-band so that they stay stuck to the document.
The new mode, StickToWindowBounds, will cause fixed elements to always stay
fixed relative to the window.
scrollOffsetForFixedPosition() now takes a new parameter for the fixed behavior
so that it knows whether or not to constrain the position.
* page/FrameView.cpp:
(WebCore::FrameView::scrollOffsetForFixedPosition):
Right now, just return StickToDocumentBounds and retain existing behavior.
(WebCore::FrameView::scrollBehaviorForFixedElements):
* page/FrameView.h:
The scrolling thread needs to know about the fixed element scroll behavior,
so this code makes ScrollingStateScrollingNodes keep track of that
information to pass over to the scrolling thread.
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::scrollBehaviorForFixedElements):
* page/scrolling/mac/ScrollingCoordinatorMac.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
(WebCore::ScrollingCoordinatorMac::setScrollBehaviorForFixedElementsForNode):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
Here is the new enum.
* platform/ScrollTypes.h:
Another place where we only want to constrain scroll position if that is the
mode we are in.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation):
2013-11-14 Alexey Proskuryakov <ap@apple.com>
[Mac] HMAC sign/verify crashes when key is empty
https://bugs.webkit.org/show_bug.cgi?id=124372
Reviewed by Sam Weinig.
Test: crypto/subtle/hmac-sign-verify-empty-key.html
* crypto/mac/CryptoAlgorithmHMACMac.cpp: (WebCore::calculateSignature): Give it
a non-null pointer then.
2013-11-14 Alexey Proskuryakov <ap@apple.com>
Implement RSASSA-PKCS1-v1_5 sign/verify
https://bugs.webkit.org/show_bug.cgi?id=124335
Build fix.
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
2013-11-14 Samuel White <samuel_white@apple.com>
AX: Calling NSAccessibilityColumnsAttribute and NSAccessibilityRowsAttribute simply to get column/row count can be very expensive.
https://bugs.webkit.org/show_bug.cgi?id=124293
Reviewed by Chris Fleizach.
Added ability to get accessibility table column or row count without fetching all columns or rows.
Test: platform/mac/accessibility/table-column-and-row-count.html
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-11-14 Alexey Proskuryakov <ap@apple.com>
Implement RSASSA-PKCS1-v1_5 sign/verify
https://bugs.webkit.org/show_bug.cgi?id=124335
Reviewed by Sam Weinig.
Test: crypto/subtle/rsassa-pkcs1-v1_5-sign-verify.html
* WebCore.xcodeproj/project.pbxproj: Added new files, removed Mac SHA algorithm files.
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::getCommonCryptoDigestAlgorithm):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
Implemented. These take two steps, first a digest is computed, and then it's signed.
* crypto/CryptoDigest.h: Added.
* crypto/mac/CryptoDigestMac.cpp: Added.
(WebCore::CryptoDigest::CryptoDigest):
(WebCore::CryptoDigest::~CryptoDigest):
(WebCore::CryptoDigest::create):
(WebCore::CryptoDigest::addBytes):
(WebCore::CryptoDigest::computeHash):
Added a cross-platform interface and Mac implementation to compute a digest. It
should be possible to use it outside WebCrypto if we need to (perhaps even merge
with WTF SHA-1 class).
The Mac implementation is kind of ugly, but at least it encapsulates the ugliness.
* crypto/algorithms/CryptoAlgorithmSHA1.cpp: (WebCore::CryptoAlgorithmSHA1::digest):
* crypto/algorithms/CryptoAlgorithmSHA224.cpp: (WebCore::CryptoAlgorithmSHA224::digest):
* crypto/algorithms/CryptoAlgorithmSHA256.cpp: (WebCore::CryptoAlgorithmSHA256::digest):
* crypto/algorithms/CryptoAlgorithmSHA384.cpp: (WebCore::CryptoAlgorithmSHA384::digest):
* crypto/algorithms/CryptoAlgorithmSHA512.cpp: (WebCore::CryptoAlgorithmSHA512::digest):
* crypto/mac/CryptoAlgorithmSHA1Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA224Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA256Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA384Mac.cpp: Removed.
* crypto/mac/CryptoAlgorithmSHA512Mac.cpp: Removed.
These are all cross-platform now.
2013-11-14 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Empty polygons with non-zero shape-padding cause an ASSERT crash
https://bugs.webkit.org/show_bug.cgi?id=124324
Reviewed by Andreas Kling.
PolygonShape::shapePaddingBounds() and PolygonShape::shapeMarginBounds() no
longer attempt to compute a new FloatPolygon when the original is empty, i.e.
when it has less than three vertices.
Tests: fast/shapes/shape-inside/shape-inside-empty-polygon-crash.html
fast/shapes/shape-outside-floats/shape-outside-floats-empty-polygon-crash.html
* rendering/shapes/PolygonShape.cpp:
(WebCore::PolygonShape::shapePaddingBounds): Don't compute a padding FloatPolygon if the original polygon is empty.
(WebCore::PolygonShape::shapeMarginBounds): Don't compute a margin FloatPolygon if the original polygon is empty.
2013-11-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Cleaner Backend Method Calling Code Generation
https://bugs.webkit.org/show_bug.cgi?id=124333
Reviewed by Timothy Hatcher.
No change in functionality, just improved generated code.
* inspector/CodeGeneratorInspector.py:
(Generator.process_command):
* inspector/CodeGeneratorInspectorStrings.py:
* inspector/InspectorBackendDispatcher.cpp:
* inspector/InspectorBackendDispatcher.h:
2013-11-14 Seokju Kwon <seokju@webkit.org>
Use [ImplementedAs=defaultStatus] for Window.defaultstatus
https://bugs.webkit.org/show_bug.cgi?id=124334
Reviewed by Christophe Dumez.
No new tests, this is just refactoring.
Use [ImplementedAs=defaultStatus] for Window.defaultstatus
and remove unnecessary code from DOMWindow.
Because 'defaultstatus' is an alias of defaultStatus.
* page/DOMWindow.h:
* page/DOMWindow.idl:
2013-11-14 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Generate toSVGPolyline|gonElement() to replace static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=124341
Reviewed by Andreas Kling.
toSVGFoo() supports more plenty helper functions. So, toSVGFoo() needs
to be used instead of static_cast<>.
Additionally, cleanup other static_cast<> as well.
No new tests, no behavior changes.
* rendering/svg/SVGPathData.cpp:
(WebCore::updatePathFromEllipseElement):
(WebCore::updatePathFromLineElement):
(WebCore::updatePathFromPolygonElement):
(WebCore::updatePathFromPolylineElement):
* svg/SVGPolygonElement.h:
* svg/SVGPolylineElement.h:
* svg/svgtags.in: Add *generateTypeHelpers* keyword to polygon, polyline
2013-11-14 Andreas Kling <akling@apple.com>
FontDescription copies should share families list, not duplicate it.
<https://webkit.org/b/124338>
Turn FontDescription::m_families into a RefCountedArray<AtomicString>
instead of a Vector<AtomicString, 1>. This allows FontDescription to
share the families list between copies, instead of each object having
its own Vector.
Also, FontDescription itself shrinks by 16 bytes.
Reviewed by Antti Koivisto.
2013-11-14 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Introduce FILTER_TYPE_CASTS for child filter class
https://bugs.webkit.org/show_bug.cgi?id=124332
Reviewed by Andreas Kling.
To use TYPE_CASTS_BASE, define FILTER_TYPE_CASTS macro. Thanks to
it, static_cast<SVGFilter*> can be replaced by toSVGFilter().
No new tests, no behavior changes.
* platform/graphics/filters/Filter.h:
Add isSVGFilter() to check if casting object is SVGFilter object.
(WebCore::Filter::isSVGFilter):
* rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
(WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::determineAbsolutePaintRect):
(WebCore::FEImage::platformApplySoftware):
* svg/graphics/filters/SVGFilter.h:
2013-11-13 Victor Costan <costan@gmail.com>
Blob constructor accepts a sequence (array-like object) as first arg.
https://bugs.webkit.org/show_bug.cgi?id=124175
Reviewed by Christophe Dumez.
Added test cases to fast/files/script-tests/blob-constructor.js.
* bindings/js/JSBlobCustom.cpp: Make the constructor work with sequences.
(WebCore::JSBlobConstructor::constructJSBlob):
* bindings/js/JSDOMBinding.h:
(WebCore::toJSSequence): Slightly better error message when conversion fails.
(WebCore::toJS): Whitespace.
(WebCore::jsArray): Whitespace.
2013-11-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: InspectorBackendDispatcher improvements
https://bugs.webkit.org/show_bug.cgi?id=124330
Reviewed by Timothy Hatcher.
* inspector/InspectorBackendDispatcher.cpp:
(WebCore::InspectorBackendDispatcher::sendResponse):
(WebCore::InspectorBackendDispatcher::reportProtocolError):
* inspector/InspectorBackendDispatcher.h:
(WebCore::InspectorSupplementalBackendDispatcher::InspectorSupplementalBackendDispatcher):
2013-11-13 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed Windows Build Fix after r159268.
Missed adding InspectorBackendDispatcher.h and cpp to the Windows build.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-11-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Generate Individual InspectorBackendDispatchers, add base InspectorBackendDispatcher
https://bugs.webkit.org/show_bug.cgi?id=124296
Reviewed by Timothy Hatcher.
No new tests, this is just refactoring without changing functionality.
Set of changes made:
- Add inspector/InspectorBackendDispatcher.{h,cpp}. This used to be almost entirely
written in the code generator strings file, but make it actual source files
because there is nothing changing in the code. Also clean this up a bit.
- Give the base dispatcher a list of domain dispatchers and a way to register.
- Make InspectorBackendDispatcher::dispatch read the domain of incoming request
and pass the request on to the domain dispatcher.
- Create per-domain dispatcher classes named "InspectorFooBackendDispatcher"
- Convert "InspectorBackendDispatcher::FooCommandHandler" interfaces to
"InspectorFooBackendDispatcherHandler" interfaces.
- Convert all "InspectorBackendDispatcherImpl::FooDomain_fooMethod" methods to
"InspectorFooBackendDispatcher::fooMethod" methods. These can also remove their
"if (!agent)" checks because that can never be the case anymore.
- Remove InspectorBackendDispatcherImpl, now that there are base and domain dispatchers.
- Add ASCIILiteral in many places in generated code where possible.
- In all agents, create dispatchers in didCreateFrontendAndBackend and clear
them in willDestroyFrontendAndBackend, right alongside frontend dispatchers.
* inspector/CodeGeneratorInspector.py:
(DomainNameFixes.get_fixed_data.Res):
(TypeBindings.create_type_declaration_.EnumBinding.get_code_generator.CodeGenerator.generate_type_builder):
(Generator):
(Generator.go):
(Generator.process_command):
(Generator.generate_send_method):
* inspector/CodeGeneratorInspectorStrings.py:
(void):
(HashMap):
(InspectorBackendDispatchers_h):
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::didCreateFrontendAndBackend):
(WebCore::InspectorAgent::willDestroyFrontendAndBackend):
* inspector/InspectorAgent.h:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::didCreateFrontendAndBackend):
(WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorBackendDispatcher.cpp: Added.
(WebCore::InspectorBackendDispatcher::CallbackBase::CallbackBase):
(WebCore::InspectorBackendDispatcher::CallbackBase::isActive):
(WebCore::InspectorBackendDispatcher::CallbackBase::sendFailure):
(WebCore::InspectorBackendDispatcher::CallbackBase::sendIfActive):
(WebCore::InspectorBackendDispatcher::create):
(WebCore::InspectorBackendDispatcher::registerDispatcherForDomain):
(WebCore::InspectorBackendDispatcher::dispatch):
(WebCore::InspectorBackendDispatcher::sendResponse):
(WebCore::InspectorBackendDispatcher::reportProtocolError):
(WebCore::InspectorBackendDispatcher::getPropertyValue):
(WebCore::AsMethodBridges::asInt):
(WebCore::AsMethodBridges::asDouble):
(WebCore::AsMethodBridges::asString):
(WebCore::AsMethodBridges::asBoolean):
(WebCore::AsMethodBridges::asObject):
(WebCore::AsMethodBridges::asArray):
(WebCore::InspectorBackendDispatcher::getInt):
(WebCore::InspectorBackendDispatcher::getDouble):
(WebCore::InspectorBackendDispatcher::getString):
(WebCore::InspectorBackendDispatcher::getBoolean):
(WebCore::InspectorBackendDispatcher::getObject):
(WebCore::InspectorBackendDispatcher::getArray):
* inspector/InspectorBackendDispatcher.h: Added.
(WebCore::InspectorSupplementalBackendDispatcher::InspectorSupplementalBackendDispatcher):
(WebCore::InspectorSupplementalBackendDispatcher::~InspectorSupplementalBackendDispatcher):
(WebCore::InspectorBackendDispatcher::~InspectorBackendDispatcher):
(WebCore::InspectorBackendDispatcher::clearFrontend):
(WebCore::InspectorBackendDispatcher::isActive):
(WebCore::InspectorBackendDispatcher::InspectorBackendDispatcher):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::didCreateFrontendAndBackend):
(WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend):
(WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::didCreateFrontendAndBackend):
(WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::didCreateFrontendAndBackend):
(WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::didCreateFrontendAndBackend):
(WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::didCreateFrontendAndBackend):
(WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::didCreateFrontendAndBackend):
(WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
(WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorPageAgent::getScriptExecutionStatus):
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didCreateFrontendAndBackend):
(WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
* inspector/InspectorWorkerAgent.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::didCreateFrontendAndBackend):
(WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
* inspector/PageRuntimeAgent.h:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend):
(WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
* inspector/WorkerRuntimeAgent.h:
2013-11-13 Andy Estes <aestes@apple.com>
Use NSCalendarIdentifierGregorian instead of NSGregorianCalendar on OS X 10.9 and iOS
https://bugs.webkit.org/show_bug.cgi?id=124323
Reviewed by Mark Rowe.
NSGregorianCalendar was deprecated in OS X 10.9 and iOS 7.
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::LocaleMac):
2013-11-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Rename InspectorBackendDispatcher.h to InspectorBackendDispatchers.h
https://bugs.webkit.org/show_bug.cgi?id=124257
Reviewed by Timothy Hatcher.
Soon each domain will generate its own dispatcher, and the generic
InspectorBackendDispatcher will no longer be generated, it will just
live in WebCore/inspector.
* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/CodeGeneratorInspector.py:
* inspector/CodeGeneratorInspectorStrings.py:
(InspectorBackendDispatchers_h):
* inspector/InspectorBaseAgent.h:
* inspector/InspectorController.cpp:
* inspector/InspectorFrontendClientLocal.cpp:
* inspector/WorkerInspectorController.cpp:
2013-11-13 Andreas Kling <akling@apple.com>
Remove Document::m_savedRenderView pointer.
<https://webkit.org/b/124310>
This pointer held a copy of m_renderView while the document was in
page cache, and null while it wasn't. It was not used for anything.
Reviewed by Anders Carlsson.
2013-11-13 Brady Eidson <beidson@apple.com>
Move setIndexKeys() to the IDBServerConnection
https://bugs.webkit.org/show_bug.cgi?id=124301
Reviewed by Anders Carlsson.
This is a big step towards moving knowledge of the backing store out of the frontend.
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::setIndexKeys):
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::setIndexKeys):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::PutOperation::perform):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
2013-11-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Extract InspectorFrontendDispatchers from InspectorFrontend
https://bugs.webkit.org/show_bug.cgi?id=124246
Reviewed by Timothy Hatcher.
No new tests, this is just refactoring without changing functionality.
Set of changes made:
- Remove "class InspectorFrontend" that currently does nothing but hold
sub-frontend dispatcher classes. Catches some stale code.
- Generate individual "class InspectorFooFrontendDispatcher" classes for
domains that have events. Catches some unnecessary classes.
- Simplify the Base Agent interface from optional set/clearFrontend/register
to required didCreateFrontendAndBackend/willDestroyFrontendAndBackend.
New agents must implement this and this will be their cue to setup
frontend and backend dispatchers.
- Base Agent no longer needs to be templated or have an Interface class.
- While we are changing subclass BaseAgent superclass calls, use ASCIILiteral
- In agents with events, convert "InspectorFrontend::Foo* m_frontend" to
"unique_ptr<InspectorFooFrontendDispatcher> m_frontendDispatcher" and
update uses as appropriate within the classes.
- In agents with events, create dispatchers in didCreateFrontendAndBackend
and clear them in willDestroyFrontendAndBackend.
* inspector/CodeGeneratorInspector.py:
(Generator):
(Generator.go):
(Generator.process_event):
* inspector/CodeGeneratorInspectorStrings.py:
(InspectorFrontendChannel):
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::addToFrontend):
(WebCore::ConsoleMessage::updateRepeatCountInConsole):
* inspector/ConsoleMessage.h:
* inspector/InjectedScriptHost.h:
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::didCreateFrontendAndBackend):
(WebCore::InspectorAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorAgent::enable):
(WebCore::InspectorAgent::evaluateForTestInFrontend):
(WebCore::InspectorAgent::inspect):
* inspector/InspectorAgent.h:
(WebCore::InspectorAgent::hasFrontend):
* inspector/InspectorAgentRegistry.cpp:
(WebCore::InspectorAgentRegistry::append):
(WebCore::InspectorAgentRegistry::didCreateFrontendAndBackend):
(WebCore::InspectorAgentRegistry::willDestroyFrontendAndBackend):
* inspector/InspectorAgentRegistry.h:
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
(WebCore::InspectorApplicationCacheAgent::didCreateFrontendAndBackend):
(WebCore::InspectorApplicationCacheAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
(WebCore::InspectorApplicationCacheAgent::networkStateChanged):
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorBaseAgent.h:
(WebCore::InspectorBaseAgent::discardAgent):
(WebCore::InspectorBaseAgent::InspectorBaseAgent):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::InspectorCSSAgent):
(WebCore::InspectorCSSAgent::didCreateFrontendAndBackend):
(WebCore::InspectorCSSAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorCSSAgent::mediaQueryResultChanged):
(WebCore::InspectorCSSAgent::didCreateNamedFlow):
(WebCore::InspectorCSSAgent::willRemoveNamedFlow):
(WebCore::InspectorCSSAgent::regionLayoutUpdated):
(WebCore::InspectorCSSAgent::regionOversetChanged):
(WebCore::InspectorCSSAgent::didRegisterNamedFlowContentElement):
(WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
(WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
(WebCore::InspectorCSSAgent::styleSheetChanged):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::didCreateFrontendAndBackend):
(WebCore::InspectorCanvasAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorCanvasAgent::notifyRenderingContextWasWrapped):
(WebCore::InspectorCanvasAgent::findFramesWithUninstrumentedCanvases):
(WebCore::InspectorCanvasAgent::frameNavigated):
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::enable):
(WebCore::InspectorConsoleAgent::clearMessages):
(WebCore::InspectorConsoleAgent::didCreateFrontendAndBackend):
(WebCore::InspectorConsoleAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorConsoleAgent::addMessageToConsole):
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
(WebCore::InspectorConsoleAgent::addConsoleMessage):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::show):
(WebCore::InspectorController::close):
* inspector/InspectorController.h:
(WebCore::InspectorController::hasFrontend):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMAgent::setDocument):
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::focusNode):
(WebCore::InspectorDOMAgent::mainFrameDOMContentLoaded):
(WebCore::InspectorDOMAgent::didCommitLoad):
(WebCore::InspectorDOMAgent::didInsertDOMNode):
(WebCore::InspectorDOMAgent::didRemoveDOMNode):
(WebCore::InspectorDOMAgent::didModifyDOMAttr):
(WebCore::InspectorDOMAgent::didRemoveDOMAttr):
(WebCore::InspectorDOMAgent::styleAttributeInvalidated):
(WebCore::InspectorDOMAgent::characterDataModified):
(WebCore::InspectorDOMAgent::didPushShadowRoot):
(WebCore::InspectorDOMAgent::willPopShadowRoot):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMDebuggerAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMDebuggerAgent::didInvalidateStyleAttr):
(WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode):
(WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode):
(WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr):
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
(WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::didOpenDatabase):
(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
(WebCore::InspectorDatabaseAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDatabaseAgent::enable):
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDatabaseResource.cpp:
(WebCore::InspectorDatabaseResource::bind):
* inspector/InspectorDatabaseResource.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::enable):
(WebCore::InspectorDebuggerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorDebuggerAgent::addMessageToConsole):
(WebCore::InspectorDebuggerAgent::schedulePauseOnNextStatement):
(WebCore::InspectorDebuggerAgent::scriptExecutionBlockedByCSP):
(WebCore::InspectorDebuggerAgent::didParseSource):
(WebCore::InspectorDebuggerAgent::failedToParseSource):
(WebCore::InspectorDebuggerAgent::didPause):
(WebCore::InspectorDebuggerAgent::didContinue):
(WebCore::InspectorDebuggerAgent::breakProgram):
(WebCore::InspectorDebuggerAgent::clearBreakDetails):
(WebCore::InspectorDebuggerAgent::reset):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
(WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorHeapProfilerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorHeapProfilerAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorHeapProfilerAgent::getHeapSnapshot):
(WebCore::InspectorHeapProfilerAgent::takeHeapSnapshot):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
(WebCore::InspectorIndexedDBAgent::didCreateFrontendAndBackend):
(WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::InspectorInputAgent):
(WebCore::InspectorInputAgent::didCreateFrontendAndBackend):
(WebCore::InspectorInputAgent::willDestroyFrontendAndBackend):
* inspector/InspectorInputAgent.h:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
(WebCore::InspectorLayerTreeAgent::didCreateFrontendAndBackend):
(WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorLayerTreeAgent::layerTreeDidChange):
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::didCreateFrontendAndBackend):
(WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::didCreateFrontendAndBackend):
(WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
(WebCore::InspectorPageAgent::domContentEventFired):
(WebCore::InspectorPageAgent::loadEventFired):
(WebCore::InspectorPageAgent::frameNavigated):
(WebCore::InspectorPageAgent::frameDetached):
(WebCore::InspectorPageAgent::frameStartedLoading):
(WebCore::InspectorPageAgent::frameStoppedLoading):
(WebCore::InspectorPageAgent::frameScheduledNavigation):
(WebCore::InspectorPageAgent::frameClearedScheduledNavigation):
(WebCore::InspectorPageAgent::willRunJavaScriptDialog):
(WebCore::InspectorPageAgent::didRunJavaScriptDialog):
(WebCore::InspectorPageAgent::scriptsEnabled):
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::addProfile):
(WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole):
(WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole):
(WebCore::InspectorProfilerAgent::getHeapSnapshot):
(WebCore::InspectorProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorProfilerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorProfilerAgent::takeHeapSnapshot):
(WebCore::InspectorProfilerAgent::toggleRecordButton):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::didCreateFrontendAndBackend):
(WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::markResourceAsCached):
(WebCore::InspectorResourceAgent::didReceiveResponse):
(WebCore::InspectorResourceAgent::didReceiveData):
(WebCore::InspectorResourceAgent::didFinishLoading):
(WebCore::InspectorResourceAgent::didFailLoading):
(WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
(WebCore::InspectorResourceAgent::didCreateWebSocket):
(WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
(WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorResourceAgent::didCloseWebSocket):
(WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
(WebCore::InspectorResourceAgent::didSendWebSocketFrame):
(WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):
(WebCore::InspectorResourceAgent::enable):
(WebCore::InspectorResourceAgent::InspectorResourceAgent):
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::~InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::sendEvent):
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::WorkerFrontendChannel::WorkerFrontendChannel):
(WebCore::InspectorWorkerAgent::WorkerFrontendChannel::dispatchMessageFromWorker):
(WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
(WebCore::InspectorWorkerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorWorkerAgent::enable):
(WebCore::InspectorWorkerAgent::disable):
(WebCore::InspectorWorkerAgent::didStartWorkerGlobalScope):
(WebCore::InspectorWorkerAgent::workerGlobalScopeTerminated):
(WebCore::InspectorWorkerAgent::createWorkerFrontendChannel):
* inspector/InspectorWorkerAgent.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::didCreateFrontendAndBackend):
(WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
(WebCore::PageRuntimeAgent::didCreateMainWorldContext):
(WebCore::PageRuntimeAgent::didCreateIsolatedContext):
(WebCore::PageRuntimeAgent::notifyContextCreated):
* inspector/PageRuntimeAgent.h:
* inspector/TimelineRecordFactory.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::connectFrontend):
(WebCore::WorkerInspectorController::disconnectFrontend):
* inspector/WorkerInspectorController.h:
(WebCore::WorkerInspectorController::hasFrontend):
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend):
(WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
* inspector/WorkerRuntimeAgent.h:
* inspector/protocol/Input.json:
2013-11-13 Simon Fraser <simon.fraser@apple.com>
Rename FrameView's repaintFixedElementsAfterScrolling and updateFixedElementsAfterScrolling
https://bugs.webkit.org/show_bug.cgi?id=124306
Reviewed by Tim Horton.
FrameView::repaintFixedElementsAfterScrolling() didn't do any repainting, and didn't
just apply to fixed elements. Rename it to updateLayerPositionsAfterScrolling().
updateFixedElementsAfterScrolling() was also confusingly named; rename it
to updateCompositingLayersAfterScrolling().
* page/FrameView.cpp:
(WebCore::FrameView::setFixedVisibleContentRect):
(WebCore::FrameView::scrollPositionChangedViaPlatformWidget):
(WebCore::FrameView::updateLayerPositionsAfterScrolling):
(WebCore::FrameView::shouldUpdateCompositingLayersAfterScrolling):
(WebCore::FrameView::updateCompositingLayersAfterScrolling):
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollTo):
* platform/ScrollView.h:
(WebCore::ScrollView::updateLayerPositionsAfterScrolling):
(WebCore::ScrollView::updateCompositingLayersAfterScrolling):
2013-11-13 Andreas Kling <akling@apple.com>
Generate casting helpers for SVGPaint and SVGColor.
<https://webkit.org/b/124285>
Use CSS_VALUE_TYPE_CASTS to generate type casting helpers for the
SVGPaint and SVGColor classes.
Reviewed by Anders Carlsson.
2013-11-13 Benjamin Poulain <bpoulain@apple.com>
Update ResourceHandleCF to use the didReceiveBuffer() callback
https://bugs.webkit.org/show_bug.cgi?id=124256
Reviewed by Alexey Proskuryakov.
Use didReceiveBuffer() instead of didReceiveData() to pass data back to
the ResourceHandleClient. This unify the update code with the NSURLConnection loader.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::didReceiveData):
(WebCore::ResourceHandle::handleDataArray):
2013-11-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Split Inspector.json into individual domain json files
https://bugs.webkit.org/show_bug.cgi?id=124098
Reviewed by Timothy Hatcher.
Split the Inspector domains into their own json file. Generate a
combined Inspector.json from all of the json files at build time
so that the CodeGenerator is unchanged.
* .gitattributes:
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.xcodeproj/project.pbxproj:
* inspector/CodeGeneratorInspector.py:
(TypeMap.__init__):
* inspector/Inspector.json: Removed.
* inspector/Scripts/generate-combined-inspector-json.py: Added.
* inspector/protocol/ApplicationCache.json: Added.
* inspector/protocol/CSS.json: Added.
* inspector/protocol/Canvas.json: Added.
* inspector/protocol/Console.json: Added.
* inspector/protocol/DOM.json: Added.
* inspector/protocol/DOMDebugger.json: Added.
* inspector/protocol/DOMStorage.json: Added.
* inspector/protocol/Database.json: Added.
* inspector/protocol/Debugger.json: Added.
* inspector/protocol/FileSystem.json: Added.
* inspector/protocol/HeapProfiler.json: Added.
* inspector/protocol/IndexedDB.json: Added.
* inspector/protocol/Input.json: Added.
* inspector/protocol/InspectorDomain.json: Added.
* inspector/protocol/LayerTree.json: Added.
* inspector/protocol/Memory.json: Added.
* inspector/protocol/Network.json: Added.
* inspector/protocol/Page.json: Added.
* inspector/protocol/Profiler.json: Added.
* inspector/protocol/Runtime.json: Added.
* inspector/protocol/Timeline.json: Added.
* inspector/protocol/Worker.json: Added.
2013-11-13 Zalan Bujtas <zalan@apple.com>
Code cleanup: change FrameView::doLayoutWithFrameFlattening() to make it more explicit.
https://bugs.webkit.org/show_bug.cgi?id=124238
Reviewed by Simon Fraser.
Rename doLayoutWithFrameFlattening() and change its signature so that it's inline with
what it does.
Covered by existing tests.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded):
* page/FrameView.h:
2013-11-13 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Modifying RTCSessionDescription object construction to match the spec
https://bugs.webkit.org/show_bug.cgi?id=124212
Reviewed by Eric Carlson.
According to the spec the RTCSessionDescriptionInit parameter in RTCSessionDescription constructor is optional,
which must not be nullable. If the 'type' and/or 'sdp' keys are not present, the string object that stores
them in the RTCSessionDescription class, must be null in those cases. Also, if an object that is not a
Dictionary is passed as argument to the constructor, an exception must be raised.
Existing test was updated.
* GNUmakefile.list.am:
* Modules/mediastream/RTCSessionDescription.cpp:
(WebCore::RTCSessionDescription::create):
* Modules/mediastream/RTCSessionDescription.idl:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSRTCSessionDescriptionCustom.cpp: Added.
(WebCore::JSRTCSessionDescriptionConstructor::constructJSRTCSessionDescription):
2013-11-13 Tim Horton <timothy_horton@apple.com>
Fix release build after r159224.
* WebCore.exp.in:
2013-11-13 Anders Carlsson <andersca@apple.com>
Remove ChromeClient::paintCustomOverhangArea
https://bugs.webkit.org/show_bug.cgi?id=124304
Reviewed by Beth Dakin.
This function always returns false now; get rid of it.
* page/Chrome.cpp:
* page/ChromeClient.h:
* page/FrameView.cpp:
(WebCore::FrameView::paintOverhangAreas):
2013-11-09 Martin Robinson <mrobinson@igalia.com>
[MathML] The double bar vertical delimiter does not stretch properly
https://bugs.webkit.org/show_bug.cgi?id=123543
Reviewed by Chris Fleizach.
* rendering/mathml/RenderMathMLOperator.cpp: Add stretching support for U+2225, which
is another version of the vertical bar.
2013-11-13 Simon Fraser <simon.fraser@apple.com>
ASSERTION FAILED: m_repaintRect == renderer().clippedOverflowRectForRepaint(renderer().containerForRepaint()) after r135816
https://bugs.webkit.org/show_bug.cgi?id=103432
Reviewed by Dave Hyatt.
RenderLayer caches repaint rects in m_repaintRect, and on updating layer
positions after scrolling, asserts that the cached rect is correct. However,
this assertion would sometimes fail if we were scrolling as a result of
doing adjustViewSize() in the middle of layout, because we haven't updated
layer positions post-layout yet.
Fix by having the poorly named FrameView::repaintFixedElementsAfterScrolling()
skip the layer updating if this FrameView is inside of adjusetViewSize() in
layout.
In order to know if we're inside view size adjusting, add a LayoutPhase
member to FrameView, replacing two existing bools that track laying out state.
Investigative work showed that there are many, many ways to re-enter FrameView::layout(),
which makes it hard (but desirable) to more assertions about state changes, but
indicated that saving and restoring the state (via TemporaryChange<LayoutPhase>)
was a good idea.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::reset):
(WebCore::FrameView::updateCompositingLayersAfterStyleChange):
(WebCore::FrameView::layout):
(WebCore::FrameView::repaintFixedElementsAfterScrolling):
* page/FrameView.h:
2013-11-13 Myles C. Maxfield <mmaxfield@apple.com>
Delete unused TextPainter function
https://bugs.webkit.org/show_bug.cgi?id=124292
Reviewed by Tim Horton.
New tests are unnecessary since there is no behavior change
* rendering/TextPainter.cpp:
(WebCore::TextPainter::paintText):
* rendering/TextPainter.h:
2013-11-13 Alexey Proskuryakov <ap@apple.com>
Check WebCrypto parameter types when casting
https://bugs.webkit.org/show_bug.cgi?id=124297
Reviewed by Sam Weinig.
Also changed existing toCryptoXXX functions to use TYPE_CASTS_BASE mechanism.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
And sure enough, there was a bug caught by the added checks.
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
* crypto/CryptoAlgorithmParameters.h:
(WebCore::CryptoAlgorithmParameters::ENUM_CLASS):
(WebCore::CryptoAlgorithmParameters::parametersClass):
* crypto/CryptoKey.h:
* crypto/CryptoKeyData.h:
* crypto/CryptoKeySerialization.h:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey):
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey):
(WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
* crypto/keys/CryptoKeyAES.h:
* crypto/keys/CryptoKeyDataOctetSequence.h:
(WebCore::isCryptoKeyDataOctetSequence):
* crypto/keys/CryptoKeyDataRSAComponents.h:
(WebCore::isCryptoKeyDataRSAComponents):
* crypto/keys/CryptoKeyHMAC.h:
* crypto/keys/CryptoKeyRSA.h:
* crypto/keys/CryptoKeySerializationRaw.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
* crypto/parameters/CryptoAlgorithmAesCbcParams.h:
* crypto/parameters/CryptoAlgorithmAesKeyGenParams.h:
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
* crypto/parameters/CryptoAlgorithmHmacParams.h:
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
* crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h:
* crypto/parameters/CryptoAlgorithmRsaSsaParams.h:
2013-11-13 Alexey Proskuryakov <ap@apple.com>
crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html is failing on Maverics release bot
https://bugs.webkit.org/show_bug.cgi?id=124280
Reviewed by Anders Carlsson.
* crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
Don't be a muppet, initialize your variables.
2013-11-12 Jer Noble <jer.noble@apple.com>
Add support for HTMLMediaElement.fastSeek()
https://bugs.webkit.org/show_bug.cgi?id=124262
Reviewed by Eric Carlson.
Test: media/video-fast-seek.html
Add the fastSeek() method to HTMLMediaElement, and use fastSeek() in
the JavaScript media controls.
Add the new fastSeek() method:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::fastSeek): Call seekWithTolerance.
(HTMLMediaElement::seek): Call seekWithTolerance with 0 tolerance.
(HTMLMediaElement::seekWithTolerance): Renamed from seek().
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
Add seekWithTolerance() to MediaPlayer:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::seekWithTolerance): Pass to MediaPlayerPrivate.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::seekWithTolerance): Default implementation which
calls seek().
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::seek): Call seekWithTolerance with 0 tolerance.
(WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): Renamed from seek().
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): Take tolerance parameters.
Use the new fastSeek() method while actively scrubbing.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls): Add mouse up and down handlers.
(Controller.prototype.handleTimeUpdate): Only update the timeline when not scrubbing.
(Controller.prototype.handleTimelineChange): Use fastSeek().
(Controller.prototype.handleTimelineMouseDown): Start scrubbing.
(Controller.prototype.handleTimelineMouseUp): Stop scrubbing.
2013-11-13 Andreas Kling <akling@apple.com>
Generate casting helpers for scrolling tree classes.
<https://webkit.org/b/124286>
Added SCROLLING_STATE_NODE_TYPE_CASTS and used it to replace the
hand-written toFoo() casts for ScrollingStateNode subclasses.
Reviewed by Anders Carlsson.
2013-11-13 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Determining if a line is inside of a shape should only happen in one place
https://bugs.webkit.org/show_bug.cgi?id=121708
Reviewed by Andreas Kling.
The ShapeInfo::lineOverlapsShapeBounds() methods now delegate to the Shape object. The
logic for the Shape overlap test is now the same for ShapeInsideInfo and ShapeOutsideInfo.
No new tests, this is just a refactoring of existing code.
* rendering/shapes/Shape.h:
(WebCore::Shape::lineOverlapsShapeMarginBounds): Apply lineOverlapsLayoutRect() to the shape-margin bounds LayoutRect.
(WebCore::Shape::lineOverlapsShapePaddingBounds): Apply lineOverlapsLayoutRect() to the shape-padding bounds LayoutRect.
(WebCore::Shape::lineOverlapsLayoutRect): The common code for checking if a line and a LayoutRect overlap.
* rendering/shapes/ShapeInsideInfo.h: Use lineOverlapsShapePaddingBounds() for lineOverlapShapeBounds().
* rendering/shapes/ShapeOutsideInfo.h: Use lineOverlapsShapeMarginBounds() for lineOverlapShapeBounds().
2013-11-13 Jochen Eisinger <jochen@chromium.org>
Restrict UserGestureIndicator to main thread
https://bugs.webkit.org/show_bug.cgi?id=124277
Reviewed by Andreas Kling.
Certain classes that interact with UserGestureIndicators, e.g.
the DOMTimer, can also live on worker threads. Since a
background thread cannot possible get a user gesture in the
first place, and to avoid races, we turn a UserGestureIndicator
on a background thread into a no-op.
* dom/UserGestureIndicator.cpp:
(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::~UserGestureIndicator):
(WebCore::UserGestureIndicator::processingUserGesture):
* dom/UserGestureIndicator.h:
2013-11-13 Antti Koivisto <antti@apple.com>
Factor simple line creation loop to function
https://bugs.webkit.org/show_bug.cgi?id=124279
Reviewed by Andreas Kling.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::Style::Style):
Capture style that affects line layout to a struct.
(WebCore::SimpleLineLayout::textWidth):
(WebCore::SimpleLineLayout::measureWord):
(WebCore::SimpleLineLayout::createLineRuns):
Factor the line loop here.
(WebCore::SimpleLineLayout::createTextRuns):
2013-11-12 Antti Koivisto <antti@apple.com>
Support overflow-wrap:break-word on simple line path
https://bugs.webkit.org/show_bug.cgi?id=124206
Reviewed by Andreas Kling.
Pure text documents are rendered with break-word. It is also common in discussion board type sites.
This also makes many <textarea>'s rendered using the simple line path.
Tests: fast/forms/basic-textareas-quirks-simple-lines.html
fast/forms/linebox-overflow-in-textarea-padding-simple-lines.html
fast/forms/negativeLineHeight-simple-lines.html
fast/forms/textAreaLineHeight-simple-lines.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange):
(WebCore::RenderBlock::markShapeInsideDescendantsForLayout):
Invalidate the cached line layout mode on shape-inside style change.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForText):
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::createTextRuns):
2013-11-13 Andreas Kling <akling@apple.com>
Turn some not-so-rare ElementRareData bits into Node flags.
<https://webkit.org/b/124275>
The following 4 bits seem to be the most commonly set:
- childrenAffectedByHover()
- childrenAffectedByFirstChildRules()
- childrenAffectedByLastChildRules()
- childrenAffectedByDirectAdjacentRules()
Turning them into Node flags means we don't have to allocate full
ElementRareData object in many cases. I also took this opportunity
to make Node's flag twiddling functions available to subclasses.
1.38 MB progression on HTML5-8266 locally.
Reviewed by Antti Koivisto.
2013-11-13 Tibor Meszaros <mtibor@inf.u-szeged.hu>
Cleanup the build from unused parameters in WebCore
https://bugs.webkit.org/show_bug.cgi?id=124199.
Reviewed by Csaba Osztrogonác.
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::cachedOrPendingImage):
* dom/Document.cpp:
(WebCore::Document::scriptedAnimationControllerSetThrottled):
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerBlobURL):
* html/HTMLAnchorElement.cpp:
(WebCore::shouldProhibitLinks):
* html/parser/XSSAuditor.cpp:
(WebCore::isSemicolonSeparatedAttribute):
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightFailure):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::animate):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::animate):
* platform/graphics/WidthIterator.cpp:
(WebCore::applyFontTransforms):
* rendering/RenderView.cpp:
(WebCore::RenderView::setIsInWindow):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
(WebCore::RenderStyle::changeRequiresLayerRepaint):
(WebCore::RenderStyle::changeRequiresRecompositeLayer):
* testing/Internals.cpp:
(WebCore::Internals::setHeaderHeight):
(WebCore::Internals::setCaptionsStyleSheetOverride):
2013-11-13 Andreas Kling <akling@apple.com>
Refalize CSSCursorImageValue.
<https://webkit.org/b/124272>
Make CSSCursorImageValue constructor return a PassRef, and have it
take the image CSSValue as a PassRef (and store it internally in a
Ref<CSSValue>.)
Had to add a Ref version of compareCSSValuePtr() to make this work.
Reviewed by Antti Koivisto.
2013-11-13 Andreas Kling <akling@apple.com>
RenderTableSection: Cell structures don't need allocation padding.
<https://webkit.org/b/124263>
The row structure data gets shrunk-to-fit once we get to layout,
but per-row cell structures get no such luxury. Fortuntely we know
ahead of time how many cells a row needs to accomodate, so we can
just use Vector::resizeToFit() instead of Vector::grow().
1.25 MB progression on HTML5-8266 locally.
Reviewed by Antti Koivisto.
2013-11-13 Andreas Kling <akling@apple.com>
Avoid unnecessarily padding the FontDescription families vector.
<https://webkit.org/b/124267>
Use a bit of reserveInitialCapacity+uncheckedAppend grease to avoid
jumping all the way to capacity=16 when a style has more than just
a single font-family in it.
130 kB progression on HTML5-8266 locally.
Reviewed by Antti Koivisto.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyFontFamily::applyValue):
2013-11-13 Andreas Kling <akling@apple.com>
Make remaining CSSPrimitiveValue constructors return PassRef.
<https://webkit.org/b/124270>
..and same with the corresponding CSSValuePool functions.
Reviewed by Antti Koivisto.
2013-11-13 Alexey Proskuryakov <ap@apple.com>
Implement key generation and JWK import for RSASSA-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=124236
Reviewed by Sam Weinig.
Tests: crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html
crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
(WebCore::JSCryptoAlgorithmBuilder::add):
* bindings/js/JSCryptoAlgorithmBuilder.h:
* crypto/CryptoAlgorithmDescriptionBuilder.h:
Added a way to add an Uint8Array, as needed for RSA key.algorithm.publicExponent.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesCbcParams): Removed unneeded JSC prefixes.
(WebCore::createAesKeyGenParams): Ditto.
(WebCore::createHmacParams): Ditto.
(WebCore::createHmacKeyParams): Ditto.
(WebCore::createRsaKeyGenParams): Added.
(WebCore::createRsaSsaKeyParams): Added. WebCrypto currently doesn't specify any
parameters for importKey, so the structure remains blank (unlike with JWK).
(WebCore::createRsaSsaParams): Added (currently unused, will be sued for sign/verify soon).
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt): Removed unneeded JSC prefixes.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign): Added support for RSAES_PKCS1_v1_5.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest): Removed unneeded JSC prefixes.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey): Added support for RSAES_PKCS1_v1_5.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey): Removed unneeded JSC prefixes.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForWrapKey): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForUnwrapKey): Ditto.
* bindings/js/JSCryptoKeySerializationJWK.h:
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::getJSArrayFromJSON): Added.
(WebCore::getBigIntegerVectorFromJSON): Added.
(WebCore::createRSASSAKeyParameters): Create parameters for key import. The key
will remember which algorithm it's allowed to be used with.
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): Added support for
RS256...RS512 (tha is, RSAES_PKCS1_v1_5 with SHA-256...SHA-512).
(WebCore::JSCryptoKeySerializationJWK::keyDataOctetSequence): Split out of keyData().
(WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents): Added code to read
RSA key components from JWK.
(WebCore::JSCryptoKeySerializationJWK::keyData): Call one of the above functions.
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Added.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
Placeholders.
* crypto/CryptoKey.h: (WebCore::CryptoKeyClass): Added RSA key class for poor man's RTTI.
* crypto/CryptoKeyData.h: (WebCore::CryptoKeyData::FormatRSAComponents): Added RSAComponents
for poor man's RTTI.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::importKey):
* crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/keys/CryptoKeyAES.h:
(WebCore::isCryptoKeyAES):
(WebCore::toCryptoKeyAES):
* crypto/keys/CryptoKeyDataOctetSequence.h:
(WebCore::toCryptoKeyDataOctetSequence):
* crypto/keys/CryptoKeyHMAC.h:
(WebCore::isCryptoKeyHMAC):
(WebCore::toCryptoKeyHMAC):
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
Switched from "as" functions to "is" and "to" ones, as that's more idiomatic.
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: Added.
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: Added.
Glue code for importKey/generateKey for now.
* crypto/keys/CryptoKeyDataRSAComponents.cpp: Added.
(WebCore::CryptoKeyDataRSAComponents::CryptoKeyDataRSAComponents):
(WebCore::CryptoKeyDataRSAComponents::~CryptoKeyDataRSAComponents):
* crypto/keys/CryptoKeyDataRSAComponents.h: Added.
(WebCore::toCryptoKeyDataRSAComponents):
Added a structure to hold RSA key components, extracted from JWK or another format.
* crypto/keys/CryptoKeyRSA.h: Added.
* crypto/mac/CryptoKeyRSAMac.cpp: Added.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Register RSASSA_PKCS1_v1_5.
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h: Added a constructor to make
sure that hasLength is never left uninitialized, even when reading formats that
don't contain a length.
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Added.
* crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Added.
* crypto/parameters/CryptoAlgorithmRsaSsaParams.h: Added.
Added parameter structures that are needed for RSASSA_PKCS1_v1_5.
2013-11-12 Alexey Proskuryakov <ap@apple.com>
Disable WebCrypto on Mountain Lion
https://bugs.webkit.org/show_bug.cgi?id=124261
Rubber-stamped by Sam Weinig.
* Configurations/FeatureDefines.xcconfig:
2013-11-12 Zan Dobersek <zdobersek@igalia.com>
Manage XMLHttpRequestUpload, XSLImportRule, XMLErrors, XML pending callback classes through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=124224
Reviewed by Anders Carlsson.
Use std::unique_ptr to handle objects of various XML classes that were previously managed by OwnPtr.
This removes usage of OwnPtr and PassOwnPtr under Source/WebCore/xml/.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::upload):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequestUpload.h:
* xml/XSLImportRule.h:
* xml/XSLStyleSheet.h:
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::loadChildSheet):
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::handleError):
* xml/parser/XMLDocumentParser.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::PendingCallbacks::PendingCallbacks):
(WebCore::PendingCallbacks::appendStartElementNSCallback):
(WebCore::PendingCallbacks::appendEndElementNSCallback):
(WebCore::PendingCallbacks::appendCharactersCallback):
(WebCore::PendingCallbacks::appendProcessingInstructionCallback):
(WebCore::PendingCallbacks::appendCDATABlockCallback):
(WebCore::PendingCallbacks::appendCommentCallback):
(WebCore::PendingCallbacks::appendInternalSubsetCallback):
(WebCore::PendingCallbacks::appendErrorCallback):
(WebCore::PendingCallbacks::callAndRemoveFirstCallback):
(WebCore::XMLDocumentParser::XMLDocumentParser):
2013-11-12 Brady Eidson <beidson@apple.com>
Move basic IDBBackingStoreTransaction operations to IDBServerConnection
https://bugs.webkit.org/show_bug.cgi?id=124244
Reviewed by Tim Horton (and unofficially Anders Carlsson).
This patch:
- Makes IDBBackingStore the owner of an IDBBackingStoreTransaction.
- Adds the integer transaction ID to IDBBackingStoreTransaction for reference.
- Removes IDBTransactionBackends reliance on IDBBackingStoreTransaction by moving
necessary methods to IDBServerConnection.
- Renames the IDBTransactionBackend::backingStoreTransaction() accessor to
deprecatedBackingStoreTransaction to make it clear its on the way out.
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::setIndexKeys):
* Modules/indexeddb/IDBServerConnection.h:
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::IDBTransactionBackend):
(WebCore::IDBTransactionBackend::~IDBTransactionBackend):
(WebCore::IDBTransactionBackend::deprecatedBackingStoreTransaction):
(WebCore::IDBTransactionBackend::scheduleTask):
(WebCore::IDBTransactionBackend::abort):
(WebCore::IDBTransactionBackend::commit):
(WebCore::IDBTransactionBackend::taskTimerFired):
* Modules/indexeddb/IDBTransactionBackend.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::GetOperation::perform):
(WebCore::PutOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
(WebCore::IDBBackingStoreLevelDB::generateKey):
(WebCore::IDBBackingStoreLevelDB::updateKeyGenerator):
(WebCore::IDBBackingStoreLevelDB::establishBackingStoreTransaction):
(WebCore::IDBBackingStoreLevelDB::deprecatedBackingStoreTransaction):
(WebCore::IDBBackingStoreLevelDB::removeBackingStoreTransaction):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp:
(WebCore::IDBBackingStoreTransactionLevelDB::IDBBackingStoreTransactionLevelDB):
(WebCore::IDBBackingStoreTransactionLevelDB::~IDBBackingStoreTransactionLevelDB):
(WebCore::IDBBackingStoreTransactionLevelDB::resetTransaction):
* Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp:
(WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
(WebCore::IDBServerConnectionLevelDB::deprecatedBackingStoreTransaction):
(WebCore::IDBServerConnectionLevelDB::openTransaction):
(WebCore::IDBServerConnectionLevelDB::beginTransaction):
(WebCore::IDBServerConnectionLevelDB::commitTransaction):
(WebCore::IDBServerConnectionLevelDB::resetTransaction):
(WebCore::IDBServerConnectionLevelDB::rollbackTransaction):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h:
2013-11-12 Andy Estes <aestes@apple.com>
Fix the Mountain Lion build after r159171.
* platform/mac/HTMLConverter.mm:
(_dateForString): +[NSCalendar calendarWithIdentifier:] only exists on
10.9. Use -[NSCalendar initWithIdentifier:] instead.
2013-11-12 Andy Estes <aestes@apple.com>
[Mac] Fix some deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=124252
Reviewed by Mark Rowe.
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create): Use CFPropertyListCreateWithData()
instead of CFPropertyListCreateFromXMLData().
(WebCore::LegacyWebArchive::rawDataRepresentation): Use
CFPropertyListWrite() instead of CFPropertyListWriteToStream().
* platform/mac/HTMLConverter.mm:
(_dateForString): Rewrite this method in terms of NSDateComponents and
NSCalendar instead of using CFGregorianDate.
2013-11-12 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r159160, r159161, and r159164.
http://trac.webkit.org/changeset/159160
http://trac.webkit.org/changeset/159161
http://trac.webkit.org/changeset/159164
https://bugs.webkit.org/show_bug.cgi?id=124253
Too many errors (make fewer) (Requested by ap on #webkit).
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
* bindings/js/JSCryptoAlgorithmBuilder.h:
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesCbcParams):
(WebCore::createAesKeyGenParams):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForWrapKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForUnwrapKey):
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
(WebCore::JSCryptoKeySerializationJWK::keyData):
* bindings/js/JSCryptoKeySerializationJWK.h:
* crypto/CryptoAlgorithmDescriptionBuilder.h:
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Removed.
* crypto/CryptoKey.h:
(WebCore::ENUM_CLASS):
* crypto/CryptoKeyData.h:
(WebCore::CryptoKeyData::ENUM_CLASS):
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::importKey):
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: Removed.
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: Removed.
* crypto/keys/CryptoKeyAES.h:
(WebCore::asCryptoKeyAES):
* crypto/keys/CryptoKeyDataOctetSequence.h:
(WebCore::asCryptoKeyDataOctetSequence):
* crypto/keys/CryptoKeyDataRSAComponents.cpp: Removed.
* crypto/keys/CryptoKeyDataRSAComponents.h: Removed.
* crypto/keys/CryptoKeyHMAC.h:
(WebCore::asCryptoKeyHMAC):
* crypto/keys/CryptoKeyRSA.h: Removed.
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
* crypto/mac/CryptoKeyRSAMac.cpp: Removed.
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Removed.
* crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Removed.
* crypto/parameters/CryptoAlgorithmRsaSsaParams.h: Removed.
2013-11-12 Bem Jones-Bey <bjonesbe@adobe.com>
Make the placed floats tree use LayoutUnit instead of int
https://bugs.webkit.org/show_bug.cgi?id=124207
Reviewed by Alexandru Chiculita.
The dimensions of floats are in LayoutUnits, so it doesn't make sense
to be converting to ints for use in the placed floats tree.
Also add missed "explicit" to single argument FloatingObjects
constructor.
No new tests, no behavior change.
* rendering/FloatingObjects.cpp:
(WebCore::rangesIntersect):
(WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
(WebCore::ComputeFloatOffsetAdapter::lowValue):
(WebCore::ComputeFloatOffsetAdapter::highValue):
(WebCore::FindNextFloatLogicalBottomAdapter::FindNextFloatLogicalBottomAdapter):
(WebCore::FindNextFloatLogicalBottomAdapter::lowValue):
(WebCore::FindNextFloatLogicalBottomAdapter::highValue):
* rendering/FloatingObjects.h:
* rendering/RenderFlowThread.h:
2013-11-12 Alexey Proskuryakov <ap@apple.com>
Implement key generation and JWK import for RSASSA-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=124236
Build fix.
* crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
ifdef out some code on Mountain Lion. Bug 124249 track fixing this.
2013-11-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Extract InspectorAgentRegistry from InspectorBaseAgent
https://bugs.webkit.org/show_bug.cgi?id=124190
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAgentRegistry.cpp: Added.
(WebCore::InspectorAgentRegistry::append):
(WebCore::InspectorAgentRegistry::setFrontend):
(WebCore::InspectorAgentRegistry::clearFrontend):
(WebCore::InspectorAgentRegistry::registerInDispatcher):
(WebCore::InspectorAgentRegistry::discardAgents):
* inspector/InspectorAgentRegistry.h: Added.
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorBaseAgent.cpp: Removed.
* inspector/InspectorBaseAgent.h:
(WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
(WebCore::InspectorBaseAgentInterface::~InspectorBaseAgentInterface):
* inspector/InspectorController.h:
* inspector/InspectorMemoryAgent.h:
* inspector/WorkerInspectorController.h:
2013-11-12 Alexey Proskuryakov <ap@apple.com>
Implement key generation and JWK import for RSASSA-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=124236
Release build fix.
* bindings/js/JSCryptoAlgorithmBuilder.cpp: Include TypedArrayInlines.h
2013-11-12 Alexey Proskuryakov <ap@apple.com>
Implement key generation and JWK import for RSASSA-PKCS1-v1_5
https://bugs.webkit.org/show_bug.cgi?id=124236
Reviewed by Sam Weinig.
Tests: crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html
crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
(WebCore::JSCryptoAlgorithmBuilder::add):
* bindings/js/JSCryptoAlgorithmBuilder.h:
* crypto/CryptoAlgorithmDescriptionBuilder.h:
Added a way to add an Uint8Array, as needed for RSA key.algorithm.publicExponent.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesCbcParams): Removed unneeded JSC prefixes.
(WebCore::createAesKeyGenParams): Ditto.
(WebCore::createHmacParams): Ditto.
(WebCore::createHmacKeyParams): Ditto.
(WebCore::createRsaKeyGenParams): Added.
(WebCore::createRsaSsaKeyParams): Added. WebCrypto currently doesn't specify any
parameters for importKey, so the structure remains blank (unlike with JWK).
(WebCore::createRsaSsaParams): Added (currently unused, will be sued for sign/verify soon).
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt): Removed unneeded JSC prefixes.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign): Added support for RSAES_PKCS1_v1_5.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest): Removed unneeded JSC prefixes.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey): Added support for RSAES_PKCS1_v1_5.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey): Removed unneeded JSC prefixes.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForWrapKey): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForUnwrapKey): Ditto.
* bindings/js/JSCryptoKeySerializationJWK.h:
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::getJSArrayFromJSON): Added.
(WebCore::getBigIntegerVectorFromJSON): Added.
(WebCore::createRSASSAKeyParameters): Create parameters for key import. The key
will remember which algorithm it's allowed to be used with.
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): Added support for
RS256...RS512 (tha is, RSAES_PKCS1_v1_5 with SHA-256...SHA-512).
(WebCore::JSCryptoKeySerializationJWK::keyDataOctetSequence): Split out of keyData().
(WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents): Added code to read
RSA key components from JWK.
(WebCore::JSCryptoKeySerializationJWK::keyData): Call one of the above functions.
* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Added.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
Placeholders.
* crypto/CryptoKey.h: (WebCore::CryptoKeyClass): Added RSA key class for poor man's RTTI.
* crypto/CryptoKeyData.h: (WebCore::CryptoKeyData::FormatRSAComponents): Added RSAComponents
for poor man's RTTI.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: (WebCore::CryptoAlgorithmAES_CBC::importKey):
* crypto/algorithms/CryptoAlgorithmHMAC.cpp: (WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/keys/CryptoKeyAES.h:
(WebCore::isCryptoKeyAES):
(WebCore::toCryptoKeyAES):
* crypto/keys/CryptoKeyDataOctetSequence.h:
(WebCore::toCryptoKeyDataOctetSequence):
* crypto/keys/CryptoKeyHMAC.h:
(WebCore::isCryptoKeyHMAC):
(WebCore::toCryptoKeyHMAC):
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
Switched from "as" functions to "is" and "to" ones, as that's more idiomatic.
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp: Added.
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h: Added.
Glue code for importKey/generateKey for now.
* crypto/keys/CryptoKeyDataRSAComponents.cpp: Added.
(WebCore::CryptoKeyDataRSAComponents::CryptoKeyDataRSAComponents):
(WebCore::CryptoKeyDataRSAComponents::~CryptoKeyDataRSAComponents):
* crypto/keys/CryptoKeyDataRSAComponents.h: Added.
(WebCore::toCryptoKeyDataRSAComponents):
Added a structure to hold RSA key components, extracted from JWK or another format.
* crypto/keys/CryptoKeyRSA.h: Added.
* crypto/mac/CryptoKeyRSAMac.cpp: Added.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Register RSASSA_PKCS1_v1_5.
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h: Added a constructor to make
sure that hasLength is never left uninitialized, even when reading formats that
don't contain a length.
* crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Added.
* crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Added.
* crypto/parameters/CryptoAlgorithmRsaSsaParams.h: Added.
Added parameter structures that are needed for RSASSA_PKCS1_v1_5.
2013-11-12 Bem Jones-Bey <bjonesbe@adobe.com>
Move ValueToString out to its own header file to remove duplication
https://bugs.webkit.org/show_bug.cgi?id=124237
Reviewed by Alexandru Chiculita.
The ValueToString struct is used in many places for debugging. Move it
out to its own header file to remove all the duplicated definitions
and make it possible for the specializations to be placed in the
header files with the implementation of the classes they print.
No new tests, no behavior change.
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.h:
* platform/LayoutUnit.h:
* platform/PODInterval.h:
* platform/PODIntervalTree.h:
* platform/PODRedBlackTree.h:
* platform/ValueToString.h: Added.
* platform/graphics/FloatPolygon.h:
* rendering/FloatingObjects.cpp:
* rendering/FloatingObjects.h:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderFlowThread.h:
2013-11-11 David Hyatt <hyatt@apple.com>
Make RenderBlockRareData be in a hashtable instead of being a member variable.
https://bugs.webkit.org/show_bug.cgi?id=124056
Reviewed by Anders Carlsson.
Right now RenderBlock has 4 bytes taken up by a m_rareData member that is almost
never allocated. This is better off in a separate hash, so that RenderBlock can
get 4 bytes back.
Since RenderBlockFlow's rare data member was recently removed and folded into
RenderBlock, we need to undo that change and put the rare data member back in
RenderBlockFlow. RenderBlockFlowRareData inheriting from RenderBlockRareData
was not a good idea anyway, since RenderBlockFlows also very rarely need the
RenderBlockRareData members, and were thus paying a heavier cost when the rare
data was created than was necessary.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlockRareData::RenderBlockRareData):
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::hasRareData):
(WebCore::getRareData):
(WebCore::ensureRareData):
(WebCore::RenderBlock::ensureShapeInsideInfo):
(WebCore::RenderBlock::shapeInsideInfo):
(WebCore::RenderBlock::setShapeInsideInfo):
(WebCore::RenderBlock::paginationStrut):
(WebCore::RenderBlock::pageLogicalOffset):
(WebCore::RenderBlock::setPaginationStrut):
(WebCore::RenderBlock::setPageLogicalOffset):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::setMaxMarginBeforeValues):
(WebCore::RenderBlockFlow::setMaxMarginAfterValues):
(WebCore::RenderBlockFlow::setMustDiscardMarginBefore):
(WebCore::RenderBlockFlow::setMustDiscardMarginAfter):
(WebCore::RenderBlockFlow::mustDiscardMarginBefore):
(WebCore::RenderBlockFlow::mustDiscardMarginAfter):
(WebCore::RenderBlockFlow::setBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::setDidBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::clearDidBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::clearShouldBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
(WebCore::RenderBlockFlow::ensureRareBlockFlowData):
(WebCore::RenderBlockFlow::materializeRareBlockFlowData):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::shouldBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::lineBreakToAvoidWidow):
(WebCore::RenderBlockFlow::didBreakAtLineToAvoidWidow):
(WebCore::RenderBlockFlow::lineGridBox):
(WebCore::RenderBlockFlow::setLineGridBox):
(WebCore::RenderBlockFlow::renderNamedFlowFragment):
(WebCore::RenderBlockFlow::maxPositiveMarginBefore):
(WebCore::RenderBlockFlow::maxNegativeMarginBefore):
(WebCore::RenderBlockFlow::maxPositiveMarginAfter):
(WebCore::RenderBlockFlow::maxNegativeMarginAfter):
(WebCore::RenderBlockFlow::initMaxMarginValues):
(WebCore::RenderBlockFlow::hasRareBlockFlowData):
(WebCore::RenderBlockFlow::rareBlockFlowData):
2013-11-12 Alex Christensen <achristensen@webkit.org>
Build GStreamer files on Windows.
https://bugs.webkit.org/show_bug.cgi?id=124180
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.vcxproj/copyForwardingHeaders.cmd:
Include gstreamer files in WinCairo build.
2013-11-12 Brady Eidson <beidson@apple.com>
Introduce IDBServerConnection (and start moving things to it).
https://bugs.webkit.org/show_bug.cgi?id=124193
Reviewed by Alexey Proskuryakov.
IDBServerConnection will be a purely asynchronous interface for database connections, transactions, and cursors.
Its interface will be 100% asynchronous and callback based - Perfect for an IPC divide.
Eventually none of the IDB<Foo>Backend classes will need IDBBackingStore<Foo> classes at all,
and theyll all use IDBServerConnection directly.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBServerConnection.h: Added.
(WebCore::IDBServerConnection::~IDBServerConnection):
Concrete implementation that - for now - wraps an IDBBackingStoreLevelDB:
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp: Added.
(WebCore::IDBServerConnectionLevelDB::IDBServerConnectionLevelDB):
(WebCore::IDBServerConnectionLevelDB::deprecatedBackingStore):
(WebCore::IDBServerConnectionLevelDB::isClosed):
(WebCore::IDBServerConnectionLevelDB::getOrEstablishIDBDatabaseMetadata):
(WebCore::IDBServerConnectionLevelDB::deleteDatabase):
(WebCore::IDBServerConnectionLevelDB::close):
* Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h: Added.
LevelDB created databases get LevelDB server connections:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
(WebCore::IDBFactoryBackendLevelDB::open):
Replace most uses of IDBBackingStore with server connection:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::create):
(WebCore::IDBDatabaseBackend::IDBDatabaseBackend):
(WebCore::IDBDatabaseBackend::openInternalAsync):
(WebCore::IDBDatabaseBackend::setIndexKeys):
(WebCore::IDBDatabaseBackend::openConnectionInternal):
(WebCore::IDBDatabaseBackend::deleteDatabaseAsync):
(WebCore::IDBDatabaseBackend::close):
* Modules/indexeddb/IDBDatabaseBackend.h:
(WebCore::IDBDatabaseBackend::serverConnection):
Change all the operations to access their DatabaseBackends server connection instead
if hanging on to a backing store directly:
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::IDBTransactionBackend):
(WebCore::IDBTransactionBackend::scheduleCreateObjectStoreOperation):
(WebCore::IDBTransactionBackend::scheduleDeleteObjectStoreOperation):
(WebCore::IDBTransactionBackend::scheduleCreateIndexOperation):
(WebCore::IDBTransactionBackend::scheduleDeleteIndexOperation):
(WebCore::IDBTransactionBackend::scheduleGetOperation):
(WebCore::IDBTransactionBackend::schedulePutOperation):
(WebCore::IDBTransactionBackend::scheduleOpenCursorOperation):
(WebCore::IDBTransactionBackend::scheduleCountOperation):
(WebCore::IDBTransactionBackend::scheduleDeleteRangeOperation):
(WebCore::IDBTransactionBackend::scheduleClearOperation):
* Modules/indexeddb/IDBTransactionBackend.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::GetOperation::perform):
(WebCore::PutOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
* Modules/indexeddb/IDBTransactionCoordinator.h:
2013-11-12 Brent Fulgham <bfulgham@apple.com>
[Win] Unreviewed gardening.
* WebCore.vcxproj/WebCore.vcxproj.filters: Correct filter file so that source
files show up in their proper directories in Visual Studio.
2013-11-12 Alex Christensen <achristensen@webkit.org>
[WinCairo] Preparation for ENABLE(VIDEO).
https://bugs.webkit.org/show_bug.cgi?id=57420
Reviewed by Martin Robinson.
* platform/FileSystem.h:
* platform/graphics/MediaPlayer.cpp:
* rendering/RenderMediaControls.cpp:
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::adjustSliderThumbSize):
Separated CG code from GStreamer code.
2013-11-12 Tibor Meszaros <mtibor@inf.u-szeged.hu>
Fix reported build warnings for GTK
https://bugs.webkit.org/show_bug.cgi?id=123439
Reviewed by Carlos Garcia Campos.
There was a void method, that has return value in it's documentation, so I removed it.
* bindings/gobject/WebKitDOMCustom.h:
2013-11-12 Zan Dobersek <zdobersek@igalia.com>
Manage StorageThread through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=124197
Reviewed by Anders Carlsson.
New StorageThread objects are crafted through std::make_unique. This removes the need for the static
StorageThread::create() method but requires that the StorageThread constructor is made public.
* storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::StorageSyncManager):
* storage/StorageSyncManager.h:
* storage/StorageThread.cpp:
* storage/StorageThread.h:
* storage/StorageTracker.cpp:
(WebCore::StorageTracker::StorageTracker):
* storage/StorageTracker.h:
2013-11-12 Zan Dobersek <zdobersek@igalia.com>
Remove unnecessary PassOwnPtr.h header includes under Source/WebCore/fileapi
https://bugs.webkit.org/show_bug.cgi?id=124196
Reviewed by Anders Carlsson.
PassOwnPtr is not used anywhere under Source/WebCore/fileapi/, so PassOwnPtr.h inclusions can be removed.
* fileapi/Blob.h:
* fileapi/FileThread.h:
* fileapi/FileThreadTask.h:
2013-11-12 Antti Koivisto <antti@apple.com>
Text on simple lines sometimes paints one pixel off
https://bugs.webkit.org/show_bug.cgi?id=124200
Reviewed by Andreas Kling.
Test: fast/text/line-runs-simple-lines.html
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::adjustRunOffsets):
Don't round on run construction time.
(WebCore::SimpleLineLayout::createTextRuns):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
Instead round when generating rects.
(WebCore::SimpleLineLayout::RunResolver::Run::baseline):
Provide the baseline (used by painting) as unrounded FloatPoint.
2013-11-11 Andreas Kling <akling@apple.com>
Elements with class names automatically get unique ElementData.
<https://webkit.org/b/124184>
We were calling Element::ensureUniqueElementData() for all Elements
with a non-empty list of class names. Doing that on parser-fresh
Elements caused us to upgrade them to UniqueElementData despite not
needing it (ElementData::setClass() is a const function for caching
the "cooked" class and can be called on ShareableElementData.)
1.09 MB progression on HTML5 spec at <http://whatwg.org/c>
Reviewed by Antti Koivisto.
2013-11-12 Zan Dobersek <zdobersek@igalia.com>
JSC bindings generator should generate deletable JSC functions
https://bugs.webkit.org/show_bug.cgi?id=122422
Reviewed by Geoffrey Garen.
The JSC functions that the JSC bindings generator generates should be deletable to conform to
the WebIDL specification, which instructs that the WebIDL operations must be configurable (which
translates to the JSC functions being deletable).
The generator will still produce a non-deletable JSC function for operations under almost all
Web-facing interfaces since they're annotated with the OperationsNotDeletable attribute. The
exception here is the Node interface that is having the attribute removed, with the provided
test case testing that all the functions on the Node prototype object are writable, enumerable
and configurable. This behavior conforms to the WebIDL specification and the behaviors of IE
and Firefox. Chrome at the moment still provides non-configurable functions.
Test: fast/dom/webidl-operations-on-node-prototype.html
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Enforce the non-deletable behavior of the JSC function if either the
operation's interface is annotated with the OperationsNotDeletable attribute or the operation itself
is annotated with the NotDeletable attribute.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Update the JSC generator test baselines.
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Ditto.
* bindings/scripts/test/JS/JSTestEventTarget.cpp: Ditto.
* bindings/scripts/test/JS/JSTestInterface.cpp: Ditto.
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestTypedefs.cpp: Ditto.
* dom/Node.idl: Remove the OperationsNotDeletable attribute.
2013-11-11 Brady Eidson <beidson@apple.com>
Make IDBTransaction tasks asynchronous
https://bugs.webkit.org/show_bug.cgi?id=124183
Reviewed by Tim Horton.
This is an almost zero-change in behavior.
The one thing that is different is that previously, IDBTransactionBackends would synchronously
run through their entire set of IDBOperations without ever returning control to the runloop.
Now, they start one task and then wait for its completion to schedule the start of the next task.
Change IDBOperations perform() to take a completion handler so it can be asynchronous.
Add an IDBSynchronousOperation class to handle "Abort" tasks, which never need to perform i/o
and therefore can be entirely synchronous.
* Modules/indexeddb/IDBOperation.h:
(WebCore::IDBSynchronousOperation::~IDBSynchronousOperation):
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::scheduleTask): "Abort tasks" are now IDBSynchronousOperations.
(WebCore::IDBTransactionBackend::abort):
(WebCore::IDBTransactionBackend::taskTimerFired): Instead of running through the entire set of tasks,
perform a single task asynchronously. The completion handler for the task will reset the task timer
to asynchronously start the next task.
* Modules/indexeddb/IDBTransactionBackend.h:
(WebCore::IDBTransactionBackend::scheduleTask): "Abort tasks" are now IDBSynchronousOperations.
Update all operations to take completion handlers.
For now, perform things synchronously like before, calling the completion handler when complete.
* Modules/indexeddb/IDBCursorBackend.cpp:
(WebCore::CallOnDestruct::CallOnDestruct): Helper class to make sure completion callbacks are always called perform() exits.
(WebCore::CallOnDestruct::~CallOnDestruct):
(WebCore::IDBCursorBackend::CursorIterationOperation::create):
(WebCore::IDBCursorBackend::CursorAdvanceOperation::create):
(WebCore::IDBCursorBackend::CursorPrefetchIterationOperation::create):
(WebCore::IDBCursorBackend::CursorAdvanceOperation::perform):
(WebCore::IDBCursorBackend::CursorIterationOperation::perform):
(WebCore::IDBCursorBackend::CursorPrefetchIterationOperation::perform):
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::CallOnDestruct::CallOnDestruct): Helper class to make sure completion callbacks are always called when perform() exits.
(WebCore::CallOnDestruct::~CallOnDestruct):
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::GetOperation::perform):
(WebCore::PutOperation::perform):
(WebCore::SetIndexesReadyOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::perform):
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeAbortOperation::create):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::GetOperation::create):
(WebCore::PutOperation::create):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::OpenCursorOperation::create):
(WebCore::CountOperation::create):
(WebCore::DeleteRangeOperation::create):
(WebCore::ClearOperation::create):
2013-11-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove some unused generated code
https://bugs.webkit.org/show_bug.cgi?id=124179
Reviewed by Timothy Hatcher.
* inspector/CodeGeneratorInspectorStrings.py:
2013-11-11 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Clean up static_cast<Element*> usage
https://bugs.webkit.org/show_bug.cgi?id=124133
Reviewed by Andreas Kling.
We need to use toFoo cast function instead of static_cast<>. Though there is toElement(),
static_cast<Element*> is still being used.
No new tests, no behavior changes.
* bindings/gobject/WebKitDOMPrivate.cpp:
(WebKit::wrap):
* dom/ElementTraversal.h:
(WebCore::::lastWithinTemplate):
(WebCore::::nextTemplate):
(WebCore::::previousTemplate):
2013-11-11 Anders Carlsson <andersca@apple.com>
FrameFilter can just be an std::function instead
https://bugs.webkit.org/show_bug.cgi?id=124176
Reviewed by Tim Horton.
* WebCore.exp.in:
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/archive/cf/LegacyWebArchive.h:
2013-11-11 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r155660): box-shadow causes overlay scrollbars to be in the wrong position when element is composited (85647)
https://bugs.webkit.org/show_bug.cgi?id=124090
Reviewed by Beth Dakin.
After r155660 we did fewer layouts, so were left with overlay scrollbars in the
wrong locations because nothing would update them after RenderLayerBacking
computed a new offsetFromRenderer.
First part of the fix is to wean positionOverflowControlsLayers() off of
an absolute offset from the root. Do this by not using Widget::frameRect()
to position the layers, but instead RenderLayer::rectFor{Horizontal|Vertical}Scrollbar
which is what we used to position the scrollbars in the first place.
Second part of the fix is to call positionOverflowControlsLayers() from
RenderLayerBacking::updateGraphicsLayerGeometry() if the offsetFromRenderer
changed.
Test: compositing/overflow/overflow-scrollbar-layer-positions.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::positionOverflowControls):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
* rendering/RenderLayerBacking.h:
2013-11-11 Brent Fulgham <bfulgham@apple.com>
[Win] m_isCompositeFontReference is uninitialized.
https://bugs.webkit.org/show_bug.cgi?id=124170
Reviewed by Tim Horton.
Initialize value to false, as is done in the other constructors for this data type.
* platform/graphics/win/FontPlatformDataCGWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* platform/graphics/win/FontPlatformDataCairoWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
* platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData):
2013-11-11 Myles C. Maxfield <mmaxfield@apple.com>
[Mac] Characters too close together in complex Arabic text
https://bugs.webkit.org/show_bug.cgi?id=124057
Reviewed by Darin Adler.
We weren't updating our total width variable with run's initial
advance information, leading to widths that were too narrow.
In addition, while initial advances for runs that aren't the first
run are accounted for by baking in the initial advances into the
previous character's advance, the initial advance for the first run
has to be accounted for in ComplexTextController::offsetForPosition.
Test: fast/text/complex-grapheme-cluster-with-initial-advance.html
Test: fast/text/selection-in-initial-advance-region.html
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Update
total width variable
(WebCore::ComplexTextController::offsetOfPosition): Account for
the first run's initial advance.
2013-11-11 Brady Eidson <beidson@apple.com>
Make IDBBackingStoreTransaction be RefCounted
https://bugs.webkit.org/show_bug.cgi?id=124168
Reviewed by Tim Horton.
This is necessarily to safely add a fully asynchronous interface into the IDB mechanism.
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBBackingStoreTransactionInterface.h:
* Modules/indexeddb/IDBTransactionBackend.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::createBackingStoreTransaction):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h:
2013-11-11 Antti Koivisto <antti@apple.com>
End of line whitespace should collapse with white-space:pre-wrap; overflow-wrap:break-word in all cases
https://bugs.webkit.org/show_bug.cgi?id=124158
Reviewed by Dave Hyatt.
If a word just fits the line but the following space overflows we fail to collapse whitespaces
at the end of the line. This happens because with break-word we end up taking word breaking
code path that does not have pre-wrap whitespace handling.
This patch makes the behavior consistent and also matches Firefox.
Test: fast/text/break-word-pre-wrap.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::BreakingContext::handleText):
Don't take the word break code path if we are pre-wrap and the current character is space.
Instead proceed to break the line normally as this is a valid break position.
2013-11-11 Bear Travis <betravis@adobe.com>
Web Inspector: [CSS Shapes] Highlight shape-outside when its element is selected in the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=124071
Reviewed by Timothy Hatcher.
Adding code to pass computed shape information (path and bounds) to the Inspector overlay
canvas, and the code to display it. The code creates a path based on ShapeInfo's computed
shape. The shape highlight draws whenever an element is highlighted, via selection in
the Inspector elements view.
Test: inspector-protocol/model/highlight-shape-outside.html
* inspector/InspectorOverlay.cpp:
(WebCore::localPointToRoot): Convert a local point to be relative to the root view.
(WebCore::appendPathCommandAndPoints): Helper for building a single segment's worth
of the overall path.
(WebCore::appendPathSegment): Build a single segment's worth of the overall path.
(WebCore::buildObjectForShapeOutside): Build an object to pass to the Inspector overlay
that represents the shape.
(WebCore::buildObjectForElementInfo): Call buildObjectForShapeOutside and pass the
resulting object along.
* inspector/InspectorOverlayPage.js:
(pathCommand): Draw a single path command.
(drawPath): Draw the overall path.
(_drawShapeHighlight): Draw the highlight for the given shapeInfo.
(drawNodeHighlight): Call _drawShapeHighlight.
* rendering/shapes/PolygonShape.h:
(WebCore::PolygonShape::polygon): Expose the underlying vertex information for a
PolygonShape.
* rendering/shapes/RasterShape.h:
* rendering/shapes/RectangleShape.h:
(WebCore::RectangleShape::logicalRx): Expose the logical radii for a shape.
(WebCore::RectangleShape::logicalRy): Ditto.
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::computedShapePhysicalBoundingBox): The physical bounds of a
shape in renderer coordinates.
(WebCore::ShapeInfo::shapeToRendererPoint): Convert shape coordinates to renderer
coordinates.
(WebCore::ShapeInfo::shapeToRendererSize): Ditto.
(WebCore::ShapeInfo::ShapeInfo):
2013-11-11 Alexey Proskuryakov <ap@apple.com>
Support WebCrypto KeyPair interface
https://bugs.webkit.org/show_bug.cgi?id=124161
Reviewed by Geoffrey Garen.
No new tests yet, will be tested once generateKey is implemented for any RSA algorithms.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
Added new files.
* bindings/js/JSDOMPromise.h: Support returning a key pair via a promise.
* bindings/js/JSCryptoKeyPairCustom.cpp: Added.
(WebCore::JSCryptoKeyPair::visitChildren):
* crypto/CryptoKey.idl:
CryptoKey wrapper is reachable through KeyPair, but it doesn't have (or need)
a back pointer.
* crypto/CryptoKeyPair.cpp: Added.
(WebCore::CryptoKeyPair::CryptoKeyPair):
(WebCore::CryptoKeyPair::~CryptoKeyPair):
* crypto/CryptoKeyPair.h: Added.
(WebCore::CryptoKeyPair::create):
(WebCore::CryptoKeyPair::publicKey):
(WebCore::CryptoKeyPair::privateKey):
* crypto/CryptoKeyPair.idl: Added.
2013-11-11 Nick Diego Yamane <nick.yamane@openbossa.org>
Fix build after r158967
https://bugs.webkit.org/show_bug.cgi?id=124160
Reviewed by Anders Carlsson.
After r158967, gcc debug builds with "-Werror=type-limits" enabled
fail. This patch fixes it.
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::intervalsAt):
2013-11-11 Zan Dobersek <zdobersek@igalia.com>
Remove the OperationsNotDeletable attribute from most of the WebIDL interfaces
https://bugs.webkit.org/show_bug.cgi?id=124151
Reviewed by Geoffrey Garen.
The OperationsNotDeletable attribute currently doesn't have any effect, but will soon enforce
non-configurability of operations on the interface that uses the attribute. Non-configurability
of operations is the default behavior at the moment, but will be changed to follow the WebIDL
specification which requires that the operations are configurable (i.e. -- in JSC terms -- deletable).
IE and Firefox already exhibit this behavior in the majority of cases, while Chrome and Opera don't.
The attribute remains in use on the Location interface to mimic the Unforgeable attribute which
also makes operations of an interface non-configurable. Unforgeable attribute will be used instead
when support for it will be added to the JSC bindings generator.
* Modules/battery/BatteryManager.idl:
* Modules/encryptedmedia/MediaKeySession.idl:
* Modules/encryptedmedia/MediaKeys.idl:
* Modules/gamepad/GamepadList.idl:
* Modules/geolocation/Geolocation.idl:
* Modules/indexeddb/IDBCursor.idl:
* Modules/indexeddb/IDBDatabase.idl:
* Modules/indexeddb/IDBFactory.idl:
* Modules/indexeddb/IDBIndex.idl:
* Modules/indexeddb/IDBKeyRange.idl:
* Modules/indexeddb/IDBObjectStore.idl:
* Modules/indexeddb/IDBTransaction.idl:
* Modules/indexeddb/IDBVersionChangeEvent.idl:
* Modules/mediacontrols/MediaControlsHost.idl:
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediasource/SourceBufferList.idl:
* Modules/mediastream/MediaStream.idl:
* Modules/mediastream/MediaStreamTrack.idl:
* Modules/mediastream/RTCDTMFSender.idl:
* Modules/mediastream/RTCDataChannel.idl:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCStatsReport.idl:
* Modules/mediastream/RTCStatsResponse.idl:
* Modules/networkinfo/NetworkInfoConnection.idl:
* Modules/notifications/Notification.idl:
* Modules/notifications/NotificationCenter.idl:
* Modules/proximity/DeviceProximityEvent.idl:
* Modules/quota/StorageInfo.idl:
* Modules/quota/StorageQuota.idl:
* Modules/speech/SpeechGrammarList.idl:
* Modules/speech/SpeechRecognition.idl:
* Modules/speech/SpeechRecognitionResult.idl:
* Modules/speech/SpeechRecognitionResultList.idl:
* Modules/speech/SpeechSynthesis.idl:
* Modules/webaudio/AnalyserNode.idl:
* Modules/webaudio/AudioBuffer.idl:
* Modules/webaudio/AudioBufferSourceNode.idl:
* Modules/webaudio/AudioContext.idl:
* Modules/webaudio/AudioListener.idl:
* Modules/webaudio/AudioNode.idl:
* Modules/webaudio/AudioParam.idl:
* Modules/webaudio/BiquadFilterNode.idl:
* Modules/webaudio/OscillatorNode.idl:
* Modules/webaudio/PannerNode.idl:
* Modules/webdatabase/Database.idl:
* Modules/webdatabase/DatabaseSync.idl:
* Modules/webdatabase/SQLResultSetRowList.idl:
* Modules/webdatabase/SQLTransaction.idl:
* Modules/webdatabase/SQLTransactionSync.idl:
* Modules/websockets/WebSocket.idl:
* crypto/CryptoKey.idl:
* crypto/SubtleCrypto.idl:
* css/CSSHostRule.idl:
* css/CSSMediaRule.idl:
* css/CSSPrimitiveValue.idl:
* css/CSSRuleList.idl:
* css/CSSStyleDeclaration.idl:
* css/CSSStyleSheet.idl:
* css/CSSSupportsRule.idl:
* css/CSSValueList.idl:
* css/DOMWindowCSS.idl:
* css/FontLoader.idl:
* css/MediaList.idl:
* css/MediaQueryList.idl:
* css/MediaQueryListListener.idl:
* css/StyleMedia.idl:
* css/StyleSheet.idl:
* css/StyleSheetList.idl:
* css/WebKitCSSFilterValue.idl:
* css/WebKitCSSKeyframesRule.idl:
* css/WebKitCSSMatrix.idl:
* css/WebKitCSSTransformValue.idl:
* dom/CharacterData.idl:
* dom/ChildNode.idl:
* dom/ClientRectList.idl:
* dom/Clipboard.idl:
* dom/CompositionEvent.idl:
* dom/CustomEvent.idl:
* dom/DOMCoreException.idl:
* dom/DOMImplementation.idl:
* dom/DOMNamedFlowCollection.idl:
* dom/DOMStringList.idl:
* dom/DOMStringMap.idl:
* dom/DataTransferItem.idl:
* dom/DataTransferItemList.idl:
* dom/DeviceMotionEvent.idl:
* dom/DeviceOrientationEvent.idl:
* dom/Document.idl:
* dom/DocumentFragment.idl:
* dom/DocumentType.idl:
* dom/Element.idl:
* dom/Event.idl:
* dom/EventException.idl:
* dom/EventListener.idl:
* dom/EventTarget.idl:
* dom/HashChangeEvent.idl:
* dom/KeyboardEvent.idl:
* dom/MessageEvent.idl:
* dom/MessagePort.idl:
* dom/MouseEvent.idl:
* dom/MutationEvent.idl:
* dom/MutationObserver.idl:
* dom/NamedNodeMap.idl:
* dom/Node.idl:
* dom/NodeFilter.idl:
* dom/NodeIterator.idl:
* dom/NodeList.idl:
* dom/Range.idl:
* dom/RangeException.idl:
* dom/ShadowRoot.idl:
* dom/Text.idl:
* dom/TextEvent.idl:
* dom/TouchEvent.idl:
* dom/TouchList.idl:
* dom/TreeWalker.idl:
* dom/UIEvent.idl:
* dom/WebKitNamedFlow.idl:
* dom/WheelEvent.idl:
* fileapi/Blob.idl:
* fileapi/FileException.idl:
* fileapi/FileList.idl:
* fileapi/FileReader.idl:
* fileapi/FileReaderSync.idl:
* html/DOMFormData.idl:
* html/DOMSettableTokenList.idl:
* html/DOMTokenList.idl:
* html/DOMURL.idl:
* html/HTMLAllCollection.idl:
* html/HTMLAnchorElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLCanvasElement.idl:
* html/HTMLCollection.idl:
* html/HTMLDocument.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLFormControlsCollection.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLKeygenElement.idl:
* html/HTMLMarqueeElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptionsCollection.idl:
* html/HTMLOutputElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLVideoElement.idl:
* html/MediaController.idl:
* html/RadioNodeList.idl:
* html/TimeRanges.idl:
* html/canvas/CanvasGradient.idl:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/DOMPath.idl:
* html/canvas/EXTDrawBuffers.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLLoseContext.idl:
* html/canvas/WebGLRenderingContext.idl:
* html/track/AudioTrackList.idl:
* html/track/TextTrack.idl:
* html/track/TextTrackCue.idl:
* html/track/TextTrackCueList.idl:
* html/track/TextTrackList.idl:
* html/track/TextTrackRegionList.idl:
* html/track/VideoTrackList.idl:
* loader/appcache/DOMApplicationCache.idl:
* page/Console.idl:
* page/Crypto.idl:
* page/DOMSecurityPolicy.idl:
* page/DOMSelection.idl:
* page/DOMWindow.idl:
* page/EventSource.idl:
* page/History.idl:
* page/Navigator.idl:
* page/Performance.idl:
* page/PerformanceEntryList.idl:
* page/SpeechInputResultList.idl:
* page/WindowBase64.idl:
* page/WindowTimers.idl:
* plugins/DOMMimeTypeArray.idl:
* plugins/DOMPlugin.idl:
* plugins/DOMPluginArray.idl:
* storage/Storage.idl:
* storage/StorageEvent.idl:
* svg/SVGAngle.idl:
* svg/SVGAnimationElement.idl:
* svg/SVGColor.idl:
* svg/SVGCursorElement.idl:
* svg/SVGDocument.idl:
* svg/SVGElement.idl:
* svg/SVGElementInstanceList.idl:
* svg/SVGException.idl:
* svg/SVGFEDropShadowElement.idl:
* svg/SVGFEGaussianBlurElement.idl:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGFilterElement.idl:
* svg/SVGGraphicsElement.idl:
* svg/SVGLength.idl:
* svg/SVGLengthList.idl:
* svg/SVGMarkerElement.idl:
* svg/SVGMaskElement.idl:
* svg/SVGMatrix.idl:
* svg/SVGNumberList.idl:
* svg/SVGPaint.idl:
* svg/SVGPathElement.idl:
* svg/SVGPathSegList.idl:
* svg/SVGPatternElement.idl:
* svg/SVGPoint.idl:
* svg/SVGPointList.idl:
* svg/SVGSVGElement.idl:
* svg/SVGStringList.idl:
* svg/SVGTests.idl:
* svg/SVGTextContentElement.idl:
* svg/SVGTransform.idl:
* svg/SVGTransformList.idl:
* workers/DedicatedWorkerGlobalScope.idl:
* workers/Worker.idl:
* workers/WorkerGlobalScope.idl:
* workers/WorkerLocation.idl:
* xml/DOMParser.idl:
* xml/XMLHttpRequest.idl:
* xml/XMLHttpRequestException.idl:
* xml/XMLHttpRequestUpload.idl:
* xml/XMLSerializer.idl:
* xml/XPathEvaluator.idl:
* xml/XPathException.idl:
* xml/XPathExpression.idl:
* xml/XPathNSResolver.idl:
* xml/XPathResult.idl:
* xml/XSLTProcessor.idl:
2013-11-11 Javier Fernandez <jfernandez@igalia.com>
[CSS Regions] Selection focusNode set to the "region" block, instead of the "source" block
https://bugs.webkit.org/show_bug.cgi?id=120769
Reviewed by David Hyatt.
When a point hits a Region block, current positionForPoint algorithm determines its
position in the DOM and returns either the start or end offset for such block, since
Region blocks have no children in the DOM.
It's necessary to map the point into Flow Thread coordinates in order to determine
the DOM position of the specific element rendered by the Region.
Top margin, padding and border points should be mapped to the beginning of the Region
block, while bottom points are mapped to the block end. The Left coordinate its just
adjusted to fit in the Flow Thread boundaries, since its not affected by the Flow
direction.
Besides, when inspecting the Flow Thread blocks looking for the last candidate box,
the Region originally associated to the point might be taken into account. Only the
blocks/boxes rendered by the Region are potential candidates.
Tests: fast/regions/selection/position-for-point-1-vert-lr.html
fast/regions/selection/position-for-point-1-vert-rl.html
fast/regions/selection/position-for-point-1.html
fast/regions/selection/position-for-point-vert-lr.html
fast/regions/selection/position-for-point-vert-rl.html
fast/regions/selection/position-for-point.html
* rendering/RenderBlock.cpp:
(WebCore::isChildHitTestCandidate):
(WebCore::RenderBlock::positionForPoint):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::positionForPoint): Added.
It just redirects the call to the associated RenderNamedFlowFragment instance.
* rendering/RenderBlockFlow.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::mapRegionPointIntoFlowThreadCoordinates): Added.
It performs the coordinates mapping.
(WebCore::RenderRegion::positionForPoint): Added.
It determines the corresponding LayoutPoint in the FlowThread the Region
is associated to, forwarding the call to the RenderBlock class using the
FlowThread's first child block and such new point.
* rendering/RenderRegion.h:
2013-11-11 Gergo Balogh <geryxyz@inf.u-szeged.hu>
[curl] Remove unused includes.
https://bugs.webkit.org/show_bug.cgi?id=120415
Reviewed by Csaba Osztrogonác.
Original patch by 2013-08-28 Tamas Czene <tczene@inf.u-szeged.hu>
* platform/network/curl/ProxyServerCurl.cpp:
* platform/network/curl/ResourceHandleCurl.cpp:
* platform/network/curl/ResourceHandleManager.cpp:
2013-11-11 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r159027 to make Apple Windows build happy.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::sharedBufferGetBytesAtPosition):
2013-11-11 Andreas Kling <akling@apple.com>
Kill InlineFlowBox::rendererLineBoxes().
<https://webkit.org/b/124141>
We only ever used this to access the RenderLineBoxList for non-root
boxes, and those always have a RenderInline renderer.
Tighten things up by losing the virtual rendererLineBoxes() and
calling RenderInline::lineBoxes() directly.
Reviewed by Antti Koivisto.
2013-11-11 Andreas Kling <akling@apple.com>
Bring the LineFragmentationData back to RootInlineBox.
<https://webkit.org/b/124136>
Now that we have the simple line layout path, almost all the root
line boxes end up with some kind of fragmentation data, so we might
as well put the members back on RootInlineBox and avoid the extra
allocation (and indirection.)
1.74 MB progression on HTML5 spec at <http://whatwg.org/c>
Reviewed by Antti Koivisto.
2013-11-10 Andreas Kling <akling@apple.com>
Shrink RenderInline.
<https://webkit.org/b/124134>
Move the "always create line boxes" bit from RenderInline up to
RenderElement. I didn't do this earlier because there were no bits
free on RenderObject but thanks to RenderElement we now have tons!
540 kB progression on HTML5 spec at <http://whatwg.org/c>
Reviewed by Anders Carlsson.
2013-11-10 Sam Weinig <sam@webkit.org>
Make childShouldCreateRenderer() take a Node reference
https://bugs.webkit.org/show_bug.cgi?id=124132
Reviewed by Andreas Kling.
The Node passed to childShouldCreateRenderer() is never null.
2013-11-10 Frédéric Wang <fred.wang@free.fr>
CSS direction must be reset to ltr on <math> element.
<https://webkit.org/b/124121>
Reviewed by Darin Adler.
Test: mathml/presentation/direction.html
* css/mathml.css:
(math): set direction: ltr; on the <math> element.
2013-11-10 Sam Weinig <sam@webkit.org>
Reduce the size of RenderBlockFlow by making its rare data inherit from RenderBlockRareData
https://bugs.webkit.org/show_bug.cgi?id=124124
Reviewed by Anders Carlsson.
Reduce RenderBlockFlow by one word.
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
* rendering/RenderBlockFlow.h:
2013-11-10 Antti Koivisto <antti@apple.com>
Use start/end instead of textOffset/textLength for simple text runs
https://bugs.webkit.org/show_bug.cgi?id=124130
Reviewed by Oliver Hunt.
The code reads better this way.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::createTextRuns):
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
* rendering/SimpleLineLayoutFunctions.h:
(WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
(WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
(WebCore::SimpleLineLayout::containsTextCaretOffset):
(WebCore::SimpleLineLayout::isTextRendered):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::text):
2013-11-10 Antti Koivisto <antti@apple.com>
Implement white-space property on simple line layout path
https://bugs.webkit.org/show_bug.cgi?id=124122
Reviewed by Andreas Kling.
Support all values of the white-space property and the tab-size property.
Tests: fast/forms/basic-textareas-simple-lines.html
fast/text/embed-at-end-of-pre-wrap-line-simple-lines.html
fast/text/whitespace/pre-wrap-line-test-simple-lines.html
fast/text/whitespace/pre-wrap-long-word-simple-lines.html
fast/text/whitespace/pre-wrap-spaces-after-newline-simple-lines.html
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::isWhitespace):
(WebCore::SimpleLineLayout::skipWhitespaces):
(WebCore::SimpleLineLayout::textWidth):
(WebCore::SimpleLineLayout::measureWord):
(WebCore::SimpleLineLayout::createTextRuns):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintDebugBorders):
(WebCore::SimpleLineLayout::paintFlow):
2013-11-10 Sergio Correia <sergio.correia@openbossa.org>
Fix EFL build after r159027
https://bugs.webkit.org/show_bug.cgi?id=124127
Reviewed by Anders Carlsson.
No new tests, build fix.
* page/Settings.in: Add std to numeric_limits, since we don't have
'using std' directives anymore.
2013-11-10 Anders Carlsson <andersca@apple.com>
Fix build.
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::computeColumnCountAndWidth):
(WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
2013-11-10 Anders Carlsson <andersca@apple.com>
Remove all 'std' using directives from WebCore
https://bugs.webkit.org/show_bug.cgi?id=124125
Reviewed by Sam Weinig.
As per the coding style guidelines.
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCache::appendEntry):
(WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
* loader/WorkerThreadableLoader.cpp:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCache):
* loader/appcache/ManifestParser.cpp:
(WebCore::parseManifest):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::deadCapacity):
(WebCore::MemoryCache::lruListFor):
* page/CaptionUserPreferencesMediaAF.cpp:
* page/Chrome.cpp:
* page/DOMTimer.cpp:
(WebCore::DOMTimer::intervalClampedToMinimum):
* page/FocusController.cpp:
* page/Frame.cpp:
(WebCore::Frame::resizePageRectsKeepingRatio):
* page/PageGroupLoadDeferrer.cpp:
* page/Settings.cpp:
* page/animation/AnimationBase.cpp:
(WebCore::solveStepsFunction):
(WebCore::AnimationBase::fireAnimationEventsIfNeeded):
(WebCore::AnimationBase::timeToNextService):
(WebCore::AnimationBase::fractionalTime):
(WebCore::AnimationBase::getTimeToNextEvent):
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
* platform/DateComponents.cpp:
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::handleWheelEvent):
* platform/ScrollView.cpp:
(WebCore::ScrollView::unscaledVisibleContentSize):
(WebCore::ScrollView::setScrollOffset):
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::scrollContents):
* platform/Scrollbar.cpp:
(WebCore::Scrollbar::moveThumb):
* platform/ScrollbarThemeComposite.cpp:
(WebCore::usedTotalSize):
(WebCore::ScrollbarThemeComposite::thumbPosition):
(WebCore::ScrollbarThemeComposite::thumbLength):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::copyBufferAndClear):
(WebCore::SharedBuffer::getSomeData):
* platform/ThreadTimers.cpp:
(WebCore::ThreadTimers::updateSharedTimer):
* platform/Timer.cpp:
(WebCore::TimerHeapLessThanFunction::operator()):
(WebCore::TimerBase::heapPop):
(WebCore::TimerBase::nextUnalignedFireInterval):
* platform/URL.cpp:
(WebCore::findHostnamesInMailToURL):
(WebCore::portAllowed):
* platform/audio/AudioResampler.cpp:
(WebCore::AudioResampler::setRate):
* platform/audio/AudioResamplerKernel.cpp:
(WebCore::AudioResamplerKernel::process):
* platform/audio/Distance.cpp:
(WebCore::DistanceEffect::gain):
* platform/audio/DynamicsCompressorKernel.cpp:
(WebCore::DynamicsCompressorKernel::process):
* platform/audio/EqualPowerPanner.cpp:
(WebCore::EqualPowerPanner::pan):
* platform/audio/HRTFDatabase.cpp:
(WebCore::HRTFDatabase::indexFromElevationAngle):
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::createForSubject):
* platform/audio/HRTFKernel.cpp:
(WebCore::HRTFKernel::HRTFKernel):
(WebCore::HRTFKernel::createInterpolatedKernel):
* platform/audio/HRTFPanner.cpp:
(WebCore::HRTFPanner::calculateDesiredAzimuthIndexAndBlend):
* platform/audio/Reverb.cpp:
* platform/audio/SincResampler.cpp:
(WebCore::SincResampler::process):
* platform/cf/URLCF.cpp:
* platform/graphics/Color.cpp:
(WebCore::makeRGB):
(WebCore::makeRGBA):
(WebCore::colorFloatToRGBAByte):
(WebCore::Color::light):
(WebCore::Color::dark):
* platform/graphics/CrossfadeGeneratedImage.cpp:
* platform/graphics/FloatQuad.cpp:
(WebCore::min4):
(WebCore::max4):
(WebCore::withinEpsilon):
* platform/graphics/FloatSize.cpp:
(WebCore::FloatSize::isZero):
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::floatWidthForSimpleText):
* platform/graphics/FontPlatformData.cpp:
* platform/graphics/GraphicsContext.cpp:
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::Radii::expand):
* platform/graphics/ShadowBlur.cpp:
(WebCore::calculateLobes):
(WebCore::computeSliceSizesFromRadii):
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::initCharWidths):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator):
(WebCore::WidthIterator::advanceInternal):
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCue):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setOpacity):
(WebCore::GraphicsLayerCA::setNeedsDisplay):
(WebCore::GraphicsLayerCA::setupAnimation):
(WebCore::clampedContentsScaleForScale):
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::getTileIndexRangeForRect):
(WebCore::TileController::computeTileCoverageRect):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::computeLineBoundsAndAntialiasingModeForText):
* platform/graphics/cg/ImageBufferCG.cpp:
* platform/graphics/cg/ImageBufferDataCG.cpp:
(WebCore::ImageBufferData::getData):
* platform/graphics/cg/ImageSourceCG.cpp:
* platform/graphics/filters/FEDropShadow.cpp:
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::boxBlur):
(WebCore::FEGaussianBlur::platformApplyGeneric):
(WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
(WebCore::FEGaussianBlur::calculateStdDeviation):
* platform/graphics/gpu/Texture.cpp:
(WebCore::Texture::updateSubRect):
* platform/graphics/gpu/TilingData.cpp:
(WebCore::computeNumTiles):
(WebCore::TilingData::tileXIndexFromSrcCoord):
(WebCore::TilingData::tileYIndexFromSrcCoord):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::ComplexTextController):
(WebCore::ComplexTextController::offsetForPosition):
(WebCore::ComplexTextController::advance):
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::floatWidthForComplexText):
* platform/graphics/mac/FontMac.mm:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::duration):
* platform/graphics/mac/SimpleFontDataMac.mm:
* platform/graphics/transforms/Matrix3DTransformOperation.cpp:
* platform/graphics/transforms/MatrixTransformOperation.cpp:
* platform/graphics/transforms/PerspectiveTransformOperation.cpp:
* platform/graphics/transforms/RotateTransformOperation.cpp:
* platform/graphics/transforms/TransformOperations.cpp:
(WebCore::TransformOperations::blendByMatchingOperations):
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::clampEdgeValue):
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::adjustScrollPositionIfNecessary):
* platform/mac/ScrollViewMac.mm:
(WebCore::ScrollView::platformSetContentsSize):
(WebCore::ScrollView::platformSetScrollPosition):
* platform/mac/ScrollbarThemeMac.mm:
* platform/mac/ThemeMac.mm:
* platform/mac/WebVideoFullscreenHUDWindowController.mm:
(-[WebVideoFullscreenHUDWindowController incrementVolume]):
(timeToString):
* platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::copyData):
* platform/network/ResourceRequestBase.cpp:
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::parseCacheControlDirectives):
* platform/network/cf/ResourceResponseCFNet.cpp:
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::initNSURLResponse):
* platform/text/TextBreakIteratorICU.cpp:
(WebCore::textClone):
(WebCore::textLatin1MoveInPrimaryContext):
(WebCore::textLatin1MoveInPriorContext):
(WebCore::textInChunkOrOutOfRange):
(WebCore::textOpenLatin1):
(WebCore::textUTF16MoveInPrimaryContext):
(WebCore::textUTF16MoveInPriorContext):
(WebCore::textOpenUTF16):
* platform/text/TextCodecUTF16.cpp:
(WebCore::TextCodecUTF16::encode):
* platform/text/TextCodecUTF8.cpp:
(WebCore::TextCodecUTF8::encode):
* platform/text/TextStream.cpp:
* platform/text/mac/LocaleMac.mm:
* platform/text/mac/TextCodecMac.cpp:
(WebCore::TextCodecMac::decode):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
(WebCore::AutoTableLayout::applyPreferredLogicalWidthQuirks):
(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
(WebCore::AutoTableLayout::layout):
* rendering/FixedTableLayout.cpp:
(WebCore::FixedTableLayout::applyPreferredLogicalWidthQuirks):
* rendering/FloatingObjects.cpp:
(WebCore::FindNextFloatLogicalBottomAdapter::collectIfNeeded):
(WebCore::FloatingObjects::logicalRightOffsetForPositioningFloat):
(WebCore::FloatingObjects::logicalRightOffset):
* rendering/InlineBox.cpp:
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
(WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
(WebCore::InlineFlowBox::computeMaxLogicalTop):
(WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
(WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
(WebCore::InlineFlowBox::addTextBoxVisualOverflow):
(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::constrainToLineTopAndBottomIfNeeded):
(WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
(WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):
(WebCore::InlineFlowBox::collectLeafBoxesInLogicalOrder):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::isSelected):
(WebCore::InlineTextBox::localSelectionRect):
(WebCore::InlineTextBox::placeEllipsisBox):
(WebCore::InlineTextBox::applyShadowToGraphicsContext):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::selectionStartEnd):
(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::computeUnderlineOffset):
(WebCore::InlineTextBox::paintDecoration):
(WebCore::InlineTextBox::paintDocumentMarker):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::computeRectForReplacementMarker):
(WebCore::InlineTextBox::paintCompositionUnderline):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
(WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats):
(WebCore::RenderBlock::paintChild):
(WebCore::RenderBlock::blockSelectionGap):
(WebCore::RenderBlock::logicalLeftSelectionGap):
(WebCore::RenderBlock::logicalRightSelectionGap):
(WebCore::RenderBlock::calcColumnWidth):
(WebCore::RenderBlock::adjustRectForColumns):
(WebCore::RenderBlock::computeIntrinsicLogicalWidths):
(WebCore::RenderBlock::computePreferredLogicalWidths):
(WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns):
(WebCore::updatePreferredWidth):
(WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::clearFloats):
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::collapseMargins):
(WebCore::RenderBlockFlow::clearFloatsIfNeeded):
(WebCore::RenderBlockFlow::marginBeforeEstimateForChild):
(WebCore::RenderBlockFlow::estimateLogicalTopPosition):
(WebCore::RenderBlockFlow::setCollapsedBottomMargin):
(WebCore::RenderBlockFlow::handleAfterSideOfBlock):
(WebCore::calculateMinimumPageHeight):
(WebCore::RenderBlockFlow::adjustLinePositionForPagination):
(WebCore::RenderBlockFlow::removeFloatingObject):
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
(WebCore::RenderBlockFlow::positionNewFloats):
(WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
(WebCore::RenderBlockFlow::addOverhangingFloats):
(WebCore::RenderBlockFlow::getClearDelta):
(WebCore::RenderBlockFlow::adjustForBorderFit):
(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):
(WebCore::RenderBlockFlow::updateLogicalHeight):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlockFlow::relayoutForPagination):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::updateLogicalWidthForLeftAlignedBlock):
(WebCore::updateLogicalWidthForRightAlignedBlock):
(WebCore::updateLogicalWidthForCenterAlignedBlock):
(WebCore::setLogicalWidthForTextRun):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::layoutLineBoxes):
(WebCore::RenderBlockFlow::checkFloatsInCleanLine):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):
(WebCore::tryHyphenating):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrollWidth):
(WebCore::RenderBox::scrollHeight):
(WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax):
(WebCore::RenderBox::constrainLogicalHeightByMinMax):
(WebCore::RenderBox::constrainContentBoxLogicalHeightByMinMax):
(WebCore::RenderBox::adjustBorderBoxLogicalWidthForBoxSizing):
(WebCore::RenderBox::adjustBorderBoxLogicalHeightForBoxSizing):
(WebCore::RenderBox::adjustContentBoxLogicalWidthForBoxSizing):
(WebCore::RenderBox::adjustContentBoxLogicalHeightForBoxSizing):
(WebCore::RenderBox::repaintLayerRectsForImage):
(WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
(WebCore::RenderBox::containingBlockLogicalWidthForContentInRegion):
(WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
(WebCore::RenderBox::computeInlineDirectionMargins):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth):
(WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::computePositionedLogicalWidthUsing):
(WebCore::RenderBox::computePositionedLogicalHeightUsing):
(WebCore::RenderBox::applyVisualEffectOverflow):
(WebCore::RenderBox::addLayoutOverflow):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateFillTileSize):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment):
(WebCore::RenderBoxModelObject::paintNinePieceImage):
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::calculateAdjustedInnerBorder):
(WebCore::RenderBoxModelObject::paintBoxShadow):
(WebCore::RenderBoxModelObject::localCaretRectForEmptyElement):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::FlexBoxIterator::next):
(WebCore::RenderDeprecatedFlexibleBox::computeIntrinsicLogicalWidths):
(WebCore::RenderDeprecatedFlexibleBox::computePreferredLogicalWidths):
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::maxFilenameWidth):
(WebCore::RenderFileUploadControl::computeIntrinsicLogicalWidths):
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::setImageSizeForAltText):
* rendering/RenderInline.cpp:
(WebCore::computeMargin):
(WebCore::RenderInline::linesVisualOverflowBoundingBox):
(WebCore::RenderInline::paintOutline):
(WebCore::RenderInline::paintOutlineForLine):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clampScrollOffset):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::visibleContentRect):
(WebCore::RenderLayer::updateScrollbarsAfterLayout):
(WebCore::RenderLayer::hitTestOverflowControls):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::calculateLayerBounds):
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerModelObject.cpp:
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::rangeIntersectsRect):
(WebCore::RenderLineBoxList::anyLineIntersectsRect):
(WebCore::RenderLineBoxList::lineIntersectsDirtyRect):
(WebCore::RenderLineBoxList::paint):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::updateFromElement):
(WebCore::RenderListBox::layout):
(WebCore::RenderListBox::computePreferredLogicalWidths):
(WebCore::RenderListBox::size):
(WebCore::RenderListBox::numVisibleItems):
(WebCore::RenderListBox::panScroll):
(WebCore::RenderListBox::scrollHeight):
* rendering/RenderListItem.cpp:
* rendering/RenderListMarker.cpp:
* rendering/RenderMarquee.cpp:
(WebCore::RenderMarquee::marqueeSpeed):
(WebCore::RenderMarquee::computePosition):
(WebCore::RenderMarquee::timerFired):
* rendering/RenderMediaControls.cpp:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::updateOptionsWidth):
(WebCore::RenderMenuList::computeIntrinsicLogicalWidths):
(WebCore::RenderMenuList::computePreferredLogicalWidths):
* rendering/RenderMeter.cpp:
* rendering/RenderMultiColumnBlock.cpp:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::heightAdjustedForSetOffset):
(WebCore::RenderMultiColumnSet::calculateBalancedHeight):
(WebCore::RenderMultiColumnSet::updateLogicalWidth):
* rendering/RenderNamedFlowFragment.cpp:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
(WebCore::RenderObject::caretMaxOffset):
* rendering/RenderProgress.cpp:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
(WebCore::RenderReplaced::computeReplacedLogicalWidth):
(WebCore::RenderReplaced::computePreferredLogicalWidths):
* rendering/RenderRubyBase.cpp:
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::getOverhang):
* rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::adjustInlineDirectionLineBounds):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::computeScrollbarWidth):
(WebCore::RenderScrollbarPart::computeScrollbarHeight):
* rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::computeControlLogicalHeight):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::updateLogicalWidth):
(WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
(WebCore::RenderTable::layout):
(WebCore::RenderTable::computePreferredLogicalWidths):
(WebCore::RenderTable::calcBorderStart):
(WebCore::RenderTable::calcBorderEnd):
(WebCore::RenderTable::outerBorderBefore):
(WebCore::RenderTable::outerBorderAfter):
(WebCore::RenderTable::outerBorderStart):
(WebCore::RenderTable::outerBorderEnd):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::parseColSpanFromDOM):
(WebCore::RenderTableCell::parseRowSpanFromDOM):
(WebCore::RenderTableCell::logicalWidthFromColumns):
(WebCore::RenderTableCell::computePreferredLogicalWidths):
(WebCore::RenderTableCell::layout):
(WebCore::RenderTableCell::setOverrideLogicalContentHeightFromRowHeight):
(WebCore::RenderTableCell::clippedOverflowRectForRepaint):
(WebCore::RenderTableCell::alignLeftRightBorderPaintRect):
(WebCore::RenderTableCell::alignTopBottomBorderPaintRect):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::ensureRows):
(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows):
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::firstLineBaseline):
(WebCore::RenderTableSection::removeCachedCollapsedBorders):
(WebCore::RenderTableSection::setCachedCollapsedBorder):
(WebCore::RenderTableSection::cachedCollapsedBorder):
* rendering/RenderText.cpp:
(WebCore::makeCapitalized):
(WebCore::RenderText::absoluteRectsForRange):
(WebCore::RenderText::absoluteQuadsForRange):
(WebCore::maxWordFragmentWidth):
(WebCore::RenderText::computePreferredLogicalWidths):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::computePreferredLogicalWidths):
* rendering/RenderTextControlSingleLine.cpp:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):
(WebCore::RenderThemeMac::paintMenuListButton):
* rendering/RenderWidget.cpp:
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::alignBoxesInBlockDirection):
(WebCore::RootInlineBox::beforeAnnotationsAdjustment):
(WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):
(WebCore::RootInlineBox::blockDirectionPointInLine):
(WebCore::RootInlineBox::paddedLayoutOverflowRect):
(WebCore::setAscentAndDescent):
(WebCore::RootInlineBox::ascentAndDescentForBox):
* rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::layout):
* rendering/style/RenderStyle.cpp:
(WebCore::calcConstraintScaleFor):
(WebCore::RenderStyle::setFontSize):
(WebCore::RenderStyle::getShadowExtent):
(WebCore::RenderStyle::getShadowInsetExtent):
(WebCore::RenderStyle::getShadowHorizontalExtent):
(WebCore::RenderStyle::getShadowVerticalExtent):
* rendering/style/SVGRenderStyle.cpp:
* rendering/style/ShadowData.cpp:
(WebCore::calculateShadowExtent):
* rendering/svg/RenderSVGResourceFilter.cpp:
* rendering/svg/RenderSVGRoot.cpp:
* rendering/svg/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::localSelectionRect):
* svg/SVGAnimatedNumber.cpp:
* svg/SVGAnimatedNumberOptionalNumber.cpp:
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::startTimer):
(WebCore::SMILTimeContainer::updateAnimations):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::simpleDuration):
(WebCore::SVGSMILElement::repeatingDuration):
(WebCore::SVGSMILElement::resolveActiveEnd):
(WebCore::SVGSMILElement::resolveInterval):
(WebCore::SVGSMILElement::resolveFirstInterval):
(WebCore::SVGSMILElement::resolveNextInterval):
(WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
* xml/XMLTreeViewer.cpp:
* xml/parser/XMLDocumentParser.cpp:
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::OffsetBuffer::readOutBytes):
2013-11-10 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[AX] Clean up static_cast<> to cast from AccessibilityObject
https://bugs.webkit.org/show_bug.cgi?id=124032
Reviewed by Mario Sanchez Prada.
ACCESSIBILITY_OBJECT_TYPE_CASTS can support more helpful casting functions.
So, we need to use them as much as possible. This patch cleans up all static_cast<> in accessibility.
This patch generates toAccessibilityFoo() in order to replace static_cast<> with it. Below toAccessibilityFoo()
are generated.
- toAccessibilityARIAGridRow()
- toAccessibilityImageMapLink()
- toAccessibilityListBox()
- toAccessibilityListBoxOption()
- toAccessibilityMenuListOption()
- toAccessibilityMenuListPopup()
- toAccessibilityScrollbar()
- toAccessibilitySlider()
No new tests, no behavior changes.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::focusedImageMapUIElement):
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityImageMapLink.h:
* accessibility/AccessibilityListBox.cpp:
(WebCore::AccessibilityListBox::setSelectedChildren):
(WebCore::AccessibilityListBox::selectedChildren):
(WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
* accessibility/AccessibilityListBox.h:
* accessibility/AccessibilityListBoxOption.h:
* accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::addChildren):
(WebCore::AccessibilityMenuList::didUpdateActiveOption):
* accessibility/AccessibilityMenuListOption.h:
* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
* accessibility/AccessibilityMenuListPopup.h:
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isListBoxOption):
(WebCore::AccessibilityObject::isSliderThumb):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::getDocumentLinks):
(WebCore::AccessibilityRenderObject::addImageMapChildren):
(WebCore::AccessibilityRenderObject::addTextFieldChildren):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addChildScrollbar):
* accessibility/AccessibilityScrollbar.h:
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::addChildren):
* accessibility/AccessibilitySlider.h:
* accessibility/AccessibilitySpinButton.cpp:
(WebCore::AccessibilitySpinButton::addChildren):
* accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
(webkitAccessibleSelectionClearSelection):
(webkitAccessibleSelectionSelectAllSelection):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::didUpdateActiveOption):
2013-11-10 Andreas Kling <akling@apple.com>
Rebaseline bindings tests after r158997.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2013-11-10 Brendan Long <b.long@cablelabs.com>
[GStreamer] Consolidate more code into TrackPrivateBaseGStreamer
https://bugs.webkit.org/show_bug.cgi?id=124020
Reviewed by Philippe Normand.
No new tests because this is just refactoring.
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer): Don't pass playbin to TrackPrivateBaseGStreamer, and do pass a pointer to "this".
(WebCore::AudioTrackPrivateGStreamer::disconnect): Clear m_playbin().
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h: Move labelChanged() and languageChanged() to TrackPrivateBaseGStreamer. Move m_playbin to this class (along with disconnect() to clear it).
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: Move tag handling, pad and index to TrackPrivateBaseGStreamer.
(WebCore::textTrackPrivateEventCallback):
(WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer):
(WebCore::InbandTextTrackPrivateGStreamer::disconnect):
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/TextCombinerGStreamer.cpp: Add WebKitTextCombinerPad with "tags" property, set in the same was as input-selector's pads.
(webkit_text_combiner_pad_init): Initialize tags to 0.
(webkitTextCombinerPadFinalize): Clear tags.
(webkitTextCombinerPadGetProperty): Handling "tags" property.
(webkitTextCombinerPadEvent): Changed to be a pad event function instead of a pad probe, and now intercepts tags and merges them (like input-selector pads do).
(webkitTextCombinerRequestNewPad): Using WebKitTextCombinerPad instead of just GhostPad.
(webkit_text_combiner_pad_class_init): Setup WebKitTextCombinerPad.
* platform/graphics/gstreamer/TextCombinerGStreamer.h: Remove superfluous code.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer): Use "notify::active" so we don't need a playbin, and immediately check for tags after the constructor.
(WebCore::TrackPrivateBaseGStreamer::disconnect): Remove m_playbin.
(WebCore::TrackPrivateBaseGStreamer::getTag): Refactored out from notifyTrackOfTagsChanged.
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Simplify using m_owner (so we can call labelChanged() and languageChanged() directly), and use getTag() above.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Add m_owner to we can access the owning track, and change some functions to match our needs better.
(WebCore::TrackPrivateBaseGStreamer::setActive): Add empty default since InbandTextTrackPrivateGStreamer doesn't need this.
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp: Same as AudioTrackPrivateGStreamer.
(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):
(WebCore::VideoTrackPrivateGStreamer::disconnect):
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h: Same as AudioTrackPrivateGStreamer.
2013-11-10 Andreas Kling <akling@apple.com>
Generate type casting helpers for Widget classes.
<https://webkit.org/b/124120>
Add a WIDGET_TYPE_CASTS macro and replace all the hand-written
toFoo() helpers we had for Widget subclasses. Fixed up a handful
of places that were still using static_cast.
Reviewed by Antti Koivisto.
2013-11-10 Andreas Kling <akling@apple.com>
Remove unused FragmentationDisabler class.
<https://webkit.org/b/124118>
This RAII object was added in r144744 to avoid a crash when using
MathML inside CSS regions. Its only user was removed in r157070.
Reviewed by Antti Koivisto.
2013-11-10 Andreas Kling <akling@apple.com>
Simplify some is-this-a-MathML-element? checks.
<https://webkit.org/b/124119>
As of r158198, the MathML-ness of an Element is determined by
a Node flag, so there's no need to cast to Element before checking
on this. Simplify accordingly.
Reviewed by Antti Koivisto.
2013-11-10 Andreas Kling <akling@apple.com>
Remove RenderTheme::shouldOpenPickerWithF4Key().
Rubber-stamped by Anders Carlsson.
2013-11-09 Andreas Kling <akling@apple.com>
CSSValuePool::createFontFamilyValue() should return PassRef.
<https://webkit.org/b/124114>
Unlike createFontFaceValue(), createFontFamilyValue() can never
fail to return an object and thus should return PassRef.
Reviewed by Anders Carlsson.
2013-11-09 Andreas Kling <akling@apple.com>
RenderIFrame should display its name correctly in DRT output.
<https://webkit.org/b/124117>
Nuke an age-old FIXME about making RenderIFrame show its true name
in DRT output. No more "RenderPartObject {IFRAME}"!
Reviewed by Anders Carlsson.
2013-11-09 Andreas Kling <akling@apple.com>
SVGTextMetricsBuilder::walkTree() should take a RenderElement.
<https://webkit.org/b/124105>
Make walkTree() take a RenderElement so we can use the non-virtual
firstChild() internally. All call sites had pointers to compatible
objects already.
Reviewed by Anders Carlsson.
2013-11-09 Andreas Kling <akling@apple.com>
RenderMathMLFenced should pass around operators in tighter types.
<https://webkit.org/b/124115>
Store operator renderers in RenderMathMLOperator pointers instead
of passing them around as RenderObject.
Reviewed by Martin Robinson.
2013-11-09 Andreas Kling <akling@apple.com>
Use RENDER_OBJECT_TYPE_CASTS for more types.
<https://webkit.org/b/124112>
Generate toRenderFoo() type casting helpers for these classes:
- RenderCombineText
- RenderDetailsMarker
- RenderListMarker
- RenderVideo
- RenderView
Reviewed by Anders Carlsson.
2013-11-09 Andreas Kling <akling@apple.com>
Move MathML type checking virtuals to RenderObject.
<https://webkit.org/b/124111>
Previously, checking the type of a MathML renderer would require
that you first check if it's a RenderMathMLBlock, and then casting
to that type to access the check you really wanted.
This change moves all the isRenderMathMLFoo() virtual functions
to RenderObject. I also made sure all the overloads were private
and marked them OVERRIDE/FINAL as appropriate.
Finally I replaced all the hand-written casting functions with
autogenerated ones using RENDER_OBJECT_TYPE_CASTS.
Reviewed by Anders Carlsson.
2013-11-09 Martin Robinson <mrobinson@igalia.com>
[MathML] Poor spacing around delimiters in MathML Torture Test 14
https://bugs.webkit.org/show_bug.cgi?id=122837
Reviewed by Brent Fulgham.
Instead of stretching the vertical bar with the stretchable version, just repeat
the normal vertical bar. This follows what Gecko does when rendering tall vertical
bars and also works around an issue with STIX fonts leading to poor spacing in
formulas.
* rendering/mathml/RenderMathMLOperator.cpp: Stretch the vertical bar with the
normal variant.
2013-11-09 Anders Carlsson <andersca@apple.com>
Encode form data using the KeyedEncoder
https://bugs.webkit.org/show_bug.cgi?id=124107
Reviewed by Sam Weinig.
* platform/KeyedCoding.h:
(WebCore::KeyedEncoder::encodeEnum):
* platform/network/FormData.cpp:
(WebCore::encodeElement):
(WebCore::FormData::encode):
* platform/network/FormData.h:
2013-11-09 Sam Weinig <sam@webkit.org>
Modernize CanvasObserverProxy
https://bugs.webkit.org/show_bug.cgi?id=124106
Reviewed by Anders Carlsson.
* css/CSSCanvasValue.h:
2013-11-09 Patrick Gansterer <paroga@webkit.org>
Move RunLoop from WebCore to WTF
https://bugs.webkit.org/show_bug.cgi?id=116606
Reviewed by Anders Carlsson.
* CMakeLists.txt:
* GNUmakefile.list.am:
* PlatformBlackBerry.cmake:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformWin.cmake:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
2013-11-09 Andreas Kling <akling@apple.com>
Tighten typing in SVGResourcesCycleSolver a bit.
<https://webkit.org/b/124104>
Make the SVGResourcesCycleSolver constructor take a RenderElement&
and a SVGResources&.
While I was in the neighborhood, also converted one loop to use a
renderer iterator instead of walking siblings manually.
Finally used "auto" to clean up some overly wordy loops.
Reviewed by Anders Carlsson.
2013-11-09 Andreas Kling <akling@apple.com>
Beat SVGRenderSupport with the RenderElement stick.
<https://webkit.org/b/124102>
Tighten up all the SVGRenderSupport helper functions by making them
take const RenderElements references instead of raw RenderObject
pointers as much as possible.
This tunes up a bunch of branchy style() calls.
The patch looks big but it's mostly mechanical. I just changed the
signatures and then worked backwards until everything built again.
Reviewed by Antti Koivisto.
2013-11-09 Andreas Kling <akling@apple.com>
SVGTextLayoutAttributes always has a RenderSVGInlineText.
<https://webkit.org/b/124101>
No SVGTextLayoutAttributes object is without a RenderSVGInlineText
"context" so make context() return a reference.
Reviewed by Antti Koivisto.
2013-11-09 Andreas Kling <akling@apple.com>
Move BindingSecurity stuff under JSDOMBinding umbrella.
<https://webkit.org/b/124099>
We are hitting shouldAllowAccessToDOMWindow() pretty hard on the
demo here: <http://www.jasondavies.com/maps/rotate/>
Putting it together with the rest of the JSDOMBinding code takes
CPU time spent in there from 8.7% to 6.5%. The abstraction was
only used to support alternate JS engines in the past.
Reviewed by Antti Koivisto.
2013-11-08 Brady Eidson <beidson@apple.com>
Merge IDBDatabaseBackendInterface and IDBDatabaseBackendImpl
https://bugs.webkit.org/show_bug.cgi?id=124088
Reviewed by Tim Horton.
+
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBDatabaseBackendInterface.h: Removed.
* Modules/indexeddb/IDBDatabaseBackend.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp.
* Modules/indexeddb/IDBDatabaseBackend.h: Renamed from Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.h.
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBCursor.cpp:
* Modules/indexeddb/IDBCursorBackend.cpp:
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBDatabase.cpp:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBIndex.cpp:
* Modules/indexeddb/IDBIndex.h:
* Modules/indexeddb/IDBIndexWriter.h:
* Modules/indexeddb/IDBObjectStore.cpp:
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBOpenDBRequest.cpp:
* Modules/indexeddb/IDBOpenDBRequest.h:
* Modules/indexeddb/IDBPendingDeleteCall.h:
* Modules/indexeddb/IDBRequest.cpp:
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransaction.cpp:
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackend.cpp:
* Modules/indexeddb/IDBTransactionBackend.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
* Modules/indexeddb/IDBTransactionBackendOperations.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
* Modules/indexeddb/leveldb/IDBLevelDBCoding.h:
2013-11-08 Andreas Kling <akling@apple.com>
Reindent JSDOMBinding.h (finally.)
Rubber-stamped by Sam Weinig.
2013-11-08 Sam Weinig <sam@webkit.org>
Change collectStyleForPresentationAttribute and related functions to take a MutableStylePropertySet by reference
https://bugs.webkit.org/show_bug.cgi?id=124096
Reviewed by Andreas Kling.
Pass MutableStylePropertySet by reference. It is never null.
2013-11-08 Anders Carlsson <andersca@apple.com>
Implement encoding of arrays of objects
https://bugs.webkit.org/show_bug.cgi?id=124091
Reviewed by Beth Dakin.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::encodeBackForwardTreeNode):
Encode the rest of the members.
* platform/KeyedCoding.h:
(WebCore::KeyedEncoder::encodeObjects):
Call beginArray, then beginArrayElement/endArrayElement for every element and lastly endArray.
2013-11-08 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: RemoteLayerBackingStore partial repaint is broken for the tile cache
https://bugs.webkit.org/show_bug.cgi?id=123944
Reviewed by Simon Fraser.
Ensure that the tile cache retrieves repaint rects from the tile layer,
not from the tiled backing layer.
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::enumerateRectsBeingDrawn):
Allow the PlatformCALayer to decide how to enumerate rects to paint.
* WebCore.exp.in:
* platform/graphics/mac/WebLayer.h:
Add RepaintRectList, remove some unnecessary WebCore::s.
* platform/graphics/mac/WebLayer.mm:
(WebCore::collectRectsToPaint):
Factor collectRectsToPaint out; it just grabs the rects from
the layer and makes the decision whether to repaint the bounds
of the dirty region or just the subregions.
Move calls to collectRectsToPaint() to callers of drawLayerContents(),
so that TileController can collect rects from the appropriate source
(the Tile layer) and other layers just continue grabbing them from
their relevant layers.
Make sure that the list that comes from collectRectsToPaint() always
has at least one rect in it (appending the clip bounds if we don't
want to repaint subregions) so we can simplify logic in drawLayerContents.
(WebCore::drawLayerContents):
Remove code to support CompositingCoordinatesBottomUp, as it's only
used on Windows, so this Mac-specific code doesn't need to support it.
Simplify logic given that dirtyRects will always be non-empty.
(-[WebLayer drawInContext:]):
(-[WebSimpleLayer setNeedsDisplayInRect:]):
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::platformCALayerPaintContents):
Adopt collectRectsToPaint.
2013-11-08 Anders Carlsson <andersca@apple.com>
Implement more KeyedEncoder functionality
https://bugs.webkit.org/show_bug.cgi?id=124089
Reviewed by Beth Dakin.
* bindings/js/SerializedScriptValue.h:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::encodeBackForwardTreeNode):
* platform/KeyedCoding.h:
(WebCore::KeyedEncoder::encodeConditionalObject):
2013-11-08 Eric Carlson <eric.carlson@apple.com>
getCueAsHTML() on an empty cue should return a document fragment
https://bugs.webkit.org/show_bug.cgi?id=124084
Reviewed by Darin Adler.
Test: media/track/track-cue-empty-cue-text.html
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::createDocumentFragmentFromCueText): Don't return early when the
passed an empty string.
2013-11-08 Anders Carlsson <andersca@apple.com>
KeyedEncoder should be able to encoder objects
https://bugs.webkit.org/show_bug.cgi?id=124085
Reviewed by Sam Weinig.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::encodeBackForwardTree):
Encode the root object.
(WebCore::HistoryItem::encodeBackForwardTreeNode):
Encode the target.
* history/HistoryItem.h:
Add new members.
* platform/KeyedCoding.h:
(WebCore::KeyedEncoder::encodeObject):
Call beginObject, call the functor and then call endObject().
2013-11-08 Sam Weinig <sam@webkit.org>
Teach CanvasObserver about references
https://bugs.webkit.org/show_bug.cgi?id=124082
Reviewed by Anders Carlsson.
* css/CSSCanvasValue.cpp:
* css/CSSCanvasValue.h:
* html/HTMLCanvasElement.cpp:
* html/HTMLCanvasElement.h:
2013-11-08 Anders Carlsson <andersca@apple.com>
Begin stubbing out a KeyedEncoder class in WebCore
https://bugs.webkit.org/show_bug.cgi?id=124079
Reviewed by Sam Weinig.
* WebCore.exp.in:
Add symbol needed by WebCore.
* WebCore.xcodeproj/project.pbxproj:
Add new header file.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::encodeBackForwardTree):
* history/HistoryItem.h:
Add an encodeBackForwardTree overload that takes a KeyedEncoder object. Encode the version.
* platform/KeyedCoding.h:
Add a KeyedEncoder class that just has a single encodeUInt32 member function for now.
2013-11-08 Brady Eidson <beidson@apple.com>
Merge IDBTransactionBackendInterface and IDBTransactionBackendImpl
https://bugs.webkit.org/show_bug.cgi?id=124077
Reviewed by Alexey Proskuryakov.
The abstraction is no longer needed.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBTransactionBackendInterface.h: Removed.
* Modules/indexeddb/IDBTransactionBackend.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.cpp.
* Modules/indexeddb/IDBTransactionBackend.h: Renamed from Source/WebCore/Modules/indexeddb/IDBTransactionBackendImpl.h.
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBCursorBackend.cpp:
* Modules/indexeddb/IDBCursorBackend.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackendOperations.h:
* Modules/indexeddb/IDBTransactionCoordinator.cpp:
* Modules/indexeddb/IDBTransactionCoordinator.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
2013-11-08 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r155660): Some Etherpad pages not scrollable with overlay scrollbars
https://bugs.webkit.org/show_bug.cgi?id=124075
Reviewed by Beth Dakin.
In r155660 I removed some scrollbar-related layouts when scrollbars
are in overlay mode.
However, ScrollView::updateScrollbars() has a case where we still need
to do multiple pases, related to its "Never ever try to both gain/lose a
scrollbar in the same pass" comment. When we avoid making a new scrollbar
because the other was removed, we need to do another pass to bring the
correct scrollbar back.
Can't test overlay scrollbars in tests.
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
2013-11-08 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Image valued shape-outside that extends vertically into the margin-box is top-clipped
https://bugs.webkit.org/show_bug.cgi?id=123769
Reviewed by Dirk Schulze.
Remove the assumption that Y coordinates are >= 0 from the RasterShapeIntervals class
and correct its computeShapeMarginIntervals() method. The computeShapeMarginIntervals()
method now generates intervals with Y coordinates that begin at the image shape's
bounds.y - shape-margin, which may be less than 0.
The RasterShapeIntervals::intervalsAt() method now offsets its Y coordinate parameter
by the shape-margin. A non-const overload of the method was added to centralize all
access to m_intervalLists.
Test: fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-004.html
fast/shapes/shape-outside-floats/shape-outside-floats-image-margin-005.html
* rendering/shapes/RasterShape.cpp:
(WebCore::MarginIntervalGenerator::intervalAt): Don't clip X coordinates to 0 since they can extend into the margin-box.
(WebCore::RasterShapeIntervals::appendInterval): Use the non-const intervalsAt() method.
(WebCore::RasterShapeIntervals::uniteMarginInterval): Ditto.
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals): See above.
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::RasterShapeIntervals): Added a field for the margin.
(WebCore::RasterShapeIntervals::intervalsAt): Offset y coordinates by the margin; added a non-const overload.
2013-11-08 Piotr Grad <p.grad@samsung.com>
Ended event should work also when playback rate is negative
https://bugs.webkit.org/show_bug.cgi?id=123879
Reviewed by Eric Carlson.
According to W3C specification playback is ended also when playback rate is
negative and position is the earliest possible position.
Test: media/video-ended-event-negative-playback.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
2013-11-08 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Checking for TypeError in RTCPeerConnection object creation
https://bugs.webkit.org/show_bug.cgi?id=124049
Reviewed by Eric Carlson.
If invalid parameters are passed on RTCPeerConnection creation we must throw a TypeError exception.
According to the spec it requires a Dictionary argument, the RTCConfiguration, which is mandatory.
Please notice that this patch does not make every tests run as expected,
RTCPeerConnectionHandlerMock needs to be update to deal with contraints.
Existing tests were updated.
* GNUmakefile.list.am:
* Modules/mediastream/RTCPeerConnection.idl:
* UseJSC.cmake:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSRTCPeerConnectionCustom.cpp: Added.
(WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
2013-11-08 Bem Jones-Bey <bjonesbe@adobe.com>
Use references instead of pointers to RenderBlockFlow in FloatingObjects and ComputeFloatOffsetAdapter
https://bugs.webkit.org/show_bug.cgi?id=124074
Reviewed by Sam Weinig.
Just a straightforward conversion from const pointers to const references.
Also, remove unneeded argument from FloatingObjects constructor.
No new tests, no behavior change.
* rendering/FloatingObjects.cpp:
(WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
(WebCore::FloatingObjects::findNextFloatLogicalBottomBelow):
(WebCore::FloatingObjects::findNextFloatLogicalBottomBelowForBlock):
(WebCore::FloatingObjects::FloatingObjects):
(WebCore::FloatingObjects::clearLineBoxTreePointers):
(WebCore::FloatingObjects::computePlacedFloatsTree):
(WebCore::shapeInfoForFloat):
(WebCore::::updateOffsetIfNeeded):
(WebCore::::collectIfNeeded):
(WebCore::::heightRemaining):
* rendering/FloatingObjects.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createFloatingObjects):
2013-11-08 Sam Weinig <sam@webkit.org>
Teach SubframeLoader a bit about references
https://bugs.webkit.org/show_bug.cgi?id=124076
Reviewed by Anders Carlsson.
* html/HTMLAppletElement.cpp:
* html/HTMLFrameElementBase.cpp:
* html/HTMLMediaElement.cpp:
* loader/SubframeLoader.cpp:
* loader/SubframeLoader.h:
2013-11-08 Brady Eidson <beidson@apple.com>
Blind Windows build-fix attempt after r158959
* WebCore.vcxproj/WebCore.vcxproj:
2013-11-08 Brady Eidson <beidson@apple.com>
Merge IDBCursorBackendInterface and IDBCursorBackendImpl
https://bugs.webkit.org/show_bug.cgi?id=124068
Reviewed by Anders Carlsson.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBCursorBackendInterface.h: Removed.
* Modules/indexeddb/IDBCursorBackend.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.cpp.
* Modules/indexeddb/IDBCursorBackend.h: Renamed from Source/WebCore/Modules/indexeddb/IDBCursorBackendImpl.h.
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBCursor.cpp:
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBCursorWithValue.cpp:
* Modules/indexeddb/IDBCursorWithValue.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBRequest.cpp:
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
* Modules/indexeddb/IDBTransactionBackendImpl.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
2013-11-08 Sam Weinig <sam@webkit.org>
Modernize FrameLoader a bit
https://bugs.webkit.org/show_bug.cgi?id=124073
Reviewed by Anders Carlsson.
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
Use std::unique_ptrs rather than OwnPtrs.
* loader/MixedContentChecker.cpp:
* loader/MixedContentChecker.h:
Switch to hold a Frame& rather than Frame*.
2013-11-08 Zan Dobersek <zdobersek@igalia.com>
Remove code guarded with ENABLE(STREAM)
https://bugs.webkit.org/show_bug.cgi?id=123667
Reviewed by Anders Carlsson.
Remove ENABLE(STREAM)-guarded code. This was added in the effort to provide Stream API support, but
no port enables the feature and the work on this feature has wound down after the Chromium port forked,
leaving this code unmaintained.
* fileapi/FileReaderLoader.cpp:
* fileapi/FileReaderLoader.h:
2013-11-08 Bem Jones-Bey <bjonesbe@adobe.com>
RenderBlockFlow::nextFloatLogicalBottomBelow should not use ShapeOutsideFloatOffsetMode
https://bugs.webkit.org/show_bug.cgi?id=123931
Reviewed by Sam Weinig.
Rewrite nextFloatLogicalBottomBelow to use the placed floats tree for
the search and to not need ShapeOutsideFloatOffsetMode anymore. This
moves almost all of the logic into FloatingObjects, making a small
reduction in the amount that RenderBlockFlow needs to know about the
implementation of FloatingObjects.
In addition, change ComputeFloatOffsetAdapter to take in LayoutUnits
and roundToInt itself so that all of it's callers can be simplified.
No new tests, no new behavior.
* rendering/FloatingObjects.cpp:
(WebCore::rangesIntersect):
(WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
(WebCore::FindNextFloatLogicalBottomAdapter::FindNextFloatLogicalBottomAdapter):
(WebCore::FindNextFloatLogicalBottomAdapter::lowValue):
(WebCore::FindNextFloatLogicalBottomAdapter::highValue):
(WebCore::FindNextFloatLogicalBottomAdapter::nextLogicalBottom):
(WebCore::FindNextFloatLogicalBottomAdapter::nextShapeLogicalBottom):
(WebCore::FindNextFloatLogicalBottomAdapter::collectIfNeeded):
(WebCore::FloatingObjects::findNextFloatLogicalBottomBelow):
(WebCore::FloatingObjects::findNextFloatLogicalBottomBelowForBlock):
(WebCore::FloatingObjects::logicalLeftOffsetForPositioningFloat):
(WebCore::FloatingObjects::logicalRightOffsetForPositioningFloat):
(WebCore::FloatingObjects::logicalLeftOffset):
(WebCore::FloatingObjects::logicalRightOffset):
* rendering/FloatingObjects.h:
* rendering/LineWidth.cpp:
(WebCore::LineWidth::fitBelowFloats):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow):
(WebCore::RenderBlockFlow::nextFloatLogicalBottomBelowForBlock):
(WebCore::RenderBlockFlow::getClearDelta):
* rendering/RenderBlockFlow.h:
2013-11-08 Alexey Proskuryakov <ap@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=124064
Some WebCrypto files are not in correct directories
Rubber-stamped by Anders Carlsson.
* WebCore.xcodeproj/project.pbxproj:
* crypto/CryptoAlgorithmAesCbcParams.h: Removed.
* crypto/CryptoAlgorithmAesKeyGenParams.h: Removed.
* crypto/CryptoKeyAES.cpp: Removed.
* crypto/CryptoKeyAES.h: Removed.
* crypto/CryptoKeyMac.cpp: Removed.
* crypto/keys/CryptoKeyAES.cpp: Copied from Source/WebCore/crypto/CryptoKeyAES.cpp.
* crypto/keys/CryptoKeyAES.h: Copied from Source/WebCore/crypto/CryptoKeyAES.h.
* crypto/mac/CryptoKeyMac.cpp: Copied from Source/WebCore/crypto/CryptoKeyMac.cpp.
* crypto/parameters/CryptoAlgorithmAesCbcParams.h: Copied from Source/WebCore/crypto/CryptoAlgorithmAesCbcParams.h.
* crypto/parameters/CryptoAlgorithmAesKeyGenParams.h: Copied from Source/WebCore/crypto/CryptoAlgorithmAesKeyGenParams.h.
2013-11-08 Alexey Proskuryakov <ap@apple.com>
Implement JWK key import for HMAC and AES-CBC
https://bugs.webkit.org/show_bug.cgi?id=124059
Reviewed by Anders Carlsson.
Tests: crypto/subtle/aes-cbc-import-jwk.html
crypto/subtle/hmac-import-jwk.html
crypto/subtle/import-jwk.html
WebCrypto supports multiple key formats - raw, pkcs8, spki, jwk. The design is that
we'll transform these into parsed KeyData subclasses before passing to algorithms.
CryptoKeySerialization is a base class for handling all these formats.
* WebCore.xcodeproj/project.pbxproj: Added new files. Removed CryptoKeyFormat.h.
* bindings/js/JSCryptoKeySerializationJWK.h: Added.
* bindings/js/JSCryptoKeySerializationJWK.cpp: Added.
(WebCore::getStringFromJSON): A helper. Note that we can rely on the object being
a nice freshly parsed JSON, no getters or anything.
(WebCore::getBooleanFromJSON): Ditto.
(WebCore::JSCryptoKeySerializationJWK::JSCryptoKeySerializationJWK):
(WebCore::JSCryptoKeySerializationJWK::~JSCryptoKeySerializationJWK):
(WebCore::createHMACParameters): A simple helper.
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm): WebCrypto API is weird,
you can have algorithm parameters both inside a JWK key and passed as importKey()
arguments. They need to agree, whatever that means for specific serialization's
algorithm options (not all necessarily have a 1-1 matching to WebCrypto).
(WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Take an intersection of usages.
(WebCore::JSCryptoKeySerializationJWK::reconcileExtractable): Only extractable if
both JWK and the caller agree.
(WebCore::JSCryptoKeySerializationJWK::keySizeIsValid): Verify validity of JWK key.
(WebCore::JSCryptoKeySerializationJWK::keyData): Return an appropriate KeyData
subclass.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::ENUM_CLASS): Moved CryptoKeyFormat here.
(WebCore::cryptoKeyFormatFromJSValue): Added a human readable string to an exception.
(WebCore::JSSubtleCrypto::importKey): Support multiple key formats, not just raw.
* crypto/CryptoAlgorithm.cpp: (WebCore::CryptoAlgorithm::importKey):
* crypto/CryptoAlgorithm.h:
Updated signature for importKey to one that makes more sense. Decoding formats all
the way from a binary blob is not something that CryptoAlgorithm subclasses should
do, we now pass a KeyData subclass instead.
Removed exportKey/wrapKey/unwrapKey altogether, because I don't yet know what the
signatures will be.
* crypto/CryptoKeyData.h: Added.
(WebCore::CryptoKeyData::ENUM_CLASS):
(WebCore::CryptoKeyData::CryptoKeyData):
(WebCore::CryptoKeyData::~CryptoKeyData):
(WebCore::CryptoKeyData::format):
A base class for passing key material to algorithms. Currently, only one type is
supported, that being OctetSequence for secret keys. Keys for RSA and EC are more
complicated, and secret/public ones are different too.
* crypto/CryptoKeyFormat.h: Removed. There are too many key format classes
confusingly floating around, and this was only needed in one file for parsing.
* crypto/CryptoKeySerialization.h: Added.
Base class for handling raw/pkcs8/spki/jwk keys.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::importKey):
* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
Updated to use CryptoKeyData.
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::importKey):
* crypto/algorithms/CryptoAlgorithmHMAC.h:
Updated to use CryptoKeyData.
* crypto/keys/CryptoKeyDataOctetSequence.cpp: Added.
(WebCore::CryptoKeyDataOctetSequence::CryptoKeyDataOctetSequence):
(WebCore::CryptoKeyDataOctetSequence::~CryptoKeyDataOctetSequence):
* crypto/keys/CryptoKeyDataOctetSequence.h: Added.
(WebCore::asCryptoKeyDataOctetSequence):
* crypto/keys/CryptoKeySerializationRaw.cpp: Added.
(WebCore::CryptoKeySerializationRaw::CryptoKeySerializationRaw):
(WebCore::CryptoKeySerializationRaw::~CryptoKeySerializationRaw):
(WebCore::CryptoKeySerializationRaw::reconcileAlgorithm):
(WebCore::CryptoKeySerializationRaw::reconcileUsages):
(WebCore::CryptoKeySerializationRaw::reconcileExtractable):
(WebCore::CryptoKeySerializationRaw::keyData):
* crypto/keys/CryptoKeySerializationRaw.h: Added.
Much code to pass around a Vector<char>.
2013-11-08 Mark Lam <mark.lam@apple.com>
Move breakpoint (and exception break) functionality into JSC::Debugger.
https://bugs.webkit.org/show_bug.cgi?id=121796.
Reviewed by Geoffrey Garen.
No new tests.
- In ScriptDebugServer and JSC::Debugger, SourceID and BreakpointID are
now numeric tokens.
- JSC::Debugger now tracks user defined breakpoints in a JSC::Breakpoint
record. Previously, this info is tracked in the ScriptBreakpoint record
in ScriptDebugServer. The only element of ScriptBreakpoint that is not
being tracked by JSC::Breakpoint is the ScriptBreakpointAction.
The ScriptBreakpointAction is still tracked by the ScriptDebugServer
in a list keyed on the corresponding BreakpointID.
The ScriptBreakpoint record is now only used as a means of passing
breakpoint paramaters to the ScriptDebugServer.
- ScriptDebugServer now no longer accesses the JSC::CallFrame* directly.
It always goes through the DebuggerCallFrame.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/BreakpointID.h: Added.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::clearBreakpoints):
(WebCore::ScriptDebugServer::dispatchDidPause):
(WebCore::ScriptDebugServer::dispatchDidContinue):
(WebCore::ScriptDebugServer::dispatchDidParseSource):
(WebCore::ScriptDebugServer::notifyDoneProcessingDebuggerEvents):
(WebCore::ScriptDebugServer::needPauseHandling):
(WebCore::ScriptDebugServer::handleBreakpointHit):
(WebCore::ScriptDebugServer::handleExceptionInBreakpointCondition):
(WebCore::ScriptDebugServer::handlePause):
* bindings/js/ScriptDebugServer.h:
* bindings/js/SourceID.h: Added.
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
* bindings/js/WorkerScriptDebugServer.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::parseLocation):
(WebCore::InspectorDebuggerAgent::setBreakpoint):
(WebCore::InspectorDebuggerAgent::continueToLocation):
(WebCore::InspectorDebuggerAgent::resolveBreakpoint):
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::getScriptSource):
(WebCore::InspectorDebuggerAgent::didParseSource):
(WebCore::InspectorDebuggerAgent::didPause):
(WebCore::InspectorDebuggerAgent::clear):
* inspector/InspectorDebuggerAgent.h:
* inspector/ScriptDebugListener.h:
2013-11-08 László Langó <lango@inf.u-szeged.hu>
InspectorConsoleAgent::didFinishXHRLoading ConsoleMessage should include a column number
https://bugs.webkit.org/show_bug.cgi?id=114316
Reviewed by Timothy Hatcher.
InspectorConsoleAgent::didFinishXHRLoading creates a ConsoleMessage with a line number,
but it should also include a column number. It looks like ultimately the line number comes from
JSXMLHttpRequest::send, it should also be possible to get the column number at the time.
The column number would be needed by the Web Inspector to jump to the proper place in source code
to show where the XHR originated from.
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::SendFunctor::SendFunctor):
(WebCore::SendFunctor::column):
(WebCore::SendFunctor::operator()):
(WebCore::JSXMLHttpRequest::send):
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::setLastSendLineAndColumnNumber):
(WebCore::XMLHttpRequest::didFinishLoading):
* xml/XMLHttpRequest.h:
2013-11-08 Simon Fraser <simon.fraser@apple.com>
Left sidebar on cubic-bezier.com flickers
https://bugs.webkit.org/show_bug.cgi?id=123128
Reviewed by Dean Jackson.
The logic that determined whether position:fixed elements outside the viewport
should be composited was incorrect if the fixed element also had a transform.
layer.calculateLayerBounds() only takes into account painted transforms (since they
affect layer bounds). So we need to compute the bounds relative to the layer
itself, then use localToContainerQuad() to map them to document coordinates,
but only to the RenderView so that we don't hit the page scale transform.
Tests: compositing/layer-creation/fixed-position-transformed-into-view.html
compositing/layer-creation/fixed-position-transformed-outside-view.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2013-11-08 Martin Robinson <mrobinson@igalia.com>
[MathML] Center of stretched curly bracket not always vertically centered
https://bugs.webkit.org/show_bug.cgi?id=123715
Reviewed by Brent Fulgham.
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::fillWithExtensionGlyph): Update an assertion and
handle the case where two glyph pieces abut.
(WebCore::RenderMathMLOperator::paint): Do not offset the center glyph by y().
2013-10-30 Jer Noble <jer.noble@apple.com>
[MSE] Bring SourceBuffer.append up to the most recent spec.
https://bugs.webkit.org/show_bug.cgi?id=123377
Reviewed by Eric Carlson.
Test: media/media-source/media-source-append-failed.html
Bring the MediaSource append() implementation up to the current spec.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferInternal):
(WebCore::SourceBuffer::appendBufferTimerFired):
* platform/graphics/SourceBufferPrivate.h:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::append):
(WebCore::MockSourceBufferPrivate::evictCodedFrames):
(WebCore::MockSourceBufferPrivate::isFull):
* platform/mock/mediasource/MockSourceBufferPrivate.h:
2013-11-07 Jer Noble <jer.noble@apple.com>
[Mac] Crash at com.apple.WebCore: WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange + 26
https://bugs.webkit.org/show_bug.cgi?id=124031
Reviewed by Eric Carlson.
WTF::bind() causes errors when given a bare id pointer as a parameter,
when that parameter is casted to a specific NS type pointer (in this
case, a NSArray*) in order to pass it as a parameter to the bound
function.
Instead of passing around bare id pointers, wrap them in RetainPtr<>
objects before passing them to WTF::bind().
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekableTimeRangesDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::loadedTimeRangesDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
2013-11-08 Antti Koivisto <antti@apple.com>
Templated LChar/UChar paths for simple line layout
https://bugs.webkit.org/show_bug.cgi?id=124035
Reviewed by Andreas Kling.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForText):
(WebCore::SimpleLineLayout::canUseFor):
Use a templated function to check for illegal characters.
(WebCore::SimpleLineLayout::skipWhitespaces):
Make a template function.
(WebCore::SimpleLineLayout::textWidth):
Make a template function plus some argument changes.
(WebCore::SimpleLineLayout::createTextRuns):
Template function for creating runs while operating with either LChars or UChar.
Also simplified line breaking and text width measuring logic.
(WebCore::SimpleLineLayout::create):
Pick the template.
* rendering/break_lines.cpp:
* rendering/break_lines.h:
Move the implementation to the header (except for the table) so we can use the template
versions directly.
(WebCore::isBreakableSpace):
(WebCore::shouldBreakAfter):
(WebCore::needsLineBreakIterator):
(WebCore::nextBreakablePosition):
(WebCore::nextBreakablePositionIgnoringNBSP):
2013-11-08 Mario Sanchez Prada <mario.prada@samsung.com>
AX: [ATK] <span> elements exposed through ATK when not needed
https://bugs.webkit.org/show_bug.cgi?id=123885
Reviewed by Chris Fleizach.
As per SVN r158195, the way it's decided whether <span> elements
should be ignored or not has slightly changed, causing that the
GTK/EFL ports expose them in cases that they should be ignored,
such as for text elements that neither are focusable (e.g. by
explicitly setting tabindex) nor have a meaningful accessible name
suggesting they should be exposed.
As a result, the flattening that ATK based ports normally do for
this kind of elements (by folding them into their parents) do not
work correctly anymore, making two tests to fail:
platform/gtk/accessibility/spans-paragraphs-and-divs.html
platform/gtk/accessibility/spans.html
This patch encapsulates the part of the logic that affects this in
the computeAccessibilityIsIgnored() method, placing it in a
new method of AccessibilityObject that we can call from ATK's
accessibilityPlatformIncludesObject() to ensure we hide those
<span> elements when they don't fulfill those requirements.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasAttributesRequiredForInclusion):
New virtual method encapsulating part of the logic from the function
that computes whether accessibility should be ignored or not.
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::hasAttributesRequiredForInclusion):
Override of the new method adding additional checks, as extracted from
the original bits in computeAccessibilityIsIgnored().
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
Use the newly added function where we had the original code before.
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
Make sure <span> elements are ignored if they are not focusable
and they don't have a meaningful accessible name.
2013-11-08 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Add missing symbols to WebKitDOMEventTarget.symbols
https://bugs.webkit.org/show_bug.cgi?id=123990
Reviewed by Philippe Normand.
Add webkit_dom_event_target_add_event_listener_with_closure and
webkit_dom_event_target_remove_event_listener_with_closure to the
symbols files.
* bindings/gobject/WebKitDOMEventTarget.symbols:
* bindings/gobject/webkitdom.symbols:
2013-11-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use deprecation guards around deprecated API in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=123899
Reviewed by Martin Robinson.
Do not include deprecated API when compiling with
WEBKIT_DISABLE_DEPRECATED option.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
2013-11-07 Brady Eidson <beidson@apple.com>
Enhance SQL journal_mode setting code to be less likely to log an error.
<rdar://problem/15418577> and https://bugs.webkit.org/show_bug.cgi?id=124018
Reviewed by Anders Carlsson.
Even though the docs says SQLITE_ROW will always be returned, apparently SQLITE_OK is sometimes returned.
Change the code to handle that.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open): Save the statement result value, and accept SQLITE_OK as a non-error condition.
2013-11-07 Brady Eidson <beidson@apple.com>
Update an out-dated ASSERT in IconDatabase code.
<rdar://problem/15171118> and https://bugs.webkit.org/show_bug.cgi?id=124030.
Reviewed by Andreas Kling.
With the asynchronous interfaces that have been added and the support for WK2 that has been added,
this ASSERT can incorrectly fire if an icon is asked for before database cleanup is allowed.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::synchronousIconForPageURL): Update an invalid ASSERT.
2013-11-07 Andreas Kling <akling@apple.com>
RenderSVGResource helpers should take RenderStyle by const reference.
<https://webkit.org/b/124029>
Take const RenderStyle& instead of RenderStyle* in a few more places
so we can get rid of some ampersands and assertions.
Reviewed by Anders Carlsson.
2013-11-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[AX] Generate toAccessibilityTableRow|Column|Cell to detect bad type casts
https://bugs.webkit.org/show_bug.cgi?id=123984
Reviewed by Mario Sanchez Prada.
As a step to let static_cast<> use TYPE_CASTS_BASE, AccessibilityTableRow|Column|Cell use
ACCESSIBILITY_OBJECT_TYPE_CASTS which can support more helper functions rather than manual
static_cast<>. This change will help to detect bad type casts further.
No new tests, no behavior changes.
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addTableCellChild):
(WebCore::AccessibilityARIAGrid::addChildren):
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::rowIndexRange):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::rowHeaders):
(WebCore::AccessibilityTable::columnHeaders):
(WebCore::AccessibilityTable::cellForColumnAndRow):
* accessibility/AccessibilityTableCell.h:
* accessibility/AccessibilityTableColumn.h:
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::headerObject):
* accessibility/AccessibilityTableRow.h:
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
(cellAtIndex):
(webkitAccessibleTableGetColumnHeader):
(webkitAccessibleTableGetRowHeader):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper tableCellParent]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-11-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
REGRESSION (r154375): Image is oriented incorrectly
https://bugs.webkit.org/show_bug.cgi?id=123831
Reviewed by Antonio Gomes.
r154375 made that shouldRespectImageOrientation() isn't used by drawImage().
It causes an image isn't oriented correctly. This patch sets shouldRespectImageOrientation()
value by default.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
2013-11-07 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Image shape-outside with vertical gaps is handled incorrectly
https://bugs.webkit.org/show_bug.cgi?id=123934
Reviewed by Andreas Kling.
RasterShapeIntervals::getExcludedIntervals() was returning an empty
list when the line overlapped any vertical gap in the image. This short-circuit
had been mistakenly copied from getIncludedIntervals(), where it makes sense.
Test: fast/shapes/shape-outside-floats/shape-outside-floats-image-vgap.html
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::getExcludedIntervals):
2013-11-07 Simon Fraser <simon.fraser@apple.com>
Make contents layer borders more visible
https://bugs.webkit.org/show_bug.cgi?id=124025
Reviewed by Tim Horton.
Layer borders for contents layers are impossible to see when the
contentsLayer has the same bounds as its parent; make the contents
layer border 4px thick to make it more visible.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setupContentsLayer):
2013-11-07 Andreas Kling <akling@apple.com>
InlineFlowBox always has a RenderBoxModelObject, take advantage.
<https://webkit.org/b/124024>
Since InlineFlowBox already has the branch-less renderer() returning
a RenderBoxModelObject&, avoid using InlineBox::boxModelObject()
wherever we have a tightly-typed box. One branch disappears from
every call site.
Deleted boxModelObject() on InlineFlowBox to prevent new code from
calling the less efficient function.
Reviewed by Anders Carlsson.
2013-11-07 Andreas Kling <akling@apple.com>
CTTE: Scrolling tree nodes should always have a ScrollingTree&.
<https://webkit.org/b/124022>
Let ScrollingTreeNode and subclasses store the backpointer to the
tree as a ScrollingTree& reference.
Reviewed by Anders Carlsson.
2013-11-07 Simon Fraser <simon.fraser@apple.com>
Lots of layers get solid color but transparent contents layers now
https://bugs.webkit.org/show_bug.cgi?id=123537
Reviewed by Tim Horton.
We call rendererBackgroundColor() to determine the layer's background color,
but on most elements this returns the transparent color (a valid color).
This caused us to allocate a contentsLayer, and use the transparent color as its
backgroundColor, which was wasteful.
Fix by only making a background-color layer if the color is not transparent (zero alpha).
Also avoid making a new contents layer on every color change, and make sure that
we don't do implicit animations for backgroundColor, and some other properties
that were omitted by mistake.
Layer tree dumps don't dump content layers, so no way to test easily.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(nullActionsDictionary):
2013-11-07 Ryosuke Niwa <rniwa@webkit.org>
DOMTokenList::add can add duplicated values if arguments had duplicated values
https://bugs.webkit.org/show_bug.cgi?id=123962
Reviewed by Benjamin Poulain.
Merge https://chromium.googlesource.com/chromium/blink/+/bd3822ad4ae3fc5d8f89f433a7bf04f697334305
In case we do element.classList.add('a', 'a') we need to ensure that we do not add the same token twice.
See http://dom.spec.whatwg.org/#dom-domtokenlist-add
* html/DOMTokenList.cpp:
(WebCore::DOMTokenList::add): Make sure filtered tokens are unique among themselves.
2013-11-07 Eric Carlson <eric.carlson@apple.com>
Remove npr.org specific hack in HTMLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=123859
Reviewed by Jer Noble.
Remove the site specific hack added in r57820, it is no longer necessary.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Remove m_dispatchingCanPlayEvent.
(HTMLMediaElement::play): Don't special case npr.org.
* html/HTMLMediaElement.h:
2013-11-07 Simon Fraser <simon.fraser@apple.com>
Attempt to fix the 32-bit build. Virtual thunks seem to have different
symbol names between 32- and 64-bit.
* WebCore.exp.in:
2013-11-07 Ryosuke Niwa <rniwa@webkit.org>
Crash in HTMLMediaElement::contextDestroyed
https://bugs.webkit.org/show_bug.cgi?id=123963
Reviewed by Eric Carlson.
Merge https://chromium.googlesource.com/chromium/blink/+/177999cdb34b707465670f0feff723922939f278
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement):
2013-11-07 Jer Noble <jer.noble@apple.com>
[Mac] Crash at com.apple.WebCore: -[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:] + 2084
https://bugs.webkit.org/show_bug.cgi?id=124012
Reviewed by Eric Carlson.
The value of the 'duration' key is a NSConcreteValue wrapping a CMTime, not a NSNumber.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
2013-11-07 Ryosuke Niwa <rniwa@webkit.org>
Crash when submitting form in a document with null encoding
https://bugs.webkit.org/show_bug.cgi?id=123975
Reviewed by Alexey Proskuryakov.
Merge https://chromium.googlesource.com/chromium/blink/+/bba01a7fff09e3053ada96ababac2a6e4261fe5f
The CString object which is passed to normalizeLineEndingsToCRLF() can be
a null string. It is created in FormDataList::appendString(), and it
produces a null CString if FormDataList::m_encoding is a null encoding.
Test: fast/forms/form-submit-in-image-document.html
* platform/text/LineEnding.cpp:
(internalNormalizeLineEndingsToCRLF):
2013-11-07 Anders Carlsson <andersca@apple.com>
Use std::function for all policy continuation functions
https://bugs.webkit.org/show_bug.cgi?id=124011
Reviewed by Sam Weinig.
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::responseReceived):
* loader/DocumentLoader.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadPostRequest):
* loader/PolicyCallback.cpp:
(WebCore::PolicyCallback::clear):
(WebCore::PolicyCallback::set):
(WebCore::PolicyCallback::call):
(WebCore::PolicyCallback::clearRequest):
(WebCore::PolicyCallback::cancel):
* loader/PolicyCallback.h:
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
(WebCore::PolicyChecker::checkNewWindowPolicy):
(WebCore::PolicyChecker::checkContentPolicy):
* loader/PolicyChecker.h:
2013-11-07 Brady Eidson <beidson@apple.com>
Use SQLite journal mode WAL (WriteAheadLogging)
https://bugs.webkit.org/show_bug.cgi?id=124009
Reviewed by Anders Carlsson.
WriteAheadLogging journalling is better than the traditional rollback model.
* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open): Use a PRAGMA to set journal_mode to WAL.
2013-11-07 Mark Lam <mark.lam@apple.com>
Cosmetic: rename xxxId to xxxID for ScriptId, SourceId, and BreakpointId.
https://bugs.webkit.org/show_bug.cgi?id=123945.
Reviewed by Geoffrey Garen.
No new tests.
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::functionDetails):
* bindings/js/JavaScriptCallFrame.h:
(WebCore::JavaScriptCallFrame::sourceID):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::hasBreakpoint):
(WebCore::ScriptDebugServer::clearBreakpoints):
(WebCore::ScriptDebugServer::updateCallFrame):
(WebCore::ScriptDebugServer::pauseIfNeeded):
* bindings/js/ScriptDebugServer.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::addMessageToConsole):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorConsoleInstrumentation.h:
(WebCore::InspectorInstrumentation::addMessageToConsole):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::parseLocation):
(WebCore::InspectorDebuggerAgent::setBreakpoint):
(WebCore::InspectorDebuggerAgent::removeBreakpoint):
(WebCore::InspectorDebuggerAgent::continueToLocation):
(WebCore::InspectorDebuggerAgent::resolveBreakpoint):
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::setScriptSource):
(WebCore::InspectorDebuggerAgent::getScriptSource):
(WebCore::InspectorDebuggerAgent::compileScript):
(WebCore::InspectorDebuggerAgent::runScript):
(WebCore::InspectorDebuggerAgent::didParseSource):
(WebCore::InspectorDebuggerAgent::didPause):
(WebCore::InspectorDebuggerAgent::clear):
(WebCore::InspectorDebuggerAgent::reset):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
* inspector/InspectorInstrumentation.h:
* inspector/ScriptDebugListener.h:
2013-11-07 Cidorvan Leite <cidorvan.leite@openbossa.org>
Avoid invalid cairo matrix when drawing surfaces too small
https://bugs.webkit.org/show_bug.cgi?id=123810
Drawing surfaces too small makes inverse matrix with values too big,
when this happen, cairo context is not valid anymore and it stops to draw anything.
Reviewed by Martin Robinson.
Test: fast/canvas/drawImage-with-small-values.html
* platform/graphics/cairo/PlatformContextCairo.cpp:
(WebCore::PlatformContextCairo::drawSurfaceToContext):
2013-11-07 Antti Koivisto <antti@apple.com>
Simple line layout crashes with SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=124002
Reviewed by Simon Fraser.
Don't use simple line layout for flows using SVG fonts. They crash if kerning is enabled.
Test: fast/text/svg-font-simple-line-crash.html
* platform/graphics/Font.h:
(WebCore::Font::isSVGFont):
Add isSVGFont() so callers don't need to go via primaryFont().
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::constructTextRun):
* rendering/RenderBlock.cpp:
(WebCore::constructTextRunInternal):
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
Disallow SVG fonts.
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::constructTextRun):
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::constructTextRun):
(WebCore::SVGTextMetrics::SVGTextMetrics):
* rendering/svg/SVGTextRunRenderingContext.h:
Get rid of the abstract textRunNeedsRenderingContext in favor of just testing isSVGFont().
2013-11-07 Simon Fraser <simon.fraser@apple.com>
Allow customization of the contentsScale of TileController tiles
https://bugs.webkit.org/show_bug.cgi?id=124004
Reviewed by Tim Horton.
On some platorms, zooming out on pages with TiledBacking compositing
layers can cause very high memory use, because the TiledBacking retains
the original page scale while the zoom is in flight, but can be asked
to cover a large area.
Make it possible to reduce memory use in this case by allowing RenderLayerCompositor
to provide an additional scale factor for newly created tiles. Platforms can
then customize this to create low-res tiles when necessary.
* WebCore.exp.in:
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::contentsScaleMultiplierForNewTiles):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerContentsScaleMultiplierForNewTiles):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerContentsScaleMultiplierForNewTiles):
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::setScale):
(WebCore::TileController::createTileLayer):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentsScaleMultiplierForNewTiles):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles):
* rendering/RenderLayerCompositor.h:
2013-11-07 Jer Noble <jer.noble@apple.com>
Unreviewed Win build fix after r158855; wrap shapeInfoForFloat() in an ENABLE(CSS_SHAPES) guard.
* rendering/FloatingObjects.cpp:
2013-11-07 Bem Jones-Bey <bjonesbe@adobe.com>
Refactor logical left/right offset for line methods
https://bugs.webkit.org/show_bug.cgi?id=123898
Reviewed by David Hyatt.
Simplify the logical left/right offset for line methods and their
implementation, including the ComputeFloatOffsetAdapter. This also
reduces the number of line offset methods in RenderBlock.
No new tests, no behavior change.
* rendering/FloatingObjects.cpp:
(WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
(WebCore::ComputeFloatOffsetAdapter::offset): Add a method to return
the offset instead of using a confusing out parameter.
(WebCore::::shapeOffset): Method to return the offset modified by the
shape delta. Moving the computation to this method allowed for
simplification of the users of ComputeFloatOffsetAdapter.
(WebCore::FloatingObjects::logicalLeftOffsetForPositioningFloat): Added this
method so that ShapeOutsideFloatOffsetMode isn't needed. Returns the
offset based on the float margin box.
(WebCore::FloatingObjects::logicalRightOffsetForPositioningFloat): Ditto.
(WebCore::FloatingObjects::logicalLeftOffset): This now only returns
the offset based on the shape's contour.
(WebCore::FloatingObjects::logicalRightOffset): Ditto.
(WebCore::::heightRemaining): Rename to properly follow the getter
naming convention.
* rendering/FloatingObjects.h:
* rendering/RenderBlock.h:
(WebCore::RenderBlock::logicalRightOffsetForLine): Update to remove
use of ShapeOutsideFloatOffsetMode and heightRemaining.
(WebCore::RenderBlock::logicalLeftOffsetForLine): Ditto.
(WebCore::RenderBlock::logicalRightFloatOffsetForLine): Ditto.
(WebCore::RenderBlock::logicalLeftFloatOffsetForLine): Ditto.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::logicalLeftOffsetForPositioningFloat):
Positioning a float is the only case where the float margin box
should be used, and also the only case where heightRemaining is
needed. This handles that case.
(WebCore::RenderBlockFlow::logicalRightOffsetForPositioningFloat):
Ditto.
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat): Update to
use logical(Left|Right)OffsetForPositioningFloatOnLine.
(WebCore::RenderBlockFlow::logicalLeftFloatOffsetForLine): Update to
remove use for ShapeOutsideFloatOffsetMode and heightRemaining.
(WebCore::RenderBlockFlow::logicalRightFloatOffsetForLine): Ditto.
* rendering/RenderBlockFlow.h:
2013-11-07 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: Removing a content node of a ContentFlow from the DOM will send a 0 nodeId
https://bugs.webkit.org/show_bug.cgi?id=123577
Reviewed by Timothy Hatcher.
Test: inspector-protocol/model/content-flow-content-removal.html
Do not send unregister events for the content nodes of a flow when the element is not part of the DOM
anymore. We already send an unbind event, so the inspector is already notified that the node was removed.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
2013-10-30 Jer Noble <jer.noble@apple.com>
[MSE] Add mock MediaSource classes for testing.
https://bugs.webkit.org/show_bug.cgi?id=123322
Reviewed by Eric Carlson.
Tests: media/media-source/media-source-addsourcebuffer.html
media/media-source/media-source-append-buffer.html
media/media-source/media-source-canplaythrough.html
media/media-source/media-source-closed.html
media/media-source/media-source-play.html
media/media-source/media-source-track-enabled.html
media/media-source/media-source-tracks.html
Add mock implementation of platform MediaSource classes, allowing ports to test the
MediaSource API without having a platform implementation.
The MockMediaSource will support a byteformat defined in MockBox.h: a simple box-style media
format with an initialization segment containing a number of tracks, followed by a list of
samples.
Add a means to insert a new media engine factory at runtime, so the internals object can add
a MockMediaSourceMediaPlayer:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayerFactorySupport::callRegisterMediaEngine):
* platform/graphics/MediaPlayer.h:
* testing/Internals.cpp:
(WebCore::Internals::initializeMockMediaSource):
* testing/Internals.h:
* testing/Internals.idl:
For non-media-source supporting media engines, fail immediately when asked to load a media
source, so that the MockMediaSourceMediaPlayer will be instantiated as a fall-back:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::load):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::load):
(WebCore::MediaPlayerPrivateQTKit::supportsType):
Add new files to the project:
* WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/WebCore.exp.in:
Update the MediaSource implementation:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::monitorSourceBuffers): Add a link to the spec.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::buffered): Ditto.
(WebCore::SourceBuffer::setTimestampOffset): Ditto.
(WebCore::SourceBuffer::validateInitializationSegment): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Ditto. Also,
bring the implementation up to date with part of the spec.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Remove "Predicate" from
SampleIsRandomAccessPredicate.
Add utility classes to parse and represent the bytestream supported by the MockMediaSource:
* platform/mock/mediasource/MockBox.cpp: Added.
(WebCore::MockBox::MockBox):
(WebCore::MockBox::peekType):
(WebCore::MockBox::peekLength):
(WebCore::MockTrackBox::MockTrackBox):
(WebCore::MockTrackBox::type):
(WebCore::MockInitializationBox::MockInitializationBox):
(WebCore::MockInitializationBox::type):
(WebCore::MockSampleBox::MockSampleBox):
(WebCore::MockSampleBox::type):
* platform/mock/mediasource/MockBox.h: Added.
(WebCore::MockBox::length):
(WebCore::MockBox::type):
(WebCore::MockTrackBox::trackID):
(WebCore::MockTrackBox::codec):
(WebCore::MockTrackBox::kind):
(WebCore::MockInitializationBox::duration):
(WebCore::MockInitializationBox::tracks):
(WebCore::MockSampleBox::presentationTimestamp):
(WebCore::MockSampleBox::decodeTimestamp):
(WebCore::MockSampleBox::duration):
(WebCore::MockSampleBox::trackID):
(WebCore::MockSampleBox::flags):
(WebCore::MockSampleBox::isSync):
Add a MediaPlayerPrivate implementation which uses MockMediaSource:
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp: Added.
(WebCore::MockMediaPlayerMediaSource::registerMediaEngine):
(WebCore::MockMediaPlayerMediaSource::create):
(WebCore::mimeTypeCache):
(WebCore::MockMediaPlayerMediaSource::getSupportedTypes):
(WebCore::MockMediaPlayerMediaSource::supportsType):
(WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource):
(WebCore::MockMediaPlayerMediaSource::~MockMediaPlayerMediaSource):
(WebCore::MockMediaPlayerMediaSource::load):
(WebCore::MockMediaPlayerMediaSource::cancelLoad):
(WebCore::MockMediaPlayerMediaSource::play):
(WebCore::MockMediaPlayerMediaSource::pause):
(WebCore::MockMediaPlayerMediaSource::naturalSize):
(WebCore::MockMediaPlayerMediaSource::hasVideo):
(WebCore::MockMediaPlayerMediaSource::hasAudio):
(WebCore::MockMediaPlayerMediaSource::setVisible):
(WebCore::MockMediaPlayerMediaSource::seeking):
(WebCore::MockMediaPlayerMediaSource::paused):
(WebCore::MockMediaPlayerMediaSource::networkState):
(WebCore::MockMediaPlayerMediaSource::readyState):
(WebCore::MockMediaPlayerMediaSource::buffered):
(WebCore::MockMediaPlayerMediaSource::didLoadingProgress):
(WebCore::MockMediaPlayerMediaSource::setSize):
(WebCore::MockMediaPlayerMediaSource::paint):
(WebCore::MockMediaPlayerMediaSource::currentTimeDouble):
(WebCore::MockMediaPlayerMediaSource::durationDouble):
(WebCore::MockMediaPlayerMediaSource::seekDouble):
(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime):
(WebCore::MockMediaPlayerMediaSource::updateDuration):
(WebCore::MockMediaPlayerMediaSource::setReadyState):
* platform/mock/mediasource/MockMediaPlayerMediaSource.h: Added.
Add a mock implementation of MediaSourcePrivate, which uses MockSourceBuffer:
* platform/mock/mediasource/MockMediaSourcePrivate.cpp: Added.
(WebCore::MockMediaSourcePrivate::create):
(WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate):
(WebCore::MockMediaSourcePrivate::~MockMediaSourcePrivate):
(WebCore::MockMediaSourcePrivate::addSourceBuffer):
(WebCore::MockMediaSourcePrivate::removeSourceBuffer):
(WebCore::MockMediaSourcePrivate::duration):
(WebCore::MockMediaSourcePrivate::setDuration):
(WebCore::MockMediaSourcePrivate::markEndOfStream):
(WebCore::MockMediaSourcePrivate::unmarkEndOfStream):
(WebCore::MockMediaSourcePrivate::readyState):
(WebCore::MockMediaSourcePrivate::setReadyState):
(WebCore::MockMediaSourcePrivate::sourceBufferPrivateDidChangeActiveState):
(WebCore::MockSourceBufferPrivateHasAudio):
(WebCore::MockMediaSourcePrivate::hasAudio):
(WebCore::MockSourceBufferPrivateHasVideo):
(WebCore::MockMediaSourcePrivate::hasVideo):
* platform/mock/mediasource/MockMediaSourcePrivate.h: Added.
(WebCore::MockMediaSourcePrivate::activeSourceBuffers):
(WebCore::MockMediaSourcePrivate::player):
Add a mock implementation of SourceBufferPrivate, which uses MockBoxes to parse the
bytestream provided by SourceBuffer:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp: Added.
(WebCore::MockMediaSample::create):
(WebCore::MockMediaSample::~MockMediaSample):
(WebCore::MockMediaSample::MockMediaSample):
(WebCore::MockMediaSample::platformSample):
(WebCore::MockMediaDescription::create):
(WebCore::MockMediaDescription::~MockMediaDescription):
(WebCore::MockMediaDescription::MockMediaDescription):
(WebCore::MockSourceBufferPrivate::create):
(WebCore::MockSourceBufferPrivate::MockSourceBufferPrivate):
(WebCore::MockSourceBufferPrivate::~MockSourceBufferPrivate):
(WebCore::MockSourceBufferPrivate::setClient):
(WebCore::MockSourceBufferPrivate::append):
(WebCore::MockSourceBufferPrivate::didReceiveInitializationSegment):
(WebCore::MockSourceBufferPrivate::didReceiveSample):
(WebCore::MockSourceBufferPrivate::abort):
(WebCore::MockSourceBufferPrivate::removedFromMediaSource):
(WebCore::MockSourceBufferPrivate::readyState):
(WebCore::MockSourceBufferPrivate::setReadyState):
(WebCore::MockSourceBufferPrivate::hasVideo):
(WebCore::MockSourceBufferPrivate::hasAudio):
* platform/mock/mediasource/MockSourceBufferPrivate.h: Added.
Create mock implementations of AudioTrackPrivate, VideoTrackPrivate, and TextTrackPrivate
which wrap the MockTrackBox class:
* platform/mock/mediasource/MockTracks.cpp: Added.
* platform/mock/mediasource/MockTracks.h: Added.
(WebCore::MockAudioTrackPrivate::create):
(WebCore::MockAudioTrackPrivate::~MockAudioTrackPrivate):
(WebCore::MockAudioTrackPrivate::id):
(WebCore::MockAudioTrackPrivate::MockAudioTrackPrivate):
(WebCore::MockTextTrackPrivate::create):
(WebCore::MockTextTrackPrivate::~MockTextTrackPrivate):
(WebCore::MockTextTrackPrivate::id):
(WebCore::MockTextTrackPrivate::MockTextTrackPrivate):
(WebCore::MockVideoTrackPrivate::create):
(WebCore::MockVideoTrackPrivate::~MockVideoTrackPrivate):
(WebCore::MockVideoTrackPrivate::id):
(WebCore::MockVideoTrackPrivate::MockVideoTrackPrivate):
2013-11-07 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Changing MediaStreamDescriptor to MediaStreamPrivate
https://bugs.webkit.org/show_bug.cgi?id=123935
Reviewed by Eric Carlson.
No new tests needed.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::MediaStream::MediaStream):
(WebCore::MediaStream::~MediaStream):
(WebCore::MediaStream::ended):
(WebCore::MediaStream::setEnded):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::removeRemoteSource):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamRegistry.cpp:
(WebCore::MediaStreamRegistry::registerURL):
(WebCore::MediaStreamRegistry::unregisterURL):
(WebCore::MediaStreamRegistry::lookupMediaStreamPrivate):
* Modules/mediastream/MediaStreamRegistry.h:
* Modules/mediastream/MediaStreamTrack.cpp:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addStream):
(WebCore::RTCPeerConnection::removeStream):
(WebCore::RTCPeerConnection::didAddRemoteStream):
(WebCore::RTCPeerConnection::didRemoveRemoteStream):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::didCreateStream):
(WebCore::UserMediaRequest::callSuccessHandler):
* Modules/mediastream/UserMediaRequest.h:
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::loadResource):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::toWebMediaStreamPrivate):
(WebCore::MediaPlayerPrivate::lookupMediaStream):
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
* platform/mediastream/MediaStreamCenter.cpp:
* platform/mediastream/MediaStreamCreationClient.h:
* platform/mediastream/MediaStreamPrivate.cpp: Renamed from Source/WebCore/platform/mediastream/MediaStreamDescriptor.cpp.
(WebCore::MediaStreamPrivate::create):
(WebCore::MediaStreamPrivate::addSource):
(WebCore::MediaStreamPrivate::removeSource):
(WebCore::MediaStreamPrivate::addRemoteSource):
(WebCore::MediaStreamPrivate::removeRemoteSource):
(WebCore::MediaStreamPrivate::addRemoteTrack):
(WebCore::MediaStreamPrivate::removeRemoteTrack):
(WebCore::MediaStreamPrivate::MediaStreamPrivate):
(WebCore::MediaStreamPrivate::setEnded):
(WebCore::MediaStreamPrivate::addTrack):
(WebCore::MediaStreamPrivate::removeTrack):
* platform/mediastream/MediaStreamPrivate.h: Renamed from Source/WebCore/platform/mediastream/MediaStreamDescriptor.h.
(WebCore::MediaStreamPrivateClient::~MediaStreamPrivateClient):
(WebCore::MediaStreamPrivate::~MediaStreamPrivate):
(WebCore::MediaStreamPrivate::client):
(WebCore::MediaStreamPrivate::setClient):
(WebCore::MediaStreamPrivate::id):
(WebCore::MediaStreamPrivate::numberOfAudioSources):
(WebCore::MediaStreamPrivate::audioSources):
(WebCore::MediaStreamPrivate::numberOfVideoSources):
(WebCore::MediaStreamPrivate::videoSources):
(WebCore::MediaStreamPrivate::numberOfAudioTracks):
(WebCore::MediaStreamPrivate::audioTracks):
(WebCore::MediaStreamPrivate::numberOfVideoTracks):
(WebCore::MediaStreamPrivate::videoTracks):
(WebCore::MediaStreamPrivate::ended):
* platform/mediastream/MediaStreamSource.cpp:
* platform/mediastream/MediaStreamSource.h:
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
* platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
* platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
* platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
* platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
* platform/mediastream/mac/MediaStreamCenterMac.cpp:
(WebCore::MediaStreamCenterMac::createMediaStream):
* platform/mock/MockMediaStreamCenter.cpp:
(WebCore::MockMediaStreamCenter::createMediaStream):
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::addStream):
(WebCore::RTCPeerConnectionHandlerMock::removeStream):
* platform/mock/RTCPeerConnectionHandlerMock.h:
2013-11-07 Denis Nomiyama <d.nomiyama@samsung.com>
[GTK] Glyphs in vertical text tests are rotated 90 degrees clockwise
https://bugs.webkit.org/show_bug.cgi?id=50619
Reviewed by Martin Robinson.
Implemented the OPENTYPE_VERTICAL feature for the GTK+ port. It resolves
the 90 degrees rotation problem of CJK characters when displaying
vertical text.
New tests are not required as the existing tests for vertical text will
work properly now.
* GNUmakefile.list.am: Added OpenTypeVerticalData.cpp and
OpenTypeVerticalData.h to platformgtk_sources.
* PlatformEfl.cmake: Added OpenTypeVerticalData.cpp.
* PlatformGTK.cmake: Added OpenTypeVerticalData.cpp.
* platform/graphics/FontCache.cpp: Originally the HashMap for
OpenTypeVerticalData was designed with FontFileKey as integer in the
Chromium port, which was an unique number provided by Skia. Since other
ports use FontFileKey as string, new generic hash functions had to be
implemented instead of using the specific ones for integers.
(WebCore::FontVerticalDataCacheKeyHash::hash): New hash function for
HashMap of OpenTypeVerticalData.
(WebCore::FontVerticalDataCacheKeyHash::equal): New function for
comparing hash indexes in the HashMap of OpenTypeVerticalData.
(WebCore::FontVerticalDataCacheKeyTraits::emptyValue): New function for
giving an empty FontFileKey.
(WebCore::FontVerticalDataCacheKeyTraits::constructDeletedValue): New
function to create a FontFileKey for deleted values.
(WebCore::FontVerticalDataCacheKeyTraits::isDeletedValue): New function
to check if a HashMap entry is available.
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData): Added font
orientation as a parameter to the FontPlatformData constructor.
* platform/graphics/freetype/FontPlatformData.h: Added m_orientation to
store the font orientation and m_horizontalOrientationMatrix to store
the Cairo matrix for horizontal orientation, which can be restored in
setOrientation().
(WebCore::FontPlatformData::FontPlatformData): Added font orientation as
a parameter.
(WebCore::FontPlatformData::orientation): Implemented this function
based on m_orientation.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp: Added new
helper function rotateCairoMatrixForVerticalOrientation() to rotate the
Cairo matrix in case of vertical orientation.
(WebCore::FontPlatformData::FontPlatformData): Initialized
m_orientation.
(WebCore::FontPlatformData::operator=): Added m_orientation and
m_horizontalOrientationMatrix to the assignment operator.
(WebCore::FontPlatformData::operator==): Added m_orientation to the
equal operator.
(WebCore::FontPlatformData::initializeWithFontFace): Rotated and
translated fonts if orientation is vertical. Also stored the horizontal
Cairo matrix.
(WebCore::FontPlatformData::verticalData): Returned the vertical data
from the font cache.
(WebCore::FontPlatformData::openTypeTable): Loaded the font table into
a shared buffer.
(WebCore::FontPlatformData::setOrientation): Replaced the scaled font
data by rotating fonts according to the new orientation.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::SimpleFontData::platformInit): Set the glyph's height and
width according to the font orientation. It also sets EM.
(WebCore::SimpleFontData::platformCreateScaledFontData): Added
orientation to the FontPlatformData constructor.
(WebCore::SimpleFontData::platformWidthForGlyph): Returned the glyph's
width according the orientation.
* platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
(WebCore::CairoGetGlyphWidthAndExtents): Obtained the character advance
and extents according to the font orientation.
2013-11-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[AX] Use toAccessibilityRenderObject() instead of using static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=123986
Reviewed by Mario Sanchez Prada.
Though there is toAccessibilityRenderObject(), static_cast<> are being used by many places.
To use toAccessibilityRenderObject() is more helpful to find bad type cast.
No new tests, no behavior changes.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::notificationPostTimerFired):
* accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::imageMapLinkRenderer):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
* accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetElement):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2013-11-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[AX] Use toAccessibilityTable() instead of using manual static_cast<>
https://bugs.webkit.org/show_bug.cgi?id=123982
Reviewed by Mario Sanchez Prada.
Though there is toAccessibilityTable(), static_cast<> are being used by many places.
We need to use toAccessibilityTable().
No new tests, no behavior changes.
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedRows):
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::addChildren):
* accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
(cell):
(cellAtIndex):
(webkitAccessibleTableGetIndexAt):
(webkitAccessibleTableGetNColumns):
(webkitAccessibleTableGetNRows):
(webkitAccessibleTableGetColumnHeader):
(webkitAccessibleTableGetRowHeader):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper tableParent]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2013-11-07 Andreas Kling <akling@apple.com>
Use tighter InlineBox subtypes in some places.
<https://webkit.org/b/123980>
RenderLineBreak and RenderBox line box wrappers are always going to
be InlineElementBox, so codify this with tighter types. Also made
the various positionLine() functions take tighter reference types.
All the casting to renderer-appropriate box types happens inside of
RenderBlockFlow::computeBlockDirectionPositionsForLine() and
propagates from there.
Reviewed by Antti Koivisto.
2013-11-07 Mario Sanchez Prada <mario.prada@samsung.com>
AX: [ATK] Video and audio elements are not properly exposed
https://bugs.webkit.org/show_bug.cgi?id=123894
Reviewed by Chris Fleizach.
Expose <audio> and <video> elements with ATK_ROLE_EMBEDDED, so we
can identify them properly from ATK/AT-SPI based ATs.
Tests: platform/gtk/accessibility/media-controls-panel-title.html
platform/efl/accessibility/media-emits-object-replacement.html
platform/gtk/accessibility/media-emits-object-replacement.html
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole): Add the new mapping.
2013-11-07 Laszlo Vidacs <lac@inf.u-szeged.hu>
Fix crash in BitmapImage::destroyDecodedData()
https://bugs.webkit.org/show_bug.cgi?id=116494
Reviewed by Csaba Osztrogonác.
Merge from https://chromium.googlesource.com/chromium/blink/+/6b6887bf53068f8537908e501fdc7317ad2c6d86
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::destroyDecodedData):
2013-11-06 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] CSSParser should reject <track-list> without a <track-size>
https://bugs.webkit.org/show_bug.cgi?id=118025
Reviewed by Andreas Kling.
From Blink r152914 by <jchaffraix@chromium.org>
Make sure that we parse at least 1 <track-size> inside each
<track-list>. The old parser code allowed track-lists exclusively
made of <track-name>. The way it was implemented eases the future
addition of parsing for the repeat() function.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackList):
* css/StyleResolver.cpp:
(WebCore::createGridTrackList): ASSERT if we don't find any
<track-size> now that we detect their absence in the parser.
2013-11-06 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Fix handling of 'inherit' and 'initial' for grid lines
https://bugs.webkit.org/show_bug.cgi?id=115401
Reviewed by Andreas Kling.
From Blink r150585 by <jchaffraix@chromium.org>
Added support for 'inherit' and 'initial' special values to
grid-auto-{columns|rows} and grid-definition-{columns|rows}.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty): Resolve 'initial' and 'inherit'.
* rendering/style/RenderStyle.h: Added initialNamedGrid{Column|Row}Lines().
* rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData): Initialize m_namedGrid{Column|Row}Lines.
2013-11-07 Andreas Kling <akling@apple.com>
Clean up BidiRun a little bit.
<https://webkit.org/b/123964>
Make BidiRun's member variables private and add accessors for them.
In doing so, codify the following:
- BidiRun always has a corresponding RenderObject.
- The inline box is never cleared after being set.
Reviewed by Antti Koivisto.
2013-11-07 Andreas Kling <akling@apple.com>
More CSSPrimitiveValue constructors should return PassRef.
<https://webkit.org/b/123953>
Make some more CSSPrimitiveValue constructor helpers (that are
known to never return null) return PassRef instead of PassRefPtr.
Reviewed by Antti Koivisto.
2013-11-07 Andreas Kling <akling@apple.com>
Generate type casting helpers for line boxes and use them.
<https://webkit.org/b/123976>
Semi-automatically generate the full set of toFooInlineBox()
helpers with macros instead of having them (partially) hand-coded.
Replaced static_casts with the new helpers across the codebase.
Also made the isFooInlineBox() overrides private since they should
never be called when the type is already known.
Reviewed by Antti Koivisto.
2013-11-07 Ryosuke Niwa <rniwa@webkit.org>
Simplify Attr by removing m_specified member variable and setter
https://bugs.webkit.org/show_bug.cgi?id=123965
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/597f44ec928e08820574728889adabc6d8ecd746
m_specified is always true in WebKit so simply return true in Attr::specified().
* dom/Attr.cpp:
(WebCore::Attr::Attr):
* dom/Attr.h:
* dom/Document.cpp:
(WebCore::Document::adoptNode):
2013-10-25 Jer Noble <jer.noble@apple.com>
[MSE] Add MediaSource extensions to AudioTrack, VideoTrack, and TextTrack.
https://bugs.webkit.org/show_bug.cgi?id=123374
Reviewed by Eric Carlson.
No tests added; tests will be added when Mock implementations are added in a future patch.
Add new partial interfaces for added methods on AudioTrack, TextTrack, and VideoTrack:
* Modules/mediasource/AudioTrackMediaSource.idl: Add read-only sourceBuffer attribute.
* Modules/mediasource/TextTrackMediaSource.idl: Ditto.
* Modules/mediasource/VideoTrackMediaSource.idl: Ditto.
* Modules/mediasource/AudioTrackMediaSource.h:
(WebCore::AudioTrackMediaSource::sourceBuffer): Added static wrapper around non-static sourceBuffer().
* Modules/mediasource/TextTrackMediaSource.h:
(WebCore::TextTrackMediaSource::sourceBuffer): Ditto.
* Modules/mediasource/VideoTrackMediaSource.h:
(WebCore::VideoTrackMediaSource::sourceBuffer): Ditto.
Add support for writable kind & language attributes through a custom setter:
* bindings/js/JSAudioTrackCustom.cpp:
(WebCore::JSAudioTrack::setKind):
(WebCore::JSAudioTrack::setLanguage):
* bindings/js/JSTextTrackCustom.cpp:
(WebCore::JSTextTrack::setKind):
(WebCore::JSTextTrack::setLanguage):
* bindings/js/JSVideoTrackCustom.cpp:
(WebCore::JSVideoTrack::setKind):
(WebCore::JSVideoTrack::setLanguage):
* html/track/AudioTrack.idl:
* html/track/TextTrack.idl:
* html/track/VideoTrack.idl:
Add setter methods to the implementation classes:
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack):
(WebCore::TextTrack::setKind):
(WebCore::TextTrack::setLanguage):
* html/track/TextTrack.h:
* html/track/TrackBase.cpp:
(WebCore::TrackBase::TrackBase):
(WebCore::TrackBase::setKind):
(WebCore::TrackBase::setKindInternal):
* html/track/TrackBase.h:
(WebCore::TrackBase::setLanguage):
(WebCore::TrackBase::sourceBuffer):
(WebCore::TrackBase::setSourceBuffer):
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::VideoTrack):
(WebCore::VideoTrack::setKind):
(WebCore::VideoTrack::setLanguage):
* html/track/VideoTrack.h:
Implement the unimplemented portions of MediaSource and SourceBuffer:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::removeSourceBuffer):
* Modules/mediasource/MediaSourceBase.cpp:
(WebCore::MediaSourceBase::MediaSourceBase):
(WebCore::MediaSourceBase::setPrivateAndOpen):
(WebCore::MediaSourceBase::setReadyState):
(WebCore::MediaSourceBase::attachToElement):
* Modules/mediasource/MediaSourceBase.h:
(WebCore::MediaSourceBase::mediaElement):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::videoTracks):
(WebCore::SourceBuffer::audioTracks):
(WebCore::SourceBuffer::textTracks):
(WebCore::SourceBuffer::sourceBufferPrivateDidAddAudioTrack):
(WebCore::SourceBuffer::sourceBufferPrivateDidAddVideoTrack):
(WebCore::SourceBuffer::sourceBufferPrivateDidAddTextTrack):
(WebCore::SourceBuffer::sourceBufferPrivateDidChangeActiveState):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBuffer.idl:
Add new files to the project:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
And a smorgasbord of other utility changes:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource): Pass this when attaching.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Ditto.
* html/HTMLMediaSource.h:
* html/track/TextTrackList.cpp:
(TextTrackList::item): Make const.
* html/track/TextTrackList.h:
(WebCore::TextTrackList::lastItem): Added.
* platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::create): Added.
(WebCore::MockSourceBufferPrivate::trackDidChangeEnabled):
2013-11-06 Vani Hegde <vani.hegde@samsung.com>
Applied background color is not retained after typing a characters
https://bugs.webkit.org/show_bug.cgi?id=117337
Reviewed by Ryosuke Niwa.
While deleting a selection, only the inheritable style properties
applied on the selection were saved.
Since background color is considered as noninheritable style property,
on deleting the selection, background color set on it was being lost.
Hence on typing in new text, it would not have the applied
background color set.
Fixed by saving editing preoperties that are already in effect
on a selection before deleting it.
Test: editing/style/background-color-retained.html
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::saveTypingStyleState):
Modified as to save EditingPropertiesInEffect on a selection before
deleting it.
2013-11-06 Andreas Kling <akling@apple.com>
InlineBox: Make paint() and nodeAtPoint() pure virtuals.
<https://webkit.org/b/123937>
...and move the current implementations to InlineElementBox.
All subclasses were already overriding these functions so the move
is completely natural.
Reviewed by Anders Carlsson.
2013-11-06 Andreas Kling <akling@apple.com>
Nothing should return std::unique_ptr<InlineBox>.
<https://webkit.org/b/123936>
Made RenderBox, RenderLineBreak and RenderListMarker return tightly
typed InlineElementBoxes instead.
Reviewed by Anders Carlsson.
2013-11-06 Daniel Bates <dabates@apple.com>
[iOS] Upstream Letterpress effect
https://bugs.webkit.org/show_bug.cgi?id=123932
Reviewed by Sam Weinig.
Test: platform/iphone-simulator/iphone/getComputedStyle-text-decoration-letterpress.html
* Configurations/FeatureDefines.xcconfig: Add feature define ENABLE_LETTERPRESS disabled
by default. We only enable letterpress on iOS.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::renderTextDecorationFlagsToCSSValue): Add support for CSS value -webkit-letterpress.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseTextDecoration): Ditto.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator TextDecoration): Ditto.
* css/CSSValueKeywords.in: Added CSS value -webkit-letterpress.
* platform/graphics/GraphicsContext.h:
* platform/graphics/mac/FontMac.mm:
(WebCore::fillVectorWithHorizontalGlyphPositions): Added.
(WebCore::shouldUseLetterpressEffect): Added.
(WebCore::showLetterpressedGlyphsWithAdvances): Added.
(WebCore::showGlyphsWithAdvances): Modified to call showLetterpressedGlyphsWithAdvances()
to show a letterpressed glyph. I also included additional iOS-specific changes.
(WebCore::Font::drawGlyphs):
* rendering/TextPaintStyle.cpp:
(WebCore::TextPaintStyle::TextPaintStyle):
(WebCore::computeTextPaintStyle): Modified to compute letterpress effect style.
(WebCore::updateGraphicsContext): Modified to apply/unapply letterpress effect drawing mode.
* rendering/TextPaintStyle.h:
* rendering/style/RenderStyleConstants.h:
2013-11-06 Ryosuke Niwa <rniwa@webkit.org>
Crash in SliderThumbElement::dragFrom
https://bugs.webkit.org/show_bug.cgi?id=123873
Reviewed by Sam Weinig.
Moved Ref.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::dragFrom):
2013-11-06 Daniel Bates <dabates@apple.com>
Cleanup FontMac.mm
https://bugs.webkit.org/show_bug.cgi?id=123928
Reviewed by Andy Estes.
* platform/graphics/mac/FontMac.mm:
(WebCore::showGlyphsWithAdvances): Inline the value of variable isVertical as we
reference it exactly once and its value is sufficiently clear.
(WebCore::Font::drawGlyphs): Remove default case in switch block so that the compiler
checks that all cases are covered. Move definition of platformData to the top of the
function and use it whenever we want to access the platform font data
2013-11-06 Brent Fulgham <bfulgham@apple.com>
[WebGL] We should not allow generateMipMap on compressed textures
https://bugs.webkit.org/show_bug.cgi?id=123915
<rdar://problem/15201274>
Reviewed by Dean Jackson.
Found by existing conformance/extensions/webgl-compressed-texture-s3tc.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::compressedTexImage2D): Set compressed flag.
(WebCore::WebGLRenderingContext::compressedTexSubImage2D): Ditto.
(WebCore::WebGLRenderingContext::generateMipmap): For Apple builds, check state
of compressed flag and generate appropriate WebGL error if necessary.
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::WebGLTexture): Set compressed flag to false by default
(WebCore::WebGLTexture::isCompressed): Added
(WebCore::WebGLTexture::setCompressed): Added
* html/canvas/WebGLTexture.h:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::generateMipmap): Switch implementation to use proper
glGenerateMipmaps, rather than the glGenerateMipmapsEXT method.
2013-11-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Changes to CodeGeneratorInspectorStrings.py should rebuild inspector generated files
https://bugs.webkit.org/show_bug.cgi?id=123925
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
2013-11-06 Bem Jones-Bey <bjonesbe@adobe.com>
Rename region line offset methods
https://bugs.webkit.org/show_bug.cgi?id=123897
Reviewed by Sam Weinig.
Because of the large number of overloads on the line offset methods,
it is very hard to read code using them, which also makes it harder to
move them out of RenderBlock. This patch renames the methods that take
a region as an argument to make it clearer when looking at the code
how the differ from the ones that don't.
No new tests, no behavior change.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeStartPositionDeltaForChildAvoidingFloats):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::availableLogicalWidthForLineInRegion):
(WebCore::RenderBlock::logicalRightOffsetForLineInRegion):
(WebCore::RenderBlock::logicalLeftOffsetForLineInRegion):
(WebCore::RenderBlock::startOffsetForLineInRegion):
(WebCore::RenderBlock::endOffsetForLineInRegion):
(WebCore::RenderBlock::availableLogicalWidthForLine):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::shrinkLogicalWidthToAvoidFloats):
(WebCore::RenderBox::containingBlockAvailableLineWidthInRegion):
2013-11-06 Antti Koivisto <antti@apple.com>
HTMLCollection should use CollectionIndexCache
https://bugs.webkit.org/show_bug.cgi?id=123906
Reviewed by Ryosuke Niwa.
More code sharing.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::namedItemGetter):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::nameGetter):
* dom/ChildNodeList.h:
* dom/CollectionIndexCache.h:
(WebCore::::nodeBeforeCached):
(WebCore::::nodeAfterCached):
(WebCore::::nodeAt):
Add a mechanism for disabling use of backward traversal.
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::collectionCanTraverseBackward):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::isMatchingElement):
(WebCore::HTMLCollection::iterateForPreviousElement):
(WebCore::firstMatchingElement):
(WebCore::nextMatchingElement):
(WebCore::HTMLCollection::length):
(WebCore::HTMLCollection::item):
(WebCore::nameShouldBeVisibleInDocumentAll):
(WebCore::firstMatchingChildElement):
(WebCore::nextMatchingSiblingElement):
(WebCore::HTMLCollection::firstElement):
(WebCore::HTMLCollection::traverseForward):
(WebCore::HTMLCollection::collectionFirst):
(WebCore::HTMLCollection::collectionLast):
(WebCore::HTMLCollection::collectionTraverseForward):
(WebCore::HTMLCollection::collectionTraverseBackward):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNameCache):
* html/HTMLCollection.h:
(WebCore::HTMLCollection::collectionCanTraverseBackward):
Disable use of backward traversal for collections that use custom traversal.
2013-11-06 Brendan Long <b.long@cablelabs.com>
Add "id" attribute to TextTrack
https://bugs.webkit.org/show_bug.cgi?id=123825
Reviewed by Eric Carlson.
Test: media/track/track-id.html
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::addTextTrack): Add emptyString() for track id.
* html/track/AudioTrack.cpp:
(WebCore::AudioTrack::AudioTrack): Pass trackPrivate->id() to TrackBase.
(WebCore::AudioTrack::idChanged): Added, set id.
* html/track/AudioTrack.h: Move m_id to TrackBase.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::InbandTextTrack): Pass trackPrivate->id() to TrackBase.
(WebCore::InbandTextTrack::idChanged): Added, set id.
* html/track/InbandTextTrack.h: Add idChanged().
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::LoadableTextTrack): Add emptyString() for track id.
(WebCore::LoadableTextTrack::id): Override to return the track element's id.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::captionMenuOffItem): Add empty string for track id.
(WebCore::TextTrack::captionMenuAutomaticItem): Add empty string for track id.
(WebCore::TextTrack::TextTrack): Pass id to TrackBase.
* html/track/TextTrack.h:
(WebCore::TextTrack::create): Add id parameter.
* html/track/TextTrack.idl: Add id attribute.
* html/track/TrackBase.cpp:
(WebCore::TrackBase::TrackBase): Add m_id.
* html/track/TrackBase.h: Add id attribute / m_id.
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::VideoTrack): Pass trackPrivate->id() to TrackBase.
(WebCore::VideoTrack::idChanged): Added, set id.
* html/track/VideoTrack.h: Move m_id to TrackBase.
* platform/graphics/TrackPrivateBase.h: Add idChanged() callback.
2013-11-06 Antti Koivisto <antti@apple.com>
Move array position caching out from HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=123895
Reviewed by Darin Adler.
This caching complicates the logic but is used by a single subclass
(HTMLFormControlsCollection) only. The subclass can do the caching itself.
* html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::HTMLAllCollection):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::create):
(WebCore::HTMLCollection::item):
(WebCore::HTMLCollection::elementBeforeOrAfterCachedElement):
(WebCore::HTMLCollection::firstElement):
Renamed from traverseFirstElement.
(WebCore::HTMLCollection::traverseForwardToOffset):
(WebCore::HTMLCollection::invalidateCache):
Make cache invalidation virtual so we can clear HTMLTableRowsCollection index cache.
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNameCache):
Use traverseForwardToOffset instead traverseNextElement. This allows removal of traverseNextElement.
* html/HTMLCollection.h:
(WebCore::HTMLCollection::usesCustomForwardOnlyTraversal):
Renamed the enum and the accessor to be more informative.
(WebCore::HTMLCollection::setCachedElement):
(WebCore::HTMLCollection::customElementAfter):
Renamed from virtualItemAfter.
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
(WebCore::findFormAssociatedElement):
(WebCore::HTMLFormControlsCollection::customElementAfter):
Move the array position caching logic here.
(WebCore::HTMLFormControlsCollection::invalidateCache):
* html/HTMLFormControlsCollection.h:
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::HTMLNameCollection):
* html/HTMLOptionsCollection.cpp:
(WebCore::HTMLOptionsCollection::HTMLOptionsCollection):
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection):
(WebCore::HTMLTableRowsCollection::customElementAfter):
* html/HTMLTableRowsCollection.h:
2013-11-06 Michał Pakuła vel Rutka <m.pakula@samsung.com>
[ATK] accessibility/title-ui-element-correctness.html fails
https://bugs.webkit.org/show_bug.cgi?id=99825
Reviewed by Mario Sanchez Prada.
When calling setAtkRelationSetFromCoreObject a new ATK_LABELLED_BY_RELATION
is added, adding proper label element as a relation. When the document structure
has been changed and a different label should be linked as a relation, current ATK
implementation adds it as a next target on relation's target list, while
WTR/DumpRenderTree implementation takes only first one into account.
This patch adds a new function removing current relations before adding new ones.
Covered by existing tests.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(removeAtkRelationFromRelationSetByType):
(setAtkRelationSetFromCoreObject):
2013-11-06 Daniel Bates <dabates@apple.com>
Add ENABLE(TEXT_SELECTION)
https://bugs.webkit.org/show_bug.cgi?id=123827
Reviewed by Ryosuke Niwa.
Add compile-time guard, ENABLE(TEXT_SELECTION), to enable or
disable selection painting in WebCore (enabled by default).
On iOS we disable WebCore selection painting and have UIKit
paint the selection.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintSelection): Only paint selection when
TEXT_SELECTION is enabled.
* rendering/LogicalSelectionOffsetCaches.h:
(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):
For now, add a ENABLE(TEXT_SELECTION)-guard around an assertion. Added
a FIXME comment to investigate the callers and either move the assertion
to the appropriate callers or structure the code such that we can remove
the assertion.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintSelection): Only paint selection when
TEXT_SELECTION is enabled.
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextSelectionPaintStyle): Only compute the selection
paint style when TEXT_SELECTION is enabled. Otherwise, return a paint
style identical to the text paint style. Also, substitute nullptr for 0.
2013-11-06 Jer Noble <jer.noble@apple.com>
Unrevewied Windows build fix after r158736; add InlineElementBox.cpp to the RenderingAllInOne.cpp file.
* rendering/RenderingAllInOne.cpp:
2013-11-06 Sergio Villar Senin <svillar@igalia.com>
Unreviewed build fix, style() return type is now a reference.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionFromStyle):
2013-11-06 Jer Noble <jer.noble@apple.com>
Unreviewed 32-bit Mac build fix; use an explicit FloatSize -> IntSize conversion function.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged):
2013-11-04 Jer Noble <jer.noble@apple.com>
Playing many sounds with HTML5 Audio makes WebKit unresponsive
https://bugs.webkit.org/show_bug.cgi?id=116145
Reviewed by Eric Carlson.
Cache as much information as possible from AVPlayerItem to eliminate unneccesary
calls into AVFoundation.
Add WillChange/DidChange functions to handle the results of KVO notifications
from AVPlayerItem and AVPlayer:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformPlay):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformPause):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateRate):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatusDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackLikelyToKeepUpWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackLikelyToKeepUpDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackBufferEmptyWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackBufferEmptyDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackBufferFullWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackBufferFullDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekableTimeRangesDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::loadedTimeRangesDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasEnabledAudioDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::presentationSizeDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::durationDidChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::rateDidChange):
(WebCore::itemKVOProperties):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
Instruct the HTMLMediaElement to cache the currentTime value for 5 seconds:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(WebCore::MediaPlayerPrivateAVFoundationObjC::maximumDurationToCacheMediaTime):
Add and initialize member variables to hold these cached values:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
Add a new Notification type which can take (and call) a Function object:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification):
(WebCore::MediaPlayerPrivateAVFoundation::Notification::function):
Implement queries in terms of the cached values of AVPlayerItem and AVPlayer
properties:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatus):
(WebCore::MediaPlayerPrivateAVFoundationObjC::rate):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded):
(WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes):
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processLegacyClosedCaptionsTracks):
Invalidate the cached currentTime before calling scheduleTimeUpdate so that the
correct movieTime is saved in m_clockTimeAtLastUpdateEvent:
* html/HTMLMediaElement.cpp:
(HTMLMediaElement::setReadyState):
2013-10-24 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Add support for named grid areas
https://bugs.webkit.org/show_bug.cgi?id=120045
Reviewed by Andreas Kling.
From Blink r155555, r155850 and r155889 by <jchaffraix@chromium.org>
Added support for named grid areas. Basically a named grid area is
now a valid grid position. The shorthand parsing of grid-area was
split from the grid-{row|column} as the rules for expanding are
slightly different.
Unknown grid area names are treated as 'auto' as per the
specification. This means that for those cases we need to trigger
the auto-placement algorithm.
Tests: fast/css-grid-layout/grid-item-bad-named-area-auto-placement.html
fast/css-grid-layout/grid-item-named-grid-area-resolution.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridPosition):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridPosition):
(WebCore::gridMissingGridPositionValue):
(WebCore::CSSParser::parseGridItemPositionShorthand):
(WebCore::CSSParser::parseGridAreaShorthand):
(WebCore::CSSParser::parseSingleGridAreaLonghand):
* css/CSSParser.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::adjustGridItemPosition):
(WebCore::createGridPosition):
* css/StyleResolver.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionFromStyle):
* rendering/style/GridPosition.h:
(WebCore::GridPosition::isNamedGridArea):
(WebCore::GridPosition::setNamedGridArea):
(WebCore::GridPosition::namedGridLine):
2013-11-06 Chris Fleizach <cfleizach@apple.com>
AX: Audio and Video attachments are not output to VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=123479
Reviewed by Mario Sanchez Prada.
Video and audio elements don't appear as distinct objects in the AX hierarchy,
nor are they treated as replaceable objects when emitting the text. We should
treat these characters like attachments, for one. On the Mac platform, we should
also identify them with special subroles.
Tests: platform/mac/accessibility/media-emits-object-replacement.html
platform/mac/accessibility/media-role-descriptions.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isGenericFocusableElement):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
* editing/TextIterator.cpp:
(WebCore::isRendererReplacedElement):
2013-11-06 Ryosuke Niwa <rniwa@webkit.org>
Notify nodes removal to Range/Selection after dispatching blur and mutation event
https://bugs.webkit.org/show_bug.cgi?id=123880
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/b60576a0560d14f8757e58d55d37b7cefa48a6ac
In willRemoveChildren in ContainerNode.cpp, call Document::nodeChildrenWillBeRemoved after instead of
before dispatching mutation events because we need to update ranges created by those mutation event
listeners. willRemoveChild was fixed in r115686.
Tests: editing/selection/selection-change-in-blur-event-by-remove-children.html
editing/selection/selection-change-in-mutation-event-by-remove-children.html
fast/dom/Range/range-created-during-remove-children.html
* dom/ContainerNode.cpp:
(WebCore::willRemoveChildren):
2013-11-06 Ryosuke Niwa <rniwa@webkit.org>
Fix out-of-date offset in selection range code in range.surroundContents
https://bugs.webkit.org/show_bug.cgi?id=123871
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/c89b413ff0fc4aafa0c71d180b0b1e131bb37707
The code in Range::insertNode assumeed that the start offset of the selection range within its container
doesn't change across a call to insertBefore on the container but this is wrong. This patch recomputes
the start offset when it is used after the insertBefore call.
Test: editing/selection/range-surroundContents-with-preceding-node.html
* dom/Range.cpp:
(WebCore::Range::insertNode):
2013-11-06 Andreas Kling <akling@apple.com>
Add InlineElementBox and stop instantiating InlineBox directly.
<https://webkit.org/b/123882>
Make the InlineBox constructors protected and add a new class
called InlineElementBox on top. This is somewhat analogous to the
split between RenderText and RenderElement, and allows us to make
renderer() return a far tighter RenderBoxModelObject& instead
of a RenderObject&.
Moved over attachLine(), deleteLine() and extractLine() to start
things off. More things will follow.
Reviewed by Antti Koivisto.
2013-11-06 Piotr Grad <p.grad@samsung.com>
Seek for video doesn't work when playback rate is negative
https://bugs.webkit.org/show_bug.cgi?id=123791
In MediaPlayerPrivateGStreamer::seek negative playback rate was not taken to account.
Reviewed by Philippe Normand.
Test: media/video-seek-with-negative-playback.html
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::seek):
2013-11-06 Andreas Kling <akling@apple.com>
Reinstate an annoying assertion that I accidentally commented out.
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::synchronousIconForPageURL):
2013-11-06 Brendan Long <b.long@cablelabs.com>
[GStreamer] Override label() and language() in Audio and VideoTrackPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=123836
The tests are currently flakey because we only get the label and language if we get
tags after the track client is set.
Reviewed by Philippe Normand.
No new tests because the tests already exist (this fixes flakeyness).
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h: Override label() and language() to use m_label and m_language.
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h: Same.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Make m_label and m_language protected so they can be used in the functions above.
2013-11-05 Andreas Kling <akling@apple.com>
RenderBlockFlow should only expose its line boxes as RootInlineBox.
<https://webkit.org/b/123878>
The line boxes attached directly to a RenderBlockFlow are always
RootInlineBox objects, so call sites should always use the tightly
typed firstRootBox() and lastRootBox().
This allows the compiler to devirtualize calls to member functions
of RootInlineBox that are marked FINAL.
Reviewed by Antti Koivisto.
2013-11-06 Ryosuke Niwa <rniwa@webkit.org>
Assertion failure end < m_runCount in WebCore::BidiRunList<WebCore::BidiRun>::reverseRuns
https://bugs.webkit.org/show_bug.cgi?id=123863
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/cbaa92c763a37d89eeabd01658e522219299290c
Test: fast/text/bidi-reverse-runs-crash.html
* platform/text/BidiResolver.h:
(WebCore::BidiResolver<Iterator, Run>::createBidiRunsForLine): Don't reverse the runs if there's
nothing to be reversed.
2013-11-05 Ryosuke Niwa <rniwa@webkit.org>
Address the review comment after r158724.
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
2013-11-05 Zalan Bujtas <zalan@apple.com>
Widget's position change should not initiate layout, only when its size changes.
https://bugs.webkit.org/show_bug.cgi?id=123860
Reviewed by Andreas Kling.
RenderWidgets initiate unnecessary layouts while scrolling when they are embedded to
overflow:scroll containers. Scroll position change doesn't dirty the render tree
so it should not trigger layout either.
Manual test added. Unfortunately we can't test against the number of layouts yet.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry):
(WebCore::RenderWidget::updateWidgetGeometry):
(WebCore::RenderWidget::updateWidgetPosition):
2013-11-05 Ryosuke Niwa <rniwa@webkit.org>
Use-after-free in SliderThumbElement::dragFrom
https://bugs.webkit.org/show_bug.cgi?id=123873
Reviewed by Andreas Kling.
Ref the SliderThumbElement since it could go away inside dragFrom.
Test: fast/forms/range/range-type-change-onchange-2.html
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleMouseDownEvent):
2013-11-05 Ryosuke Niwa <rniwa@webkit.org>
Change the order of conditions to avoid computing rendererIsEditable()
https://bugs.webkit.org/show_bug.cgi?id=123868
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/c89b413ff0fc4aafa0c71d180b0b1e131bb37707
When we need both Node::renderer() and Node::rendererIsEditable() conditions to be true to perform
some operation, it is more effective to check for renderer() first, so that if this condition fails
we can avoid unnecessary computation of rendererIsEditable().
* dom/Position.cpp:
(WebCore::nextRenderedEditable):
(WebCore::previousRenderedEditable):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):
2013-11-05 Ryosuke Niwa <rniwa@webkit.org>
simpleUserAgentStyleSheet doesn't have focus ring on anchor element
https://bugs.webkit.org/show_bug.cgi?id=123867
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/08ecc23c4d80be9969918c4baf0ac83dc6cb6cbd
* css/CSSDefaultStyleSheets.cpp:
2013-11-05 Ryosuke Niwa <rniwa@webkit.org>
valueForBorderRadiusShorthand returns wrong values in some case
https://bugs.webkit.org/show_bug.cgi?id=123866
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/0933728126f2db06ab8e945efc98bffa2d42af1c
Because valueForBorderRadiusShorthand misses the followings:
- showHorizontalBottomRight depends on showHorizontalBottomLeft.
- showHorizontalTopRight depends on showHorizontalBottomRight (including showHorizontalBottomLeft).
See also http://dev.w3.org/csswg/css-backgrounds/#the-border-radius
Test: fast/css/getComputedStyle/getComputedStyle-borderRadius-2.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::getBorderRadiusShorthandValue):
2013-11-05 Ryosuke Niwa <rniwa@webkit.org>
Protect DOM nodes in IndentOutdentCommand::tryIndentingAsListItem()
https://bugs.webkit.org/show_bug.cgi?id=123861
Reviewed by Benjamin Poulain.
Merge https://chromium.googlesource.com/chromium/blink/+/297442eb539a2b764fdad323de79099a70179186 partially.
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::tryIndentingAsListItem): Make selectedListItem, previousList, and nextList
RefPtr since they're are used after calling insertNodeBefore.
2013-11-05 Andreas Kling <akling@apple.com>
Apply more unique_ptr to line box management.
<https://webkit.org/b/123857>
Make all of the functions that return newly-created line boxes
return them packed up in std::unique_ptrs.
There is one exception in RenderBlockLineLayout where the function
createInlineBoxForRenderer() is inconsistent about the ownership of
the returned object. This will be addressed by a subsequent patch.
We now "release" the line boxes into their various home structures,
so the pointer smartness doesn't go end-to-end just yet.
Reviewed by Anders Carlsson.
2013-11-05 Ryosuke Niwa <rniwa@webkit.org>
getComputedStyle(x).lineHeight is affected by zooming
https://bugs.webkit.org/show_bug.cgi?id=123847
Reviewed by Benjamin Poulain.
Merge https://chromium.googlesource.com/chromium/blink/+/7957097afbab2899ababd0d9c8acbf6e3eddb870
Test: fast/css/line-height-zoom-get-computed-style.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::lineHeightFromStyle): Don't round line-height values.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyLineHeight::applyValue): Use the computed value instead of the used value.
2013-11-05 James Craig <jcraig@apple.com>
AX: media controls accessibility needs more work
https://bugs.webkit.org/show_bug.cgi?id=123749
Reviewed by Jer Noble.
Updated some of the control labels/roles to improve accessibility.
- Volume slider is now keyboard/screenreader accessible.
- muteButton was a checkbox toggling checked state, now a button that toggles label "mute/unmute"
- fullscreenButton was a checkbox toggling checked state, now a button that toggles label "display/exit full screen"
- captionButton was a checkbox, now a popup button that launches the newly accessible menu.
Subtitles menu is now keyboard/screenreader accessible (uses roaming tabindex).
Render dump expectations changed because volume slider is now hidden via...
...opacity/size (to make accessible without hover) instead of display:none.
Updated existing test coverage.
* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-panel .volume-box):
(audio::-webkit-media-controls-panel .volume-box:active):
(audio::-webkit-media-controls-toggle-closed-captions-button):
(audio::-webkit-media-controls-closed-captions-container .list):
(audio::-webkit-media-controls-closed-captions-container li:focus):
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls):
(Controller.prototype.handleFullscreenChange):
(Controller.prototype.handleMuteButtonClicked):
(Controller.prototype.handleMinButtonClicked):
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.handleVolumeSliderChange):
(Controller.prototype.buildCaptionMenu):
(Controller.prototype.focusSiblingCaptionItem):
(Controller.prototype.handleCaptionItemKeyUp):
2013-11-05 Andreas Kling <akling@apple.com>
Move some plugin-specific code from RenderWidget to RenderEmbeddedObject.
<https://webkit.org/b/123845>
All RenderWidgets representing plugins will be RenderEmbeddedObjects.
Move some of the plugin-specific logic to RenderEmbeddedObject since it
doesn't make sense for all RenderWidgets (frames, embedded documents)
to care about this.
Reviewed by Anders Carlsson.
2013-11-05 Tim Horton <timothy_horton@apple.com>
Fix the 32-bit build.
* WebCore.exp.in:
2013-11-05 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: Moving an element while in the DOMNodeRemoved handler will hide it in the inspector
https://bugs.webkit.org/show_bug.cgi?id=123516
Reviewed by Timothy Hatcher.
InspectorInstrumentation::willRemoveDOMNode was actually calling both willRemoveDOMNodeImpl and
didRemoveDOMNodeImpl, making the DOMAgent unbind the element even if it was still part of the DOM.
Because of that the DOMAgent was sending two events:
1. When the element was about to be removed, just before JS "DOMNodeRemoved" was triggered.
2. When the element was actually removed.
Note that inspector's event #2 will not know about the node, as it just removed it from the
internal hashmap, so it will just use a nodeID == 0 for it.
This patch adds a separate call to InspectorInstrumentation::didRemoveDOMNode, just before the
element is about to be removed. The InspectorInstrumentation::willRemoveDOMNode call is now only used
by the DOMDebugger to trigger the DOM breakpoints in the Web Inspector. That feature is not exposed
in the new Inspector UI, but can be used/tested using the protocol directly.
Tests: inspector-protocol/dom-debugger/node-removed.html
inspector-protocol/dom/dom-remove-events.html
inspector-protocol/dom/remove-multiple-nodes.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeBetween):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willRemoveDOMNode):
(WebCore::InspectorInstrumentation::didRemoveDOMNode):
2013-11-05 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix on CMake based ports with GLES.
* CMakeLists.txt:
Added OPENGLES2_LIBRARIES and OPENGLES2_INCLUDE_DIR into the includes and
libraries list.
2013-11-05 Tim Horton <timothy_horton@apple.com>
platformCALayerDeviceScaleFactor should be const
https://bugs.webkit.org/show_bug.cgi?id=123842
Reviewed by Simon Fraser.
* WebCore.exp.in:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::LayerClient::platformCALayerDeviceScaleFactor):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerDeviceScaleFactor):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::platformCALayerDeviceScaleFactor):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerDeviceScaleFactor):
Constify PlatformCALayerClient::platformCALayerDeviceScaleFactor.
2013-11-05 Gavin Barraclough <barraclough@apple.com>
Subresource loads should not prevent page throttling
https://bugs.webkit.org/show_bug.cgi?id=123757
Reviewed by Alexey Proskuryakov.
The page-is-loading test for inhibiting process supression is currently
too conservative, preventing supression of pages with infinitely loading
resources (commonly XHRs). Instead, just rely on the FrameLoader being
active (with hysteresis).
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::checkForHTTPStatusCodeError):
(WebCore::SubresourceLoader::didFinishLoading):
(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::willCancel):
* loader/SubresourceLoader.h:
- remove m_activityAssertion from SubresourceLoader.
2013-11-05 Tim Horton <timothy_horton@apple.com>
[mac] PDFDocumentImage is too big if PDF has a crop box smaller than the media box
https://bugs.webkit.org/show_bug.cgi?id=123840
<rdar://problem/15308765>
Reviewed by Alexey Proskuryakov.
Test: fast/images/pdf-as-image-crop-box.html
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::size):
Use the crop box when determining the size of the image.
(WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/mac/PDFDocumentImageMac.mm:
(WebCore::PDFDocumentImage::computeBoundsForCurrentPage):
Get rid of m_mediaBox, since we don't need it anymore.
(WebCore::PDFDocumentImage::drawPDFPage):
PDFKit does the translation by the crop box origin for us;
if we do it additionally, we'll be painting the wrong part of the image.
So, don't do the translation here.
2013-11-05 Antti Koivisto <antti@apple.com>
Factor index cache for NodeLists and HTMLCollections to a class
https://bugs.webkit.org/show_bug.cgi?id=123823
Reviewed by Ryosuke Niwa.
Implement index cache class that can used by NodeLists and HTMLCollections that currently
each have implementations of their own.
This patch also implements ChildNodeList and LiveNodeList using CollectionIndexCache.
HTMLCollection is will be transitioned later.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
The client calls to cache to for indexed and size access.
(WebCore::ChildNodeList::collectionFirst):
(WebCore::ChildNodeList::collectionLast):
(WebCore::ChildNodeList::collectionTraverseForward):
(WebCore::ChildNodeList::collectionTraverseBackward):
Cache calls back to these as needed to do the actual traversal.
(WebCore::ChildNodeList::invalidateCache):
* dom/ChildNodeList.h:
* dom/CollectionIndexCache.h: Added.
Templated cache class itself.
(WebCore::::CollectionIndexCache):
(WebCore::::nodeCount):
(WebCore::::nodeBeforeCached):
(WebCore::::nodeAfterCached):
(WebCore::::nodeAt):
(WebCore::::invalidate):
* dom/LiveNodeList.cpp:
(WebCore::firstMatchingElement):
(WebCore::nextMatchingElement):
(WebCore::traverseMatchingElementsForward):
(WebCore::LiveNodeList::collectionFirst):
(WebCore::LiveNodeList::collectionLast):
(WebCore::LiveNodeList::collectionTraverseForward):
(WebCore::LiveNodeList::collectionTraverseBackward):
(WebCore::LiveNodeList::length):
(WebCore::LiveNodeList::item):
(WebCore::LiveNodeList::invalidateCache):
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::LiveNodeList):
2013-11-05 Enrica Casucci <enrica@apple.com>
Full width semicolon is wrong in vertical text.
https://bugs.webkit.org/show_bug.cgi?id=123814
<rdar://problem/15312541>
Reviewed by Benjamin Poulain.
The full width semicolon should always be upright.
Adding it to the list of characters that should
ignore rotation.
* platform/graphics/FontGlyphs.cpp:
(WebCore::shouldIgnoreRotation):
2013-11-05 Andreas Kling <akling@apple.com>
Remove unused RenderWidget::notifyWidget().
Rubber-stamped by Anders Carlsson.
2013-11-05 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r158678.
http://trac.webkit.org/changeset/158678
https://bugs.webkit.org/show_bug.cgi?id=123820
Causes a new debug assertion failure on the Mavericks test
system. (Requested by bfulgham on #webkit).
* rendering/mathml/RenderMathMLOperator.cpp:
2013-11-05 Renata Hodovan <reni@webkit.org>
ASSERTION FAILED: isHTMLTitleElement(m_titleElement.get()) in WebCore::Document::setTitle
https://bugs.webkit.org/show_bug.cgi?id=122092
Reviewed by Darin Adler.
Remove a bogus assert in Document::setTitle().
m_titleElement can be either of HTMLTitleElement or SVGTitleElement. The assertion was wrong.
Backported from Blink:
https://src.chromium.org/viewvc/blink?revision=158620&view=revision
Test: svg/custom/title-assertion.html
* dom/Document.cpp:
(WebCore::Document::setTitle):
* svg/SVGTitleElement.cpp:
(WebCore::SVGTitleElement::insertedInto):
2013-11-05 Martin Robinson <mrobinson@igalia.com>
[MathML] Poor spacing around delimiters in MathML Torture Test 14
https://bugs.webkit.org/show_bug.cgi?id=122837
Reviewed by Brent Fulgham.
Instead of stretching the vertical bar with the stretchable version, just repeat
the normal vertical bar. This follows what Gecko does when rendering tall vertical
bars and also works around an issue with STIX fonts leading to poor spacing in
formulas.
* rendering/mathml/RenderMathMLOperator.cpp: Stretch the vertical bar with the
normal variant.
2013-11-05 Daniel Bates <dabates@apple.com>
XSSAuditor should catch reflected srcdoc properties even without a <frame> tag injection
From Blink r160615 by <tsepez@chromium.org>
https://src.chromium.org/viewvc/blink?view=rev&revision=160615
Test: http/tests/security/xssAuditor/iframe-srcdoc-property-blocked.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterIframeToken):
2013-11-05 Éva Balázsfalvi <balazsfalvi.eva@stud.u-szeged.hu>
Delete maketokenizer.
https://bugs.webkit.org/show_bug.cgi?id=115155
Reviewed by Zoltan Herczeg.
This script was used to generate the old flex based CSS tokenizer. It
was replaced by a custom tokenizer in r106217 but the script wasn't
removed. Since there is no mention of it in the original bug nor any
reference to maketokenizer in our build files, it's probably an
oversight.
Merge from blink:
https://chromium.googlesource.com/chromium/blink/+/2a1c8aaf867f707ccdcd8893446e907e2aa2e1c2
* css/maketokenizer: Removed.
2013-11-05 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Unbreaking GCC builds.
* html/HTMLCollection.cpp:
(WebCore::isMatchingElement): This inline function is not a template anymore.
2013-11-05 Antti Koivisto <antti@apple.com>
Make it compile.
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::LiveNodeList):
(WebCore::LiveNodeList::~LiveNodeList):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
2013-11-05 Antti Koivisto <antti@apple.com>
HTMLCollection should not be NodeList
https://bugs.webkit.org/show_bug.cgi?id=123794
Reviewed by Andreas Kling.
HTMLCollection and NodeList are unrelated types in DOM yet our HTMLCollection inherits NodeList
for code sharing reasons. While some code does get shared the types are sufficiently different
that this results in lots of unnecessary branches, complexity and general awkwardness. Code sharing
can be better achieved by means other than inheritance.
This patch splits HTMLCollection from NodeList by copy-pasting and eliminating resulting redundancies.
Sharing comes later.
* dom/Attr.cpp:
(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::~ClassNodeList):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::childrenChanged):
(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByName):
(WebCore::ContainerNode::getElementsByClassName):
(WebCore::ContainerNode::radioNodeList):
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::registerNodeList):
(WebCore::Document::unregisterNodeList):
(WebCore::Document::registerCollection):
(WebCore::Document::unregisterCollection):
(WebCore::Document::ensureCachedCollection):
Add separate functions and map for registering HTMLCollections.
(WebCore::Document::all):
(WebCore::Document::windowNamedItems):
(WebCore::Document::documentNamedItems):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
(WebCore::Element::ensureCachedHTMLCollection):
(WebCore::Element::cachedHTMLCollection):
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::rootNode):
(WebCore::isMatchingElement):
(WebCore::LiveNodeList::iterateForPreviousElement):
(WebCore::LiveNodeList::itemBefore):
(WebCore::firstMatchingElement):
(WebCore::nextMatchingElement):
(WebCore::traverseMatchingElementsForwardToOffset):
(WebCore::LiveNodeList::traverseLiveNodeListFirstElement):
(WebCore::LiveNodeList::traverseLiveNodeListForwardToOffset):
(WebCore::LiveNodeList::isLastItemCloserThanLastOrCachedItem):
(WebCore::LiveNodeList::isFirstItemCloserThanCachedItem):
(WebCore::LiveNodeList::length):
(WebCore::LiveNodeList::item):
(WebCore::LiveNodeList::elementBeforeOrAfterCachedElement):
This code used to live in HTMLCollection.cpp. Copy-paste here and remove all branches not needed for NodeLists.
(WebCore::LiveNodeList::invalidateCache):
NodeLists have no name caches.
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::LiveNodeList):
(WebCore::LiveNodeList::~LiveNodeList):
(WebCore::LiveNodeList::isRootedAtDocument):
(WebCore::LiveNodeList::type):
(WebCore::LiveNodeList::invalidateCache):
(WebCore::LiveNodeList::setCachedElement):
Merge LiveNodeListBase and LiveNodeList.
Remove fields and code supporting HTMLCollection.
(WebCore::shouldInvalidateTypeOnAttributeChange):
Move to global scope. This function is used both HTMLCollections and LiveNodeLists.
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::~NameNodeList):
* dom/NameNodeList.h:
(WebCore::NameNodeList::create):
* dom/Node.cpp:
(WebCore::shouldInvalidateNodeListCachesForAttr):
(WebCore::Document::shouldInvalidateNodeListAndCollectionCaches):
(WebCore::Document::invalidateNodeListAndCollectionCaches):
(WebCore::Node::invalidateNodeListAndCollectionCachesInAncestors):
(WebCore::NodeListsNodeData::invalidateCaches):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::addCacheWithAtomicName):
(WebCore::NodeListsNodeData::addCacheWithName):
(WebCore::NodeListsNodeData::addCacheWithQualifiedName):
(WebCore::NodeListsNodeData::addCachedCollection):
(WebCore::NodeListsNodeData::cachedCollection):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCacheWithName):
(WebCore::NodeListsNodeData::removeCachedCollection):
(WebCore::NodeListsNodeData::isEmpty):
(WebCore::NodeListsNodeData::adoptDocument):
(WebCore::NodeListsNodeData::namedCollectionKey):
(WebCore::NodeListsNodeData::namedNodeListKey):
(WebCore::NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList):
Add separate cache for HTMLCollections.
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::TagNodeList::~TagNodeList):
* dom/TagNodeList.h:
(WebCore::TagNodeList::create):
(WebCore::HTMLTagNodeList::create):
* html/CollectionType.h:
Remove NodeList types.
* html/HTMLCollection.cpp:
(WebCore::shouldOnlyIncludeDirectChildren):
(WebCore::rootTypeFromCollectionType):
(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::rootNode):
(WebCore::isMatchingElement):
(WebCore::HTMLCollection::iterateForPreviousElement):
(WebCore::HTMLCollection::itemBefore):
(WebCore::firstMatchingElement):
(WebCore::nextMatchingElement):
(WebCore::traverseMatchingElementsForwardToOffset):
(WebCore::HTMLCollection::isLastItemCloserThanLastOrCachedItem):
(WebCore::HTMLCollection::isFirstItemCloserThanCachedItem):
(WebCore::HTMLCollection::setCachedElement):
(WebCore::HTMLCollection::length):
(WebCore::HTMLCollection::item):
(WebCore::HTMLCollection::elementBeforeOrAfterCachedElement):
(WebCore::HTMLCollection::traverseFirstElement):
(WebCore::HTMLCollection::traverseNextElement):
(WebCore::HTMLCollection::traverseForwardToOffset):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::invalidateIdNameCacheMaps):
(WebCore::HTMLCollection::namedItem):
Remove NodeList specific branches and functions.
LiveNodeListBase functions are now HTMLCollection functions.
* html/HTMLCollection.h:
(WebCore::HTMLCollection::isRootedAtDocument):
(WebCore::HTMLCollection::invalidationType):
(WebCore::HTMLCollection::type):
(WebCore::HTMLCollection::ownerNode):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::document):
(WebCore::HTMLCollection::overridesItemAfter):
(WebCore::HTMLCollection::isElementCacheValid):
(WebCore::HTMLCollection::cachedElement):
(WebCore::HTMLCollection::cachedElementOffset):
(WebCore::HTMLCollection::isLengthCacheValid):
(WebCore::HTMLCollection::cachedLength):
(WebCore::HTMLCollection::setLengthCache):
(WebCore::HTMLCollection::setCachedElement):
(WebCore::HTMLCollection::isItemRefElementsCacheValid):
(WebCore::HTMLCollection::setItemRefElementsCacheValid):
(WebCore::HTMLCollection::rootType):
(WebCore::HTMLCollection::hasNameCache):
(WebCore::HTMLCollection::setHasNameCache):
Copy-paste functions and fields from former LiveNodeListBase.
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::~HTMLNameCollection):
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::~LabelsNodeList):
* html/LabelsNodeList.h:
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::~RadioNodeList):
* html/RadioNodeList.h:
(WebCore::RadioNodeList::create):
2013-11-05 Emilio Pozuelo Monfort <pochu27@gmail.com>
[GTK] Add stubs for missing symbols in dom bindings
https://bugs.webkit.org/show_bug.cgi?id=123663
Reviewed by Carlos Garcia Campos.
* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_html_head_element_get_profile):
(webkit_dom_html_head_element_set_profile):
(webkit_dom_processing_instruction_get_data):
(webkit_dom_processing_instruction_set_data):
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols:
2013-11-05 Zan Dobersek <zdobersek@igalia.com>
Main thread tasks in ThreadableBlobRegistry should use std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=122946
Reviewed by Darin Adler.
The new BlobRegistryContext objects don't have to be adopted into OwnPtr and then have OwnPtr's leaked pointer
passed into the WTF::callOnMainThread call - the pointer to the new heap-allocated object is passed in directly,
with the object ending up being managed by std::unique_ptr in the designated main thread task.
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::registerBlobURLTask):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::registerBlobURLFromTask):
(WebCore::unregisterBlobURLTask):
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
2013-11-05 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[CSS] Enable css-image-orientation on EFL and GTK ports.
https://bugs.webkit.org/show_bug.cgi?id=123698
Reviewed by Beth Dakin.
r157909 added wrong early return for css-image-orientation. It causes about 20 regressions in layout test
when enabling css-image-orientation. This fixes those wrong implementation as well as enables it on EFL
and GTK ports by default.
Test: fast/css/image-orientation/image-orientation.html
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::updateSize):
2013-11-05 Andreas Kling <akling@apple.com>
RenderEmbeddedObject shouldn't know about fallback content.
<https://webkit.org/b/123781>
Stop caching the presence of fallback (DOM) content in a flag on
RenderEmbeddedObject and have SubframeLoader fetch it directly from
HTMLObjectElement instead.
Also made SubframeLoader::requestObject() take the owner element
by reference since we don't support owner-less embedded objects.
Reviewed by Antti Koivisto.
2013-11-05 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GStreamer] Remove NATIVE_FULLSCREEN_VIDEO support
https://bugs.webkit.org/show_bug.cgi?id=123437
Reviewed by Philippe Normand.
Removed some dead code as no GStreamer port is using the native
fullscreen video support.
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* PlatformGTK.cmake: Removed compilation of deleted files.
* platform/graphics/MediaPlayer.h: Removed structures related to
GStreamer and NATIVE_FULLSCREEN_VIDEO.
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.cpp: Removed.
* platform/graphics/gstreamer/FullscreenVideoControllerGStreamer.h: Removed.
* platform/graphics/gstreamer/GStreamerGWorld.cpp: Removed.
* platform/graphics/gstreamer/GStreamerGWorld.h: Removed.
* platform/graphics/gstreamer/ImageGStreamerCairo.cpp: Removed
gst/video/video.h include.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::platformMedia):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
Removed code related to GStreamer and NATIVE_FULLSCREEN_VIDEO.
* platform/graphics/gstreamer/PlatformVideoWindow.h: Removed.
* platform/graphics/gstreamer/PlatformVideoWindowEfl.cpp: Removed.
* platform/graphics/gstreamer/PlatformVideoWindowGtk.cpp: Removed.
* platform/graphics/gstreamer/PlatformVideoWindowMac.mm: Removed.
* platform/graphics/gstreamer/PlatformVideoWindowNix.cpp: Removed.
* platform/graphics/gstreamer/PlatformVideoWindowPrivate.h: Removed.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRender):
(webkitVideoSinkNew):
* platform/graphics/gstreamer/VideoSinkGStreamer.h: Removed code
related to GStreamer and NATIVE_FULLSCREEN_VIDEO.
* platform/graphics/gtk/FullscreenVideoControllerGtk.cpp: Removed.
* platform/graphics/gtk/FullscreenVideoControllerGtk.h: Removed.
2013-11-05 Andreas Kling <akling@apple.com>
Remove RenderWidget::viewCleared().
<https://webkit.org/b/123777>
This was some ancient hand-waving code from the KHTML era.
It was obviously confused (e.g RenderEmbeddedObject trying to handle
iframe owners, even though that setup is impossible.)
Reviewed by Anders Carlsson.
2013-11-04 Brady Eidson <beidson@apple.com>
IDB: Split backend Cursors and Transactions into their own files
https://bugs.webkit.org/show_bug.cgi?id=123789
Reviewed by Alexey Proskuryakov.
No new tests (Rename, no change in behavior).
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBBackingStoreCursorInterface.h:
(WebCore::IDBBackingStoreCursorInterface::~IDBBackingStoreCursorInterface):
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBBackingStoreTransactionInterface.h: Added.
(WebCore::IDBBackingStoreTransactionInterface::~IDBBackingStoreTransactionInterface):
* Modules/indexeddb/IDBCursorBackendImpl.cpp:
(WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
* Modules/indexeddb/IDBCursorBackendImpl.h:
(WebCore::IDBCursorBackendImpl::create):
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBIndexWriter.cpp:
(WebCore::IDBIndexWriter::writeIndexKeys):
(WebCore::IDBIndexWriter::verifyIndexKeys):
(WebCore::IDBIndexWriter::addingKeyAllowed):
* Modules/indexeddb/IDBIndexWriter.h:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp:
(WebCore::IDBTransactionBackendImpl::createCursorBackend):
* Modules/indexeddb/IDBTransactionBackendImpl.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::GetOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
* Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.cpp: Added.
(WebCore::IDBBackingStoreCursorLevelDB::IDBBackingStoreCursorLevelDB):
(WebCore::IDBBackingStoreCursorLevelDB::firstSeek):
(WebCore::IDBBackingStoreCursorLevelDB::advance):
(WebCore::IDBBackingStoreCursorLevelDB::continueFunction):
(WebCore::IDBBackingStoreCursorLevelDB::haveEnteredRange):
(WebCore::IDBBackingStoreCursorLevelDB::isPastBounds):
* Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h: Added.
(WebCore::IDBBackingStoreCursorLevelDB::~IDBBackingStoreCursorLevelDB):
(WebCore::IDBBackingStoreCursorLevelDB::IDBBackingStoreCursorLevelDB):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::compareIndexKeys):
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseVersion):
(WebCore::IDBBackingStoreLevelDB::createObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
(WebCore::IDBBackingStoreLevelDB::getRecord):
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::clearObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::createIndex):
(WebCore::IDBBackingStoreLevelDB::deleteIndex):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::findGreatestKeyLessThanOrEqual):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
(WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
(WebCore::ObjectStoreKeyCursorImpl::create):
(WebCore::ObjectStoreKeyCursorImpl::clone):
(WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
(WebCore::ObjectStoreCursorImpl::create):
(WebCore::ObjectStoreCursorImpl::clone):
(WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
(WebCore::objectStoreCursorOptions):
(WebCore::indexCursorOptions):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
(WebCore::IDBBackingStoreLevelDB::createBackingStoreTransaction):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp: Added.
(WebCore::IDBBackingStoreTransactionLevelDB::IDBBackingStoreTransactionLevelDB):
(WebCore::IDBBackingStoreTransactionLevelDB::begin):
(WebCore::IDBBackingStoreTransactionLevelDB::commit):
(WebCore::IDBBackingStoreTransactionLevelDB::rollback):
* Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::createCursorBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
2013-11-04 Zalan Bujtas <zalan@apple.com>
Do not call setFrameRect on Widget unless its boundaries changed.
https://bugs.webkit.org/show_bug.cgi?id=123781
Reviewed by Andreas Kling.
Call Widget:setFrameRect only when the frame's rect actually changes. It also
cleans up the related weak reference code a bit.
Covered by existing tests.
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry):
2013-11-04 Santosh Mahto <santosh.ma@samsung.com>
[webcore/html] remove extra header includes from cpp files.
https://bugs.webkit.org/show_bug.cgi?id=123740
Reviewed by Darin Adler.
Removing redundant headers.
* html/BaseDateAndTimeInputType.cpp:
* html/ColorInputType.cpp:
* html/DOMFormData.cpp:
* html/DOMURL.cpp:
* html/DateInputType.cpp:
* html/DateTimeInputType.cpp:
* html/DateTimeLocalInputType.cpp:
* html/FTPDirectoryDocument.cpp:
* html/FileInputType.cpp:
* html/FormController.cpp:
* html/HTMLAnchorElement.cpp:
* html/HTMLAreaElement.cpp:
* html/HTMLCanvasElement.cpp:
* html/HTMLCollection.cpp:
* html/HTMLDetailsElement.cpp:
* html/HTMLDocument.cpp:
* html/HTMLElement.cpp:
* html/HTMLFormControlsCollection.cpp:
* html/HTMLFormElement.cpp:
* html/HTMLImageElement.cpp:
* html/HTMLInputElement.cpp:
* html/HTMLLegendElement.cpp:
* html/HTMLMapElement.cpp:
* html/HTMLMediaElement.cpp:
* html/HTMLOptionElement.cpp:
* html/HTMLOptionsCollection.cpp:
* html/HTMLPlugInImageElement.cpp:
* html/HTMLProgressElement.cpp:
* html/HTMLSummaryElement.cpp:
* html/HTMLTemplateElement.cpp:
* html/HTMLVideoElement.cpp:
* html/HTMLViewSourceDocument.cpp:
* html/MediaController.cpp:
* html/MediaKeyEvent.cpp:
* html/MonthInputType.cpp:
* html/RangeInputType.cpp:
* html/StepRange.cpp:
* html/TextFieldInputType.cpp:
* html/TimeInputType.cpp:
* html/WeekInputType.cpp:
* html/canvas/CanvasRenderingContext.cpp:
* html/canvas/CanvasRenderingContext2D.cpp:
* html/canvas/CanvasStyle.cpp:
* html/canvas/OESVertexArrayObject.cpp:
* html/parser/BackgroundHTMLParser.cpp:
* html/parser/CSSPreloadScanner.cpp:
* html/parser/CompactHTMLToken.cpp:
* html/parser/HTMLConstructionSite.cpp:
* html/parser/HTMLDocumentParser.cpp:
* html/parser/HTMLElementStack.cpp:
* html/parser/HTMLFormattingElementList.cpp:
* html/parser/HTMLMetaCharsetParser.cpp:
* html/parser/HTMLParserIdioms.cpp:
* html/parser/HTMLPreloadScanner.cpp:
* html/parser/HTMLTokenizer.cpp:
* html/parser/HTMLTreeBuilder.cpp:
* html/parser/HTMLTreeBuilderSimulator.cpp:
* html/parser/HTMLViewSourceParser.cpp:
* html/parser/TextDocumentParser.cpp:
* html/parser/XSSAuditor.cpp:
* html/shadow/ContentDistributor.cpp:
* html/shadow/InsertionPoint.cpp:
* html/shadow/MediaControlElements.cpp:
* html/shadow/MediaControlsApple.cpp:
* html/shadow/MediaControlsBlackBerry.cpp:
* html/shadow/MediaControlsGtk.cpp:
* html/shadow/SliderThumbElement.cpp:
* html/track/AudioTrack.cpp:
* html/track/InbandGenericTextTrack.cpp:
* html/track/InbandTextTrack.cpp:
* html/track/InbandWebVTTTextTrack.cpp:
* html/track/TextTrack.cpp:
* html/track/TextTrackCueGeneric.cpp:
* html/track/TextTrackList.cpp:
* html/track/TextTrackRegion.cpp:
* html/track/TrackListBase.cpp:
* html/track/VideoTrack.cpp:
* html/track/WebVTTParser.cpp:
2013-11-04 Brady Eidson <beidson@apple.com>
IDB: deleteDatabase() interface should be asynchronous
https://bugs.webkit.org/show_bug.cgi?id=123787
Reviewed by Tim Horton.
No new tests (No behavior change for a tested port).
deleteDatabase now has no return value, but calls back to a bool function:
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::deleteDatabase):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
Refactor to account for the new async deleteDatabase:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
(WebCore::IDBDatabaseBackendImpl::deleteDatabaseAsync):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
2013-11-04 Brady Eidson <beidson@apple.com>
Add Modules/indexeddb/leveldb to the WebCore.xcodeproj
Rubberstamped by Andreas Kling.
This will make hacking on IDB much easier for Mac developers as they wont have
to constantly add and then subtract the leveldb subdirectory.
The USE(LEVELDB) flag is still disabled so these files wont actually build by default.
* WebCore.xcodeproj/project.pbxproj:
2013-11-04 Brady Eidson <beidson@apple.com>
Address review feedback I forgot to commit in r158641
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingOpenCalls):
2013-11-04 Brady Eidson <beidson@apple.com>
IDB: Make opening/establishing a database asynchronous.
https://bugs.webkit.org/show_bug.cgi?id=123775
Reviewed by Andreas Kling.
No new tests (No behavior change for a tested port).
* Modules/indexeddb/IDBBackingStoreInterface.h: Add getOrEstablishIDBDatabaseMetadata with a callback,
removing getIDBDatabaseMetaData, getObjectStores, and createIDBDatabaseMetaData in the process.
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::getOrEstablishIDBDatabaseMetadata): Adapted from getIDBDatabaseMetaData,
implement the asynchronous interface in terms of other LevelDB methods, always calling back synchronously.
(WebCore::IDBBackingStoreLevelDB::createIDBDatabaseMetaData):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::create):
(WebCore::IDBDatabaseBackendImpl::openInternalAsync): Broken off from openInternal.
(WebCore::IDBDatabaseBackendImpl::didOpenInternalAsync): Broken off from openInternal.
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::processPendingOpenCalls): Broken off to allow didOpenInternalAsync
to perform open callbacks in the failure case.
(WebCore::IDBDatabaseBackendImpl::openConnection): Always queue open connection calls, then immediately processPendingCalls.
(WebCore::IDBDatabaseBackendImpl::openConnectionInternal): Actually perform open connection calls.
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
2013-11-04 Andreas Kling <akling@apple.com>
CTTE: RenderFrameBase's widget is always a FrameView.
<https://webkit.org/b/123771>
Delete widget() from RenderFrameBase and supplant a childView()
that returns FrameView*. Strip away unnecessary casts and asserts.
Reviewed by Antti Koivisto.
2013-11-04 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] Content in region doesn't respect shape-outside after initial layout pass
<https://webkit.org/b/114829>
Although we set the size of a shape for shape-outside in RenderBlockFlow::insertFloatingObject based on the
float's size, the actual height of the float is not always resolved at that point. (Look at cases when the shape
has percentage based height or percentage based radius.) ShapeInfo::setShapeSize triggers a layout for 0 height
value, which will be overriden later, when RenderBlockFlow::positionNewFloats sets the actual size of the float (shape).
Thus it doesn't make sense to set the shape's size in insertFloatingObject and run those extra unnecessary layout passes,
since it'll be overriden anyways. I moved the shape size setting logic into RenderBlockFlow::positionNewFloats.
The problem showed up when we had a shape-outside ellipse with percentage based radius, and we inserted the content
with JavaScript into a region flow. The content has been layed out based on the 0 border radius, and relayout hasn't been
triggered when it flew into the flow. This change sets the shape size only when we already have the height of the float,
so the radius(es) can be resolved correctly, thus no unnecessary layout passes will happen and the layout will be correct as well.
Reviewed by David Hyatt.
Test: fast/shapes/shape-outside-floats/shape-outside-floats-layout-after-initial-layout-pass.html
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::insertFloatingObject): Remove setting the size of the shape.
(WebCore::RenderBlockFlow::positionNewFloats): Set the size of the shape here.
2013-11-04 Samuel White <samuel_white@apple.com>
AX: AXShowMenu doesn't always work.
https://bugs.webkit.org/show_bug.cgi?id=123649
Reviewed by Chris Fleizach.
No new tests, the change occurs in a code path that forces the context menu to show which
locks up DRT if we try to test it (platform menu is shown). The change itself gives the mouse
event handler a chance to handle our platform mouse event BEFORE the event ends up in the show
context menu machinery. This is necessary because without it, the element will not become
focused. Without focus, accessibility shows different/less menu items than a mouse click. The
end result is that context menus shown via accessibility are consistent with menus shown via click.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::showContextMenuAt):
2013-11-04 Jeffrey Pfau <jpfau@apple.com>
SMIL timers can still fire after the containing document has been torn down
<https://webkit.org/b/123291>
Reviewed by Darin Adler.
Ensure that the timers get paused when the document is preparing to be torn down.
Test: svg/animations/smil-timers-not-disabled-crash.html
* dom/Document.cpp:
(WebCore::Document::dropChildren):
(WebCore::Document::commonTeardown):
(WebCore::Document::prepareForDestruction):
* dom/Document.h:
2013-11-04 Brendan Long <b.long@cablelabs.com>
Move duplicate code in TrackPrivate classes to a common base class
https://bugs.webkit.org/show_bug.cgi?id=123619
Reviewed by Darin Adler.
No new tests because this is just refactoring.
* GNUmakefile.list.am: Add TrackPrivateBase.
* WebCore.vcxproj/WebCore.vcxproj: Same.
* WebCore.vcxproj/WebCore.vcxproj.filters: Same.
* WebCore.xcodeproj/project.pbxproj: Same.
* html/track/AudioTrack.cpp:
(WebCore::AudioTrack::inbandTrackIndex): Renamed audioTrackIndex() to trackIndex().
(WebCore::AudioTrack::labelChanged): First argument is now a TrackPrivateBase*.
(WebCore::AudioTrack::languageChanged): Same.
(WebCore::AudioTrack::willRemove): Same.
* html/track/AudioTrack.h: Update TrackPrivateBaseClient function signatures.
* html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::inbandTrackIndex): Renamed textTrackIndex() to trackIndex().
(WebCore::InbandTextTrack::labelChanged): First argument is now a TrackPrivateBase*.
(WebCore::InbandTextTrack::languageChanged): Same.
(WebCore::InbandTextTrack::willRemove): Same.
* html/track/InbandTextTrack.h: Update TrackPrivateBaseClient function signatures.
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::inbandTrackIndex): Renamed videoTrackIndex() to trackIndex().
(WebCore::VideoTrack::labelChanged): First argument is now a TrackPrivateBase*.
(WebCore::VideoTrack::languageChanged): Same.
(WebCore::VideoTrack::willRemove): Same.
* html/track/VideoTrack.h: Update TrackPrivateBaseClient function signatures.
* platform/graphics/AudioTrackPrivate.h: Remove code that was moved to TrackPrivateBase.
* platform/graphics/InbandTextTrackPrivate.h: Same.
* platform/graphics/InbandTextTrackPrivateClient.h: Same.
* platform/graphics/VideoTrackPrivate.h: Same.
* platform/graphics/TrackPrivateBase.h: Refactored out duplicate code in AudioTrackPrivate, InbandTextTrackPrivate and VideoTrackPrivate.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Renamed textTrackIndex() to trackIndex().
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h: Same.
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h: Renamed audioTrackIndex() to trackIndex().
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h: Renamed videoTrackIndex() to trackIndex90.
2013-11-04 Andreas Kling <akling@apple.com>
FrameView destructor is worried about being retained by a renderer.
<https://webkit.org/b/123763>
There's no way we can be in ~FrameView() while also being owned by
a RenderWidget. Remove some overly paranoid code that was making sure
the renderer didn't have a reference on us.
Reviewed by Anders Carlsson.
2013-11-04 Eric Carlson <eric.carlson@apple.com>
REGRESSION(r158311): media/media-fragments/TC0054.html and TC0061.html hit assertions
https://bugs.webkit.org/show_bug.cgi?id=123555
Reviewed by Darin Adler.
No new tests, covered by existing tests.
* html/MediaFragmentURIParser.cpp:
(WebCore::MediaFragmentURIParser::parseFragments): Don't add a fragment with empty key or value as
they will not processed.
(WebCore::MediaFragmentURIParser::parseNPTFragment): Remove excess whitespace.
2013-11-04 Patrick Gansterer <paroga@webkit.org>
Remove code duplications in createFontCustomPlatformData()
https://bugs.webkit.org/show_bug.cgi?id=123706
Reviewed by Darin Adler.
Move OpenTypeSanitizer and WOFF handling from the port specific
implementations in createFontCustomPlatformData() into the only
caller of this function CachedFont::ensureCustomFontData().
Also change the parameter passing the SharedBuffer from a
pointer to a reference since it is never null.
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::ensureCustomFontData):
* platform/graphics/blackberry/FontCustomPlatformData.h:
* platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp:
(WebCore::FontCustomPlatformData::FontCustomPlatformData):
(WebCore::createFontCustomPlatformData):
* platform/graphics/cairo/FontCustomPlatformData.h:
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::FontCustomPlatformData::FontCustomPlatformData):
(WebCore::createFontCustomPlatformData):
* platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/mac/FontCustomPlatformData.h:
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FontCustomPlatformData.h:
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/wince/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/wince/FontCustomPlatformData.h:
2013-11-04 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Fixing MediaStreamDescriptor addSource and addTrack methods
https://bugs.webkit.org/show_bug.cgi?id=123755
Reviewed by Eric Carlson.
We must store the track and source that is passed as parameter in a RefPtr,
otherwise we will refer to a null pointer.
No new tests needed.
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::addSource):
(WebCore::MediaStreamDescriptor::addTrack):
2013-11-04 Tim Horton <timothy_horton@apple.com>
Remove PlatformCALayer::playerLayer
https://bugs.webkit.org/show_bug.cgi?id=123764
Reviewed by Sam Weinig.
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::clone):
Remove playerLayer(), fold it into clone().
2013-11-04 Chris Fleizach <cfleizach@apple.com>
AX: Mail attachments at the start of an email are not output by VoiceOver
https://bugs.webkit.org/show_bug.cgi?id=123697
Reviewed by Ryosuke Niwa.
VoiceOver is expecting that "replaced elements" (attachments in a Mail message in this case) to be
represented by the replacement character when asking for a stringForRange.
However, when that replaced element is at the beginning of the document, the logic does not work because
there is a few code places that will take that first Position and advance it forward, not accounting for replaced elements.
When using the TextIterator normally, it does account for these, so that's why it's only affecting as at the beginning of the document.
Also a "replaced element" can be more than just renderer->isReplaced(), hence the externing of the isRendererReplacedElement method
and using that it in pertinent places.
Tests: platform/mac/accessibility/object-replacement-with-no-rendered-children-at-node-start.html
platform/mac/accessibility/object-replacement-with-rendered-children-at-node-start.html
* accessibility/AccessibilityObject.cpp:
(WebCore::replacedNodeNeedsCharacter):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(nsStringForReplacedNode):
* dom/Position.cpp:
(WebCore::Position::isCandidate):
* dom/PositionIterator.cpp:
* dom/Range.cpp:
(WebCore::Range::firstNode):
* editing/TextIterator.cpp:
(WebCore::isRendererReplacedElement):
* editing/TextIterator.h:
2013-11-04 Andreas Kling <akling@apple.com>
Use RenderAncestorIterator in a couple of places.
<https://webkit.org/b/123725>
Take the ancestorsOfType<RenderMoo>() thingy out for a spin.
Found a bunch of parent chain walking loops that were really just
looking for the first ancestor renderer of a certain type.
They were a perfect fit for this pattern:
if (auto svgRoot = ancestorsOfType<RenderSVGRoot>(renderer).first())
svgRoot->shakeMoneyMaker();
Quite a bit clearer than the previous:
for (auto ancestor = renderer.parent(); ancestor; ancestor = ancestor->parent()) {
if (ancestor->isSVGRoot())
toRenderSVGRoot(ancestor)->makeMoneyShaker();
}
Reviewed by Antti Koivisto.
2013-10-25 Jer Noble <jer.noble@apple.com>
[MSE] Add a SourceBufferPrivateClient interface for platform -> html communication.
https://bugs.webkit.org/show_bug.cgi?id=123373
Reviewed by Eric Carlson.
To enable communication between SourceBuffer and SourceBufferPrivate without introducing
layering violations, add a new interface class SourceBufferPrivateInterface from which
SourceBuffer will inherit.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer): Set the private's client.
(WebCore::SourceBuffer::~SourceBuffer): Clear the private's client.
(WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Added stub.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Hinno.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateHasAudio): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateHasVideo): Ditto.
* Modules/mediasource/SourceBuffer.h:
* WebCore.xcodeproj/project.pbxproj: Add new files to project.
* platform/graphics/SourceBufferPrivate.h:
* platform/graphics/SourceBufferPrivateClient.h: Added.
(WebCore::SourceBufferPrivateClient::~SourceBufferPrivateClient): Empty destructor.
2013-11-01 Jer Noble <jer.noble@apple.com>
[PluginProxy] Add a setting to disable video plugin proxy support in HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=123621
Reviewed by Eric Carlson.
Add a new Setting which will disable the video plugin proxy. Enable support for AVFoundation
in iOS (which requries fixing a few compile errors resulting from classes and methods which
are not available on iOS.
* WebCore.exp.in: Export wkAVAssetResolvedURL.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement): Make conditional upon
new isVideoPluginProxyEnabled() setting.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Ditto.
* html/HTMLMediaElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::createRenderer): Ditto.
(WebCore::HTMLVideoElement::attach): Ditto.
(WebCore::HTMLVideoElement::parseAttribute): Ditto.
(HTMLVideoElement::setDisplayMode): Ditto.
* html/HTMLVideoElement.h:
* page/Settings.cpp:
(WebCore::Settings::setVideoPluginProxyEnabled): Simple setter.
* page/Settings.h:
(WebCore::Settings::isVideoPluginProxyEnabled): Simple getter.
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines): Conditionally add MediaPlayerPrivateIOS and always add
MediaPlayerPriateAVFoundationObjC.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::deliverNotification): Add default implementation.
(WebCore::MediaPlayerPrivateInterface::setMediaPlayerProxy): Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Use new
HAS_ and USE_ macros instead of __MAC_OS_MIN_VERNSION_REQUIRED.
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createContextVideoRenderer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paint): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Use cachedCGColor instead
of CGColorGetConstantColor.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Use CVPixelBuffer pixel
format constant instead of QuickDraw constant.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): Draw to intermediary
CGImage on iOS.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
2013-11-04 Andreas Kling <akling@apple.com>
REGRESSION(r158561): fast/block/float/float-append-child-crash.html asserting.
The non-const ancestor iterator was walking siblings, not ancestors.
Rubber-stamped by Antti Koivisto.
2013-10-31 Jer Noble <jer.noble@apple.com>
[MSE] [Mac] Disclaim support for MSE in AVFoundation and QTKit engines
https://bugs.webkit.org/show_bug.cgi?id=123593
Reviewed by Eric Carlson.
Immediately fail if asked to load a Media Source in engines which do not support
them.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::load):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::load):
(WebCore::MediaPlayerPrivateQTKit::supportsType):
2013-11-04 Hans Muller <hmuller@adobe.com>
[CSS Shapes] image valued shape element margin can cause an ASSERT fail
https://bugs.webkit.org/show_bug.cgi?id=123743
Reviewed by Andreas Kling.
When margin-top is specified for a shape's element, the Y coordinates passed
to RasterShapeIntervals::getExcludedIntervals() may be negative. This is
because the incoming logical coordinates are relative to the content or
padding box, depending on the box-sizing property. The RasterShape::getExcludedIntervals()
method now clips the incoming Y coordinates to the shape's bounds before
accessing the shape's intervals.
Test: fast/shapes/shape-outside-floats/shape-outside-floats-margin-crash.html
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::getExcludedIntervals):
2013-11-04 Antti Koivisto <antti@apple.com>
Make LiveNodeListBase use Elements instead of Nodes
https://bugs.webkit.org/show_bug.cgi?id=123745
Reviewed by Anders Carlsson.
* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::firstElementChild):
(WebCore::Element::lastElementChild):
Switch to correct calls. ElementTraversal::previous and previousChild are no longer equivalent.
* dom/ElementTraversal.h:
(WebCore::::lastWithinTemplate):
(WebCore::::previousTemplate):
Fix ElementTraversal::lastWithin and previous. They had no real clients and didn't work correctly.
With LiveNodeListBase starting to use these they get excellent test coverage.
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeListBase::invalidateCache):
* dom/LiveNodeList.h:
(WebCore::LiveNodeListBase::LiveNodeListBase):
(WebCore::LiveNodeListBase::isElementCacheValid):
(WebCore::LiveNodeListBase::cachedElement):
(WebCore::LiveNodeListBase::cachedElementOffset):
(WebCore::LiveNodeListBase::setCachedElement):
Make the cache Element based.
Switch to Elements in all helpers.
Rename item -> element for clarity.
* dom/NodeIterator.cpp:
(WebCore::NodeIterator::NodePointer::moveToPrevious):
(WebCore::NodeIterator::updateForNodeRemoval):
This code expected the old inconsistent NodeTraversal::previous behavior where the traversal includes
the root as the last item. Drop the stayWithin parameter and handle the one case where it is needed here.
* dom/NodeTraversal.cpp:
(WebCore::NodeTraversal::last):
(WebCore::NodeTraversal::deepLastChild):
* dom/NodeTraversal.h:
Support ElementTraversal::previous/lastWithin.
(WebCore::NodeTraversal::previous):
This was slightly wrong too.
* html/HTMLCollection.cpp:
(WebCore::previousElement):
(WebCore::lastElement):
(WebCore::LiveNodeListBase::iterateForPreviousElement):
(WebCore::LiveNodeListBase::itemBefore):
(WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
(WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
(WebCore::LiveNodeListBase::setCachedElement):
(WebCore::LiveNodeListBase::item):
(WebCore::LiveNodeListBase::elementBeforeOrAfterCachedElement):
* html/HTMLCollection.h:
(WebCore::HTMLCollection::isEmpty):
(WebCore::HTMLCollection::hasExactlyOneItem):
2013-11-04 Michael Saboff <msaboff@apple.com>
Eliminate HostCall bit from JSC Stack CallerFrame
https://bugs.webkit.org/show_bug.cgi?id=123642
Reviewed by Geoffrey Garen.
Updated JavaScript stack walking as a result of the corresponding changes made in
JavaScriptCore.
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::stepOutOfFunction):
(WebCore::ScriptDebugServer::returnEvent):
(WebCore::ScriptDebugServer::didExecuteProgram):
2013-11-04 Bem Jones-Bey <bjonesbe@adobe.com>
[css shapes] Fix support for shape-outside on a float with padding
https://bugs.webkit.org/show_bug.cgi?id=123590
Reviewed by Alexandru Chiculita.
The line top was being improperly converted to the coordinates of the
shape, causing the shape to be positioned incorrectly when the float
had padding. This fixes that problem.
No new tests, covered by updates to existing ones.
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
2013-11-04 Alexey Proskuryakov <ap@apple.com>
Implement generateKey for HMAC and AES-CBC
https://bugs.webkit.org/show_bug.cgi?id=123669
Reviewed by Dan Bernstein.
Tests: crypto/subtle/aes-cbc-generate-key.html
crypto/subtle/hmac-generate-key.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesKeyGenParams): Added bindings for AesKeyGenParams.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): Handle
algorithms that generate AES and HMAC keys.
* bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::generateKey): Added.
* crypto/CryptoAlgorithmAesKeyGenParams.h: Added.
* crypto/CryptoKey.cpp: (WebCore::CryptoKey::randomData):
* crypto/CryptoKey.h:
* crypto/CryptoKeyMac.cpp: Added
Expose a function that produces random data for symmetric crypto keys. Cross-platform
implementation uses ARC4 code from WTF, while Mac uses a system function that
provides a FIPS validated random number generator.
* crypto/CryptoKeyAES.cpp: (WebCore::CryptoKeyAES::generate):
* crypto/CryptoKeyAES.h:
Added a function that creates AES keys.
* crypto/SubtleCrypto.idl: Added generateKey.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey): Added.
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey): Added.
* crypto/keys/CryptoKeyHMAC.cpp: (WebCore::CryptoKeyHMAC::generate):
* crypto/keys/CryptoKeyHMAC.h:
Added a function that creates HMAC keys.
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp: Removed generateKey stub, the implementation
ended up in cross-platform file.
* crypto/mac/CryptoAlgorithmHMACMac.cpp: Ditto.
2013-11-04 Daniel Bates <dabates@apple.com>
Revert SetCGFontRenderingMode() build fix for Chromium Mac
https://bugs.webkit.org/show_bug.cgi?id=123633
Reviewed by Darin Adler.
Reverts <http://trac.webkit.org/changeset/134380>, which
was a Chromium Mac build fix for <http://trac.webkit.org/changeset/134348>
(https://bugs.webkit.org/show_bug.cgi?id=101787). Chromium doesn't
build against top-of-tree WebKit.
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2013-11-04 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r158526.
http://trac.webkit.org/changeset/158526
https://bugs.webkit.org/show_bug.cgi?id=123744
it broke the build (Requested by jessieberlin on #webkit).
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesCbcParams):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
* bindings/js/JSSubtleCryptoCustom.cpp:
* crypto/CryptoAlgorithmAesKeyGenParams.h: Removed.
* crypto/CryptoKey.cpp:
* crypto/CryptoKey.h:
* crypto/CryptoKeyAES.cpp:
* crypto/CryptoKeyAES.h:
* crypto/CryptoKeyMac.cpp: Removed.
* crypto/SubtleCrypto.idl:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
* crypto/keys/CryptoKeyHMAC.cpp:
* crypto/keys/CryptoKeyHMAC.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey):
2013-11-04 Przemyslaw Szymanski <p.szymanski3@samsung.com>
[Texmap] Remove redundant calls in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=123737
Reviewed by Noam Rosenthal.
Removing unused code left after few refactoring patches.
No new tests. Covered by existing ones.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
2013-11-04 Andreas Kling <akling@apple.com>
CSSPrimitiveValue color constructors should return PassRef.
<https://webkit.org/b/123728>
Make CSSPrimitiveValue::createColor() and the corresponding
CSSValuePool helper functions return PassRef<CSSPrimitiveValue>.
Also made CSSValuePool slightly less stupid when hitting the upper
size limit on the color value cache: instead of throwing out cache
and rebuilding it from scratch, just remove one value at random.
Reviewed by Antti Koivisto.
2013-11-04 Andreas Kling <akling@apple.com>
Some more RenderChildIterator deployment.
<https://webkit.org/b/123735>
Convert another handful of loops to use childrenOfType<RenderFoo>
iterators, mostly for skipping over uninteresting text renderers.
Reviewed by Antti Koivisto.
2013-11-04 Andreas Kling <akling@apple.com>
LabelsNodeList always is always rooted at a LabelableElement.
<https://webkit.org/b/123730>
Tighten up LabelsNodeList by enforcing that it's only rooted to
a LabelableElement. Also marked the class FINAL and made its
create() helper return PassRef.
Reviewed by Antti Koivisto.
2013-11-04 Andreas Kling <akling@apple.com>
REGRESSION: RenderStyle is leaked when not creating renderer for display:none
<https://webkit.org/b/123726>
Explicitly drop the RenderStyle reference in RenderElement::createFor
if we decide to not create any renderer.
Reviewed by Antti Koivisto.
Test: fast/css/renderstyle-leak-with-display-none.html
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
2013-11-04 Santosh Mahto <santosh.ma@samsung.com>
[webcore/dom] Remove extra header includes from cpp files.
https://bugs.webkit.org/show_bug.cgi?id=123720
Reviewed by Andreas Kling.
Removing redundant headers from dom related cpp files.
* dom/Attr.cpp:
* dom/CharacterData.cpp:
* dom/ChildListMutationScope.cpp:
* dom/ChildNodeList.cpp:
* dom/ContainerNode.cpp:
* dom/ContainerNodeAlgorithms.cpp:
* dom/DOMNamedFlowCollection.cpp:
* dom/DatasetDOMStringMap.cpp:
* dom/Document.cpp:
* dom/DocumentEventQueue.cpp:
* dom/DocumentMarkerController.cpp:
* dom/DocumentOrderedMap.cpp:
* dom/DocumentStyleSheetCollection.cpp:
* dom/Element.cpp:
* dom/ElementRareData.cpp:
* dom/Event.cpp:
* dom/EventContext.cpp:
* dom/EventDispatcher.cpp:
* dom/EventTarget.cpp:
* dom/ExceptionBase.cpp:
* dom/FocusEvent.cpp:
* dom/InlineStyleSheetOwner.cpp:
* dom/KeyboardEvent.cpp:
* dom/LiveNodeList.cpp:
* dom/MessageEvent.cpp:
* dom/MessagePort.cpp:
* dom/MouseRelatedEvent.cpp:
* dom/MutationEvent.cpp:
* dom/MutationObserver.cpp:
* dom/MutationObserverInterestGroup.cpp:
* dom/MutationObserverRegistration.cpp:
* dom/MutationRecord.cpp:
* dom/NameNodeList.cpp:
* dom/NamedFlowCollection.cpp:
* dom/NamedNodeMap.cpp:
* dom/Node.cpp:
* dom/NodeIterator.cpp:
* dom/NodeTraversal.cpp:
* dom/PositionIterator.cpp:
* dom/ProcessingInstruction.cpp:
* dom/Range.cpp:
* dom/RegisteredEventListener.cpp:
* dom/ScopedEventQueue.cpp:
* dom/ScriptElement.cpp:
* dom/ScriptRunner.cpp:
* dom/SelectorQuery.cpp:
* dom/ShadowRoot.cpp:
* dom/StyledElement.cpp:
* dom/TagNodeList.cpp:
* dom/Text.cpp:
* dom/TextEvent.cpp:
* dom/TouchEvent.cpp:
* dom/TreeScope.cpp:
* dom/TreeScopeAdopter.cpp:
* dom/TreeWalker.cpp:
* dom/UIEvent.cpp:
* dom/UserActionElementSet.cpp:
* dom/UserTypingGestureIndicator.cpp:
* dom/VisitedLinkState.cpp:
* dom/WebKitNamedFlow.cpp:
2013-11-04 Andreas Kling <akling@apple.com>
HTMLAllCollection is always rooted at a Document.
<https://webkit.org/b/123724>
Tighten up HTMLAllCollection by making the constructor take a
Document& instead of a ContainerNode&. Drive-by application of
FINAL and PassRef also happened.
Reviewed by Antti Koivisto.
2013-11-04 Andreas Kling <akling@apple.com>
Make more CSSValue subclass constructors return PassRef.
<https://webkit.org/b/123731>
Make the constructor helpers for the following classes return
PassRef instead of PassRefPtr:
- CSSFontValue
- CSSImageSetValue
- CSSUnicodeRangeValue
- WebKitCSSArrayFunctionValue
- WebKitCSSFilterValue
- WebKitCSSMatFunctionValue
- WebKitCSSMixFunctionValue
- WebKitCSSShaderValue
- WebKitCSSTransformValue
Reviewed by Antti Koivisto.
2013-11-04 Jozsef Berta <jberta@inf.u-szeged.hu>
Buildfix after r158182 for GCC 4.6
https://bugs.webkit.org/show_bug.cgi?id=123442
Reviewed by Csaba Osztrogonác.
Added explicit "friend class", because GCC 4.6 doesn't support extended friend declaration (c++11)
* dom/ScopedEventQueue.h:
2013-11-04 Andreas Kling <akling@apple.com>
HTMLTableRowsCollection is always rooted at a HTMLTableElement.
<https://webkit.org/b/123721>
Tighten up HTMLTableRowsCollection by making the create() helper
take a HTMLTableElement& and adding a HTMLSelectElement& getter.
Reviewed by Antti Koivisto.
2013-11-04 Andreas Kling <akling@apple.com>
HTMLNameCollection and friends are always rooted at a Document.
<https://webkit.org/b/123722>
Tighten WindowNameCollection and DocumentNameCollection by making
their constructors take a Document&, and add a slightly better
document() than the one we inherit from LiveNodeListBase.
Also marked the classes FINAL and made create() helpers return
PassRef instead of PassRefPtr.
Reviewed by Antti Koivisto.
2013-11-04 Andreas Kling <akling@apple.com>
Add an ancestor renderer iterator.
<https://webkit.org/b/123718>
Add ancestor iterators for renderers, analogous to element ancestor
iterators. They walk the chain of parent renderers, stopping at each
ancestor of a certain type.
Just like child renderer iterators, this requires isRendererOfType()
to be implemented for the targeted renderer class.
You use them like this:
auto frameSets = ancestorsOfType<RenderFrameSet>(*this);
for (auto frameSet = frameSets.begin(), end = frameSets.end(); frameSet != end; ++frameSet)
frameSet->thisOrThat();
To complete the patch, I put them to use in a couple of random places.
Reviewed by Antti Koivisto.
2013-11-04 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Use auto keyword to clean-up for loops
https://bugs.webkit.org/show_bug.cgi?id=123699
Reviewed by Anders Carlsson.
Start using auto keyword for loops.
Also, since region breaks (forced breaks) can be added only on boxes,
i changed RenderFlowThread::addForcedRegionBreak to use a RenderBox* instead of RenderObject*.
No change in functionality, no new tests.
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
(WebCore::FlowThreadController::styleDidChange):
(WebCore::FlowThreadController::layoutRenderNamedFlowThreads):
(WebCore::FlowThreadController::updateFlowThreadsChainIfNecessary):
(WebCore::FlowThreadController::updateFlowThreadsNeedingLayout):
(WebCore::FlowThreadController::updateFlowThreadsNeedingTwoStepLayout):
(WebCore::FlowThreadController::resetFlowThreadsWithAutoHeightRegions):
(WebCore::FlowThreadController::updateFlowThreadsIntoConstrainedPhase):
(WebCore::FlowThreadController::updateFlowThreadsIntoOverflowPhase):
(WebCore::FlowThreadController::updateFlowThreadsIntoMeasureContentPhase):
(WebCore::FlowThreadController::updateFlowThreadsIntoFinalPhase):
(WebCore::FlowThreadController::updateRenderFlowThreadLayersIfNeeded):
(WebCore::FlowThreadController::collectFixedPositionedLayers):
(WebCore::FlowThreadController::isAutoLogicalHeightRegionsCountConsistent):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::validateRegions):
(WebCore::RenderFlowThread::hasCompositingRegionDescendant):
(WebCore::RenderFlowThread::getLayerListForRegion):
(WebCore::RenderFlowThread::updateLayerToRegionMappings):
(WebCore::RenderFlowThread::updateLogicalWidth):
(WebCore::RenderFlowThread::computeLogicalHeight):
(WebCore::RenderFlowThread::repaintRectangleInRegions):
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
(WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
(WebCore::RenderFlowThread::clearRenderObjectCustomStyle):
(WebCore::RenderFlowThread::clearRenderBoxRegionInfoAndCustomStyle):
(WebCore::RenderFlowThread::setRegionRangeForBox):
(WebCore::RenderFlowThread::getRegionRangeForBox):
(WebCore::RenderFlowThread::regionInRange):
(WebCore::RenderFlowThread::checkRegionsWithStyling):
(WebCore::RenderFlowThread::objectInFlowRegion):
(WebCore::RenderFlowThread::isAutoLogicalHeightRegionsCountConsistent):
(WebCore::RenderFlowThread::initializeRegionsComputedAutoHeight):
(WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
(WebCore::RenderFlowThread::markRegionsForOverflowLayoutIfNeeded):
(WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
(WebCore::RenderFlowThread::addForcedRegionBreak):
(WebCore::RenderFlowThread::collectLayerFragments):
(WebCore::RenderFlowThread::fragmentsBoundingBox):
(WebCore::RenderFlowThread::addRegionsVisualEffectOverflow):
(WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
(WebCore::RenderFlowThread::addRegionsLayoutOverflow):
(WebCore::RenderFlowThread::clearRegionsOverflow):
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::nextRendererForNode):
(WebCore::RenderNamedFlowThread::previousRendererForNode):
(WebCore::RenderNamedFlowThread::dependsOn):
(WebCore::addRegionToList):
(WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
(WebCore::RenderNamedFlowThread::checkInvalidRegions):
(WebCore::RenderNamedFlowThread::pushDependencies):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setRegionObjectsRegionStyle):
(WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
(WebCore::RenderRegion::computeChildrenStyleInRegion):
2013-11-03 Zan Dobersek <zdobersek@igalia.com>
PingLoader objects unnecessarily pass through OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=122942
Reviewed by Darin Adler.
There's no need to store new PingLoader objects into an OwnPtr just to leak them out a few lines later
into an unused variable. New objects are created through a new helper method and then left unmanaged as
they're guaranteed to destroy themselves when they receive a response of any kind.
* loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage): Call the new createPingLoader method to spawn the PingLoader.
(WebCore::PingLoader::sendPing): Ditto.
(WebCore::PingLoader::sendViolationReport): Ditto.
(WebCore::PingLoader::createPingLoader): A helper method that creates a new PingLoader object
* loader/PingLoader.h: Declare the new PingLoader::createPingLoader method.
2013-11-03 Andreas Kling <akling@apple.com>
HTMLOptionsCollection is always rooted at a HTMLSelectElement.
<https://webkit.org/b/123719>
Tighten up HTMLOptionsCollection by making the constructor take
a HTMLSelectElement& and adding a HTMLSelectElement& getter instead
of casting all over the place. Removed now-pointless assertions.
Reviewed by Sam Weinig.
2013-11-03 Andreas Kling <akling@apple.com>
RenderTextFragment: Tighten first-letter logic.
<https://webkit.org/b/123714>
Reviewed by Antti Koivisto.
* editing/TextIterator.cpp:
(WebCore::firstRenderTextInFirstLetter):
Use iterator helper to find first RenderText child.
(WebCore::TextIterator::handleTextNodeFirstLetter):
Tightening through type inference.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetterStyle):
(WebCore::RenderBlock::createFirstLetterRenderer):
* rendering/RenderTextFragment.h:
The first letter renderer is always a RenderBoxModelObject,
so make the code deal in that instead of RenderObject.
* rendering/RenderChildIterator.h:
(WebCore::RenderChildIteratorAdapter::first):
(WebCore::RenderChildIteratorAdapter::last):
Remove excess ampersands that were keeping this from building.
2013-11-03 Andreas Kling <akling@apple.com>
CSSPrimitiveValue identifier constructors should return PassRef.
<https://webkit.org/b/123712>
Make CSSPrimitiveValue::createIdentifier() and the corresponding
CSSValuePool helper return PassRef<CSSPrimitiveValue>.
Reviewed by Antti Koivisto.
2013-11-03 Andreas Kling <akling@apple.com>
Use RenderChildIterator in two more loops.
<https://webkit.org/b/123713>
Switch two more renderer child traversal loops to childrenOfType.
Reviewed by Antti Koivisto.
2013-11-03 Andreas Kling <akling@apple.com>
CSSShadowValue constructor should return PassRef.
<https://webkit.org/b/123711>
Make CSSShadowValue::create() return a PassRef since it will never
return null.
Reviewed by Sam Weinig.
2013-11-03 Andreas Kling <akling@apple.com>
CSSLineBoxContainValue constructor should return PassRef.
<https://webkit.org/b/123710>
Make CSSLineBoxContainValue::create() return a PassRef since it
will never return null.
Reviewed by Sam Weinig.
2013-11-03 Antti Koivisto <antti@apple.com>
LiveNodeLists should have non-null ContainerNode as root
https://bugs.webkit.org/show_bug.cgi?id=123709
Reviewed by Andreas Kling.
After moving ChildNodeList off from LiveNodeList the root is now always at least a ContainerNode.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameNS):
(WebCore::ContainerNode::getElementsByName):
(WebCore::ContainerNode::getElementsByClassName):
(WebCore::ContainerNode::radioNodeList):
Also these move from Node to ContainerNode to make tighter typing work.
2013-11-03 Antti Koivisto <antti@apple.com>
Switch createContextualFragment to element iterator
https://bugs.webkit.org/show_bug.cgi?id=123704
Reviewed by Andreas Kling.
* editing/FrameSelection.cpp:
(WebCore::scanForForm):
Use type helpers instead of hasTagName
* editing/markup.cpp:
(WebCore::collectElementsToRemoveFromFragment):
(WebCore::removeElementFromFragmentPreservingChildren):
(WebCore::createContextualFragment):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formElementIndex):
Use type helpers instead of hasTagName
* html/HTMLTagNames.in:
Generate type helpers for <html>.
2013-11-03 Antti Koivisto <antti@apple.com>
ChildNodeList should not be LiveNodeList
https://bugs.webkit.org/show_bug.cgi?id=123708
Reviewed by Sam Weinig.
ChildNodeList is a poor fit to be a LiveNodeList. It is heavily special-cased. It is also
the only subtype that returns non-Elements thus preventing tightening.
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
Support new types.
* dom/ChildNodeList.cpp:
(WebCore::EmptyNodeList::~EmptyNodeList):
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::~ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::childFromFirst):
(WebCore::childFromLast):
(WebCore::ChildNodeList::nodeBeforeCached):
(WebCore::ChildNodeList::nodeAfterCached):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::namedItem):
(WebCore::ChildNodeList::invalidateCache):
Implement the same caching optimizations as LiveNodeList with tighter, less generic code.
* dom/ChildNodeList.h:
Inherit ChildNodeList directly from NodeList.
Add new EmptyNodeList type. This is only ever used if NodeList is requested for a non-container node.
It allows tighter typing in ChildNodeList.
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::namedItem):
* dom/LiveNodeList.h:
(WebCore::LiveNodeListBase::LiveNodeListBase):
(WebCore::LiveNodeListBase::~LiveNodeListBase):
(WebCore::LiveNodeList::LiveNodeList):
Remove ChildNodeList specific code and branches.
* dom/Node.cpp:
(WebCore::Node::childNodes):
Return EmptyNodeList for non-containers.
* dom/NodeList.h:
(WebCore::NodeList::~NodeList):
(WebCore::NodeList::isLiveNodeList):
(WebCore::NodeList::isChildNodeList):
(WebCore::NodeList::isEmptyNodeList):
For isReachableFromOpaqueRoots.
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::ensureChildNodeList):
(WebCore::NodeListsNodeData::removeChildNodeList):
(WebCore::NodeListsNodeData::ensureEmptyChildNodeList):
(WebCore::NodeListsNodeData::removeEmptyChildNodeList):
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList):
EmptyNodeList support.
* html/CollectionType.h:
* html/HTMLCollection.cpp:
(WebCore::shouldOnlyIncludeDirectChildren):
(WebCore::rootTypeFromCollectionType):
(WebCore::invalidationTypeExcludingIdAndNameAttributes):
(WebCore::isMatchingElement):
(WebCore::LiveNodeListBase::itemBefore):
(WebCore::LiveNodeListBase::traverseLiveNodeListFirstElement):
(WebCore::LiveNodeListBase::traverseLiveNodeListForwardToOffset):
(WebCore::LiveNodeListBase::item):
(WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
Remove ChildNodeList specific code and branches.
2013-11-03 Patrick Gansterer <paroga@webkit.org>
[WINCE] Replace OwnPtr with GDIObject
https://bugs.webkit.org/show_bug.cgi?id=123670
Reviewed by Anders Carlsson.
* page/win/FrameGdiWin.cpp:
(WebCore::imageFromRect):
* platform/graphics/wince/FontPlatformData.cpp:
(WebCore::FixedSizeFontData::create):
(WebCore::FontPlatformData::hfont):
(WebCore::FontPlatformData::getScaledFontHandle):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::createPen):
(WebCore::createBrush):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::drawRoundCorner):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::drawText):
* platform/graphics/wince/ImageWinCE.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
* platform/graphics/wince/SharedBitmap.cpp:
(WebCore::SharedBitmap::createHandle):
(WebCore::SharedBitmap::draw):
(WebCore::SharedBitmap::clipBitmap):
(WebCore::drawPatternSimple):
(WebCore::SharedBitmap::drawPattern):
(WebCore::SharedBitmap::DCProvider::getDC):
* platform/graphics/wince/SharedBitmap.h:
2013-11-03 Antti Koivisto <antti@apple.com>
Add helpers for partial descendant traversal to element iterators
https://bugs.webkit.org/show_bug.cgi?id=123703
Reviewed by Andreas Kling.
* dom/ElementAncestorIterator.h:
(WebCore::lineageOfType):
lineageOfType definition didn't match the declaration.
* dom/ElementDescendantIterator.h:
(WebCore::::find):
(WebCore::::from):
Add find and from for getting begin iterator for partial traversals.
* editing/FrameSelection.cpp:
(WebCore::scanForForm):
(WebCore::FrameSelection::currentForm):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::formElementIndex):
(WebCore::HTMLFormElement::findClosestFormAncestor):
Use them in a few places.
2013-11-03 Andreas Kling <akling@apple.com>
Inline RenderStyle functions for getting/setting pseudo style bits.
<https://webkit.org/b/123702>
hasPseudoStyle() actually shows up on html5-full-render.html,
and it's pretty crazy to eat the cost of a function call just
to do some basic bit twiddling.
Reviewed by Antti Koivisto.
2013-11-03 Xabier Rodriguez Calvar <calvaris@igalia.com>
Remove HTMLMediaElement.initialTime
https://bugs.webkit.org/show_bug.cgi?id=123572
Reviewed by Eric Carlson.
Patch based on one by: philipj@opera.com
Blink review URL: https://codereview.chromium.org/35033002
initialTime has been removed from the HTMLMediaElement.
* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_html_media_element_get_initial_time):
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols: Added phony function.
* html/HTMLMediaElement.cpp:
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl: Removed HTMLMediaElement::initialTime.
2013-11-02 Alexey Proskuryakov <ap@apple.com>
Implement generateKey for HMAC and AES-CBC
https://bugs.webkit.org/show_bug.cgi?id=123669
Reviewed by Dan Bernstein.
Tests: crypto/subtle/aes-cbc-generate-key.html
crypto/subtle/hmac-generate-key.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesKeyGenParams): Added bindings for AesKeyGenParams.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): Handle
algorithms that generate AES and HMAC keys.
* bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::generateKey): Added.
* crypto/CryptoAlgorithmAesKeyGenParams.h: Added.
* crypto/CryptoKey.cpp: (WebCore::CryptoKey::randomData):
* crypto/CryptoKey.h:
* crypto/CryptoKeyMac.cpp: Added
Expose a function that produces random data for symmetric crypto keys. Cross-platform
implementation uses ARC4 code from WTF, while Mac uses a system function that
provides a FIPS validated random number generator.
* crypto/CryptoKeyAES.cpp: (WebCore::CryptoKeyAES::generate):
* crypto/CryptoKeyAES.h:
Added a function that creates AES keys.
* crypto/SubtleCrypto.idl: Added generateKey.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey): Added.
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey): Added.
* crypto/keys/CryptoKeyHMAC.cpp: (WebCore::CryptoKeyHMAC::generate):
* crypto/keys/CryptoKeyHMAC.h:
Added a function that creates HMAC keys.
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp: Removed generateKey stub, the implementation
ended up in cross-platform file.
* crypto/mac/CryptoAlgorithmHMACMac.cpp: Ditto.
2013-11-02 Christophe Dumez <ch.dumez@samsung.com>
EnforceRange doesn't enforce range of a short
https://bugs.webkit.org/show_bug.cgi?id=123661
Reviewed by Alexey Proskuryakov.
Handle Web IDL short / unsigned short types as per the
specification:
- http://www.w3.org/TR/WebIDL/#es-short
- http://www.w3.org/TR/WebIDL/#es-unsigned-short
Specifically, we used to treat short / unsigned short as 32bit
integers, which was wrong. We now properly handle them as 16bit
integers.
No new tests, added test cases to js/dom/webidl-type-mapping.html.
* WebCore.exp.in:
* bindings/js/JSDOMBinding.cpp:
(WebCore::toSmallerInt):
(WebCore::toSmallerUInt):
(WebCore::toInt8):
(WebCore::toUInt8):
(WebCore::toInt16):
(WebCore::toUInt16):
* bindings/js/JSDOMBinding.h:
* bindings/scripts/CodeGeneratorJS.pm:
(JSValueToNative):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjShortAttr):
(WebCore::setJSTestObjUnsignedShortAttr):
* testing/TypeConversions.h:
(WebCore::TypeConversions::testShort):
(WebCore::TypeConversions::setTestShort):
(WebCore::TypeConversions::testEnforceRangeShort):
(WebCore::TypeConversions::setTestEnforceRangeShort):
(WebCore::TypeConversions::testUnsignedShort):
(WebCore::TypeConversions::setTestUnsignedShort):
(WebCore::TypeConversions::testEnforceRangeUnsignedShort):
(WebCore::TypeConversions::setTestEnforceRangeUnsignedShort):
* testing/TypeConversions.idl:
2013-11-02 Patrick Gansterer <paroga@webkit.org>
Cleanup OpenTypeUtilities
https://bugs.webkit.org/show_bug.cgi?id=123686
Reviewed by Darin Adler.
Merge the WinCE specific code into the general Windows code to
make the compilation of WinCE port on WinNT easier.
* platform/graphics/opentype/OpenTypeUtilities.cpp:
(WebCore::renameFont):
(WebCore::renameAndActivateFont):
* platform/graphics/opentype/OpenTypeUtilities.h:
* platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::createFontCustomPlatformData):
* platform/graphics/wince/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
2013-11-02 Andreas Kling <akling@apple.com>
CSSFontFaceSrcValue constructors should return PassRef.
<https://webkit.org/b/123692>
Make functions that return non-null CSSFontFaceSrcValues return
PassRef instead of PassRefPtr. Tweak some call sites to be
slightly more efficient.
Reviewed by Anders Carlsson.
2013-11-02 Andreas Kling <akling@apple.com>
CSSStyleSheet::contents() should return a reference.
<https://webkit.org/b/123689>
Make CSSStyleSheet::contents() return a StyleSheetContents& instead
of a pointer. The object was already stored in a Ref.
Reviewed by Anders Carlsson.
2013-11-02 Andreas Kling <akling@apple.com>
CSSReflectValue constructor should return PassRef.
<https://webkit.org/b/123963>
Make CSSReflectValue::create() return a PassRef. Tweak one call
site to be slightly more efficient.
Reviewed by Anders Carlsson.
2013-11-02 Andreas Kling <akling@apple.com>
CSSFontFeatureValue constructor should return PassRef.
<https://webkit.org/b/123691>
Make CSSFontFeatureValue::create() return PassRef, since it never
returns null. Tweak one call site to be slightly more efficient.
Reviewed by Anders Carlsson.
2013-11-02 Andreas Kling <akling@apple.com>
Tighten typing in SVGResources::buildCachedResources().
<https://webkit.org/b/123690>
Make this function take a RenderElement&/SVGRenderStyle& pair instead
of a RenderObject*/SVGRenderStyle* pair. Also tweaked the code a bit,
removing ampersands and asserts as appropriate.
Reviewed by Anders Carlsson.
2013-11-02 Andreas Kling <akling@apple.com>
CSSImageValue constructors should return PassRef.
<https://webkit.org/b/123688>
Make the CSSImageValue::create() helpers return PassRef.
Tightened call sites to avoid null checks and destructor calls.
Reviewed by Anders Carlsson.
2013-11-02 Patrick Gansterer <paroga@webkit.org>
Fix compilation of SynchronousLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=123676
Reviewed by Darin Adler.
Assign a ResourceRequest varibale an empty ResourceRequest instead of 0.
The current solution only works for ports which can create a
ResourceRequest from a pointer, which might not be true for all ports.
* platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::willSendRequest):
2013-11-02 Patrick Gansterer <paroga@webkit.org>
Port LoggingWin.cpp to WinCE
https://bugs.webkit.org/show_bug.cgi?id=123678
Reviewed by Darin Adler.
This makes it easier to use a common list of files
for the different Windows ports later.
* PlatformWin.cmake:
* platform/win/LoggingWin.cpp:
(WebCore::logLevelString):
2013-11-02 Patrick Gansterer <paroga@webkit.org>
Fix UnicodeWchar after r157330.
https://bugs.webkit.org/show_bug.cgi?id=123668
Reviewed by Darin Adler.
* editing/TextIterator.cpp:
(WebCore::SearchBuffer::append):
* platform/graphics/wince/FontWinCE.cpp:
(WebCore::generateComponents):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawText):
* platform/text/wchar/TextBreakIteratorWchar.cpp:
(WebCore::isCharStop):
(WebCore::isLineStop):
(WebCore::isSentenceStop):
(WebCore::WordBreakIterator::next):
(WebCore::WordBreakIterator::previous):
2013-11-02 Andreas Kling <akling@apple.com>
Use RenderChildIterator in a couple of places.
<https://webkit.org/b/123684>
Added isRendererOfType() for RenderBox and RenderBlock and switch
some loops over to using childrenOfType<>. Also sprinkled const
and references on touched code.
Reviewed by Antti Koivisto.
2013-11-02 Zan Dobersek <zdobersek@igalia.com>
Manage FileReaderLoader through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=123666
Reviewed by Anders Carlsson.
Construct FileReaderLoader objects through std::make_unique and store them in std::unique_ptr.
* fileapi/FileReader.cpp:
(WebCore::FileReader::readInternal):
* fileapi/FileReader.h:
2013-11-02 Andreas Kling <akling@apple.com>
Add a child renderer iterator.
<https://webkit.org/b/123662>
Introduce an ElementIterator-style iterator for renderers and put
it to use in a childrenOfType() implementation.
It's used just like the Element iterators:
auto sections = childrenOfType<RenderTableSection>(*this);
for (auto section = sections.begin(), section = sections.end(); section != sections.end(); ++section)
section->thisOrThat();
Just like the DOM counterpart, it relies on a templatized helper:
bool isRendererOfType<T>(const RenderObject&)
This patch puts the iterator to use in a couple of random places.
Reviewed by Antti Koivisto.
2013-11-02 Alexey Proskuryakov <ap@apple.com>
Implement remaining SHA variations for WebCrypto
https://bugs.webkit.org/show_bug.cgi?id=123659
Reviewed by Anders Carlsson.
Tests: crypto/subtle/sha-224.html
crypto/subtle/sha-256.html
crypto/subtle/sha-384.html
crypto/subtle/sha-512.html
* WebCore.xcodeproj/project.pbxproj:
* crypto/algorithms/CryptoAlgorithmSHA224.cpp: Added.
(WebCore::CryptoAlgorithmSHA224::CryptoAlgorithmSHA224):
(WebCore::CryptoAlgorithmSHA224::~CryptoAlgorithmSHA224):
(WebCore::CryptoAlgorithmSHA224::create):
(WebCore::CryptoAlgorithmSHA224::identifier):
* crypto/algorithms/CryptoAlgorithmSHA224.h: Added.
* crypto/algorithms/CryptoAlgorithmSHA256.cpp: Added.
(WebCore::CryptoAlgorithmSHA256::CryptoAlgorithmSHA256):
(WebCore::CryptoAlgorithmSHA256::~CryptoAlgorithmSHA256):
(WebCore::CryptoAlgorithmSHA256::create):
(WebCore::CryptoAlgorithmSHA256::identifier):
* crypto/algorithms/CryptoAlgorithmSHA256.h: Added.
* crypto/algorithms/CryptoAlgorithmSHA384.cpp: Added.
(WebCore::CryptoAlgorithmSHA384::CryptoAlgorithmSHA384):
(WebCore::CryptoAlgorithmSHA384::~CryptoAlgorithmSHA384):
(WebCore::CryptoAlgorithmSHA384::create):
(WebCore::CryptoAlgorithmSHA384::identifier):
* crypto/algorithms/CryptoAlgorithmSHA384.h: Added.
* crypto/algorithms/CryptoAlgorithmSHA512.cpp: Added.
(WebCore::CryptoAlgorithmSHA512::CryptoAlgorithmSHA512):
(WebCore::CryptoAlgorithmSHA512::~CryptoAlgorithmSHA512):
(WebCore::CryptoAlgorithmSHA512::create):
(WebCore::CryptoAlgorithmSHA512::identifier):
* crypto/algorithms/CryptoAlgorithmSHA512.h: Added.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
* crypto/mac/CryptoAlgorithmSHA224Mac.cpp: Added.
(WebCore::CryptoAlgorithmSHA224::digest):
* crypto/mac/CryptoAlgorithmSHA256Mac.cpp: Added.
(WebCore::CryptoAlgorithmSHA256::digest):
* crypto/mac/CryptoAlgorithmSHA384Mac.cpp: Added.
(WebCore::CryptoAlgorithmSHA384::digest):
* crypto/mac/CryptoAlgorithmSHA512Mac.cpp: Added.
(WebCore::CryptoAlgorithmSHA512::digest):
2013-11-02 Patrick Gansterer <paroga@webkit.org>
Various small WinCE build fixes
* editing/TextIterator.cpp:
(WebCore::SearchBuffer::append):
* platform/graphics/BitmapImage.h:
* platform/graphics/wince/ImageWinCE.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/graphics/wince/PlatformPathWinCE.h:
* platform/win/PopupMenuWin.h:
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderThemeWinCE::adjustMenuListButtonStyle):
2013-11-01 Alexey Proskuryakov <ap@apple.com>
Add WebCrypto AES-CBC
https://bugs.webkit.org/show_bug.cgi?id=123647
Reviewed by Anders Carlsson.
Tests: crypto/subtle/aes-cbc-192-encrypt-decrypt.html
crypto/subtle/aes-cbc-256-encrypt-decrypt.html
crypto/subtle/aes-cbc-encrypt-decrypt-with-padding.html
crypto/subtle/aes-cbc-encrypt-decrypt.html
crypto/subtle/aes-cbc-invalid-length.html
crypto/subtle/aes-cbc-wrong-key-class.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::getProperty): Factored out a function to get a property as JSValue.
(WebCore::getHashAlgorithm): Use it.
(WebCore::createAesCbcParams): Added converter for AesCbcParams.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt): Support AES_CBC.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt): Ditto.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey): Support all
algorithms, all the new ones just have trivial dictionaries.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey): Ditto.
* bindings/js/JSCryptoOperationData.cpp: Added.
(WebCore::sequenceOfCryptoOperationDataFromJSValue):
(WebCore::cryptoOperationDataFromJSValue):
* bindings/js/JSCryptoOperationData.h: Added.
Moved CryptoOperationData bindings out of JSSubtleCryptoCustom.cpp, so that we
could use them in JSCryptoAlgorithmDictionary.cpp.
* bindings/js/JSDOMPromise.h: (WebCore::PromiseWrapper::reject): Added a specialization
to reject with null result. The spec doesn't actually say how algorithms fail.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::JSSubtleCrypto::encrypt): Added.
(WebCore::JSSubtleCrypto::decrypt): Ditto.
(WebCore::JSSubtleCrypto::sign): Style fix.
* crypto/CryptoAlgorithmAesCbcParams.h: Added.
* crypto/CryptoKey.h:
(WebCore::CryptoKeyClass):
* crypto/keys/CryptoKeyHMAC.h:
(WebCore::asCryptoKeyHMAC):
Added poor man's RTTI, so that we can safely upcast Keys passed fro JavaScript code.
* crypto/CryptoKeyAES.cpp: Added.
(WebCore::CryptoKeyAES::CryptoKeyAES):
(WebCore::CryptoKeyAES::~CryptoKeyAES):
(WebCore::CryptoKeyAES::buildAlgorithmDescription):
* crypto/CryptoKeyAES.h: Added.
(WebCore::asCryptoKeyAES):
AES keys are the same for all algorithms, but they still need to remember the algorithm.
* crypto/SubtleCrypto.idl: Added encrypt/decrypt.
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp: Added.
(WebCore::CryptoAlgorithmAES_CBC::CryptoAlgorithmAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::~CryptoAlgorithmAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::create):
(WebCore::CryptoAlgorithmAES_CBC::identifier):
(WebCore::CryptoAlgorithmAES_CBC::importKey):
(WebCore::CryptoAlgorithmAES_CBC::exportKey):
* crypto/algorithms/CryptoAlgorithmAES_CBC.h: Added.
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp: Added.
(WebCore::transformAES_CBC):
(WebCore::CryptoAlgorithmAES_CBC::encrypt):
(WebCore::CryptoAlgorithmAES_CBC::decrypt):
(WebCore::CryptoAlgorithmAES_CBC::generateKey):
Added.
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
Check key class before casting it to CryptoKeyHMAC.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Register AES-CBC
on Mac, so that it can be used.
2013-11-01 Andreas Kling <akling@apple.com>
SVGRenderStyle accessors should return references.
<https://webkit.org/b/123656>
RenderStyle::svgStyle() and accessSVGStyle() never return null,
so make them return references instead.
This flushed out a myriad of pointless null checks and assertions.
Reviewed by Anders Carlsson.
2013-11-01 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Removing MediaStreamTrackVector and MediaStreamSourceVector typedefs
https://bugs.webkit.org/show_bug.cgi?id=123648
Reviewed by Eric Carlson.
No new tests needed.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::MediaStream::clone):
(WebCore::MediaStream::cloneMediaStreamTrackVector):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::trackVectorForType):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::callSuccessHandler):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource):
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::create):
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
* platform/mediastream/MediaStreamDescriptor.h:
* platform/mediastream/MediaStreamSource.h:
2013-11-01 Andreas Kling <akling@apple.com>
createFontFaceValue() should be smarter about overgrown cache.
<https://webkit.org/b/123643>
Instead of clearing the whole font-face value cache when it passes
128 entries, just delete one entry at random.
Reviewed by Geoffrey Garen.
2013-11-01 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Fixing mac code to use new MediaStreamDescriptor create method
https://bugs.webkit.org/show_bug.cgi?id=123653
Reviewed by Eric Carlson.
No new tests needed.
* platform/mediastream/mac/MediaStreamCenterMac.cpp:
(WebCore::MediaStreamCenterMac::createMediaStream):
2013-11-01 Andreas Kling <akling@apple.com>
Re-use existing RenderStyle local in textWidth().
<https://webkit.org/b/123392>
We already have the RenderStyle cached in a local here, so avoid
getting it from RenderText since that has to go via the parent.
Reviewed by Antti Koivisto.
2013-11-01 Andreas Kling <akling@apple.com>
Neuter WTF_MAKE_FAST_ALLOCATED in GLOBAL_FASTMALLOC_NEW builds.
<https://webkit.org/b/123639>
WebCore::TimerBase really needed to have the new/delete operators
overridden, in order for WebCore::SuspendableTimer to be able to
choose that "operator new" out of the two it inherits.
Reviewed by Anders Carlsson.
2013-11-01 Andreas Kling <akling@apple.com>
CSSCanvasValue construction helper should return PassRef.
<https://webkit.org/b/123650>
Return PassRef instead of PassRefPtr from functions that return
ownership-passing pointers that are known to be non-null.
Reviewed by Anders Carlsson.
2013-11-01 Joseph Pecoraro <pecoraro@apple.com>
Move CF/Mac WTF String implementations down into WTF
https://bugs.webkit.org/show_bug.cgi?id=123635
Reviewed by Sam Weinig.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
2013-11-01 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Removing unnecessary early returns in addTrack, removeTrack and removeRemoteSource methods
https://bugs.webkit.org/show_bug.cgi?id=123644
Reviewed by Eric Carlson.
No new tests needed.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::removeRemoteSource):
(WebCore::MediaStream::trackVectorForType):
* Modules/mediastream/MediaStream.h:
2013-11-01 Andreas Kling <akling@apple.com>
CSSAspectRatioValue construction helper should return PassRef.
<https://webkit.org/b/123645>
Return PassRef instead of PassRefPtr from functions that return
ownership-passing pointers that are known to be non-null.
Reviewed by Darin Adler.
2013-11-01 Myles C. Maxfield <mmaxfield@apple.com>
Initial implementation of text-decoration-skip ink
https://bugs.webkit.org/show_bug.cgi?id=121806
Reviewed by Darin Adler.
text-decoration-skip: ink is implemented by the following steps:
1. Before drawing any decorations, figure out the bounding box for the decorations that will be drawn
2. Create an ImageBuffer with these dimensions
3. Draw text into this ImageBuffer with a thicker stroke
4. Apply the ImageBuffer as a mask to the context
5. Draw decorations like normal
6. Clean up
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::computeLineBoundsAndAntialiasingModeForText): Don't call GraphicsContext::roundToDevicePixels
when painting is disabled
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Pass the TextPainter to paintDecoration
(WebCore::computeUnderlineOffset): Small cleanup
(WebCore::getWavyStrokeControlPointDistance): Pulling out of strokeWavyTextDecoration()
(WebCore::getWavyStrokeStep): Ditto
(WebCore::strokeWavyTextDecoration): Use the previous 2 functions
(WebCore::getSingleDecorationBoundingBox): Pulling out repeated code into a function
(WebCore::getDecorationBoundingBox): Compute the bounding box for an underline which
hasn't been drawn yet
(WebCore::InlineTextBox::paintDecoration): Construct a mask and apply it to the GraphicsContext
* rendering/InlineTextBox.h: paintDecoration needs the TextPainter
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Redraw the underline when
text-decoration-skip changes
2013-11-01 Andreas Kling <akling@apple.com>
CSS 'initial' and 'inherit' value constructors should return PassRef.
<https://webkit.org/b/123641>
Make the helpers involved in constructing CSS{Initial,Inherited}Value
all return PassRef instead of PassRefPtr. This avoids generating
pointless null checks at the call sites.
Reviewed by Darin Adler.
2013-11-01 Andreas Kling <akling@apple.com>
Kill RenderArena.
<https://webkit.org/b/123634>
There are no remaining users of the RenderArena allocator.
Reviewed by Geoffrey Garen.
2013-11-01 James Craig <jcraig@apple.com>
AX: Regression: media controls are no longer accessible
https://bugs.webkit.org/show_bug.cgi?id=121990
Reviewed by Jer Noble.
Updated existing test coverage.
Added ARIA roles, attrs, and labels to the new media controls shadow DOM.
Localization will be handled in http://webkit.org/b/120956
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.UIString):
(Controller.prototype.createControls):
(Controller.prototype.handleLoadStart):
(Controller.prototype.handleError):
(Controller.prototype.handleAbort):
(Controller.prototype.handleSuspend):
(Controller.prototype.handleStalled):
(Controller.prototype.handleWaiting):
(Controller.prototype.handleFullscreenChange):
(Controller.prototype.handleMuteButtonClicked):
(Controller.prototype.handleMinButtonClicked):
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.handleVolumeSliderChange):
(Controller.prototype.updatePlaying):
2013-11-01 Andreas Kling <akling@apple.com>
Take BidiRuns out of the arena.
<https://webkit.org/b/123630>
Stop arena-allocating BidiRun objects and use regular new/delete.
With this, there are no remaining clients of RenderArena.
It will be removed in a subsequent patch.
Reviewed by Anders Carlsson.
2013-11-01 Afonso R. Costa Jr. <afonso.costa@samsung.com>
Expose setApplicationCacheOriginQuota via window.internals
https://bugs.webkit.org/show_bug.cgi?id=87838
Reviewed by Joseph Pecoraro.
Also reset the default origin quota in resetToConsistentState().
* testing/Internals.cpp: Add setApplicationCacheOriginQuota.
(WebCore::Internals::resetToConsistentState): Reset the default origin
quota.
(WebCore::Internals::setApplicationCacheOriginQuota): Added.
* testing/Internals.h: Add setApplicationCacheOriginQuota.
* testing/Internals.idl: Ditto.
2013-11-01 Nick Diego Yamane <nick.yamane@openbossa.org>
Explicitly initialize RefCounted base class in MediaStreamTrack's constructors
https://bugs.webkit.org/show_bug.cgi?id=123620
Reviewed by Andreas Kling.
No new tests needed.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):
2013-11-01 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding addRemoteTrack and removeRemoteTrack functions to MediaStreamDescriptor and MediaStream
https://bugs.webkit.org/show_bug.cgi?id=123477
Reviewed by Eric Carlson.
When the backend report that a remote track has been added or removed by a remote peer, we must be able to add
it to its MediaStream
No new tests needed.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack): Splitted in two parts that can be used by old addTrack and new addRemoteTrack.
(WebCore::MediaStream::removeTrack): Splitted in two parts that can be used by old removeTrack and new
removeRemoteTrack.
(WebCore::MediaStream::addRemoteSource): Reusing code in new addTrack method.
(WebCore::MediaStream::removeRemoteSource): Refactored.
(WebCore::MediaStream::addRemoteTrack): Added.
(WebCore::MediaStream::removeRemoteTrack): Added.
(WebCore::MediaStream::getTrackVectorForType): Helper method that returns a vector of tracks according to
track's type (Audio or Video).
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::addRemoteTrack): Added.
(WebCore::MediaStreamDescriptor::removeRemoteTrack): Added.
* platform/mediastream/MediaStreamDescriptor.h:
2013-11-01 Brendan Long <b.long@cablelabs.com>
[GStreamer] Support audio and video tracks
https://bugs.webkit.org/show_bug.cgi?id=117039
Reviewed by Philippe Normand.
Tests: media/track/audio/audio-track-mkv-vorbis-addtrack.html
media/track/audio/audio-track-mkv-vorbis-enabled.html
media/track/audio/audio-track-mkv-vorbis-language.html
media/track/in-band/track-in-band-kate-ogg-addtrack.html
media/track/in-band/track-in-band-srt-mkv-addtrack.html
media/track/video/video-track-mkv-theora-addtrack.html
media/track/video/video-track-mkv-theora-language.html
media/track/video/video-track-mkv-theora-selected.html
* GNUmakefile.list.am: Add audio and video track files.
* PlatformEfl.cmake: Same.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Schedule "change" event.
(WebCore::HTMLMediaElement::videoTrackSelectedChanged): Same.
* html/track/AudioTrack.cpp:
(WebCore::AudioTrack::setEnabled): Call m_private->setEnabled
(WebCore::AudioTrack::enabledChanged): Added callback.
(WebCore::AudioTrack::labelChanged): Same.
(WebCore::AudioTrack::languageChanged): Same.
(WebCore::AudioTrack::willRemoveAudioTrackPrivate): Use ASSERT_UNUSED for consistence.
* html/track/AudioTrack.h: Add new enabled, label and language callbacks.
* html/track/VideoTrack.cpp:
(WebCore::VideoTrack::setSelected): Call m_private->setEnabled
(WebCore::VideoTrack::selectedChanged): Added callback.
(WebCore::VideoTrack::labelChanged): Same.
(WebCore::VideoTrack::languageChanged): Same.
(WebCore::VideoTrack::willRemoveVideoTrackPrivate): Use ASSERT_UNUSED for consistence.
* html/track/VideoTrack.h: Add new selected, label and language callbacks.
* platform/graphics/AudioTrackPrivate.h:
(WebCore::AudioTrackPrivate::setEnabled): Call m_client->enabledChanged
* platform/graphics/VideoTrackPrivate.h:
(WebCore::VideoTrackPrivate::setSelected): Call m_client->selectedChanged
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
(WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer): Add ASSERT(m_pad)
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfTagsChanged): Look at all tag events instead of just the first one.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateVideoSinkCapsChangedCallback): Separated callback when caps change from callback when number of videos change.
(WebCore::mediaPlayerPrivateVideoCapsChangeTimeoutCallback): Same.
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Initialize m_videoCapsTimerHandler.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Disconnect audio and video tracks and remove callbacks.
(WebCore::MediaPlayerPrivateGStreamer::videoCapsChanged): Separated callback when caps change from callback when number of videos change.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): Create video tracks for each stream.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideoCaps): Separated callback when caps change from callback when number of videos change.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): Create audio tracks for each stream.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Add audio and video tracks, and a pointer to keep track of the default audio stream.
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp: Added.
* platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h: Added.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp: Add GRefPtr<GstTagList>
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp: Added, handles tags and "active" property of audio and video tracks.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h: Added.
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp: Added.
* platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h: Added.
2013-11-01 Patrick Gansterer <paroga@webkit.org>
Buildfix for !ENABLE(INSPECTOR) after 157288.
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::willDispatchEvent):
2013-11-01 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Avoid explicit traversal of text controls and the render tree in AtkText implementation
https://bugs.webkit.org/show_bug.cgi?id=123153
Reviewed by Chris Fleizach.
Remove functions from the AtkText implementation that manually
walk the render tree to compose the text for a exposed objects in
certain cases (e.g. anonymous blocks, text controls).
The reason for this change is that the current implementation
follows an error-prone approach, since by doing things like
manually walking the render tree from here we are not properly
considering all the possible scenarios that might happen when
traversing text. This, however, is a task that is better suited
for the TextIterator, which is already written to consider all
those cases and to emit the proper character in every single
situation: text nodes, replaced objects and so on.
So, by removing all that too specific code (textForObject() and
textForRenderer() mainly) from WebKitAccessibleInterfaceText.cpp
and relying in AccessibilityObject::textUnderElement(), which it
ends up using the TextIterator for certain cases, we have a much
better and robust method of retrieving the text associated with an
instance of AtkObject implementing the AtkText interface.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(webkitAccessibleTextGetText): Removed call to textForObject(), now that
we have just removed that function, together with textForRenderer().
Make AccessibilityRenderObject::textUnderElement() able to deal with
anonymous blocks directly, by creating a range based in the boundaries
defined by the first and last child renderers for that block. This will
make possible to treat an anonymous block as a whole instead of having
to rely in the concatenation of each of its children, as it does now.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement): Added a new code
path to deal with anonymous blocks for text renderers, or when including
all the children is explicitly requested.
Modified TextIterator so text for children of replaced objects are
ignored if we are emmiting the special character for those objects.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement): Make sure no children are
handled a replaced object if m_emitsObjectReplacementCharacters is set.
* editing/TextIterator.h: Updated m_emitsObjectReplacementCharacters
description to reflect the new behavior.
2013-11-01 Alexey Proskuryakov <ap@apple.com>
Add a Mac WebCrypto implementation of HMAC importKey/sign/verify
https://bugs.webkit.org/show_bug.cgi?id=123598
Reviewed by Anders Carlsson.
Test: crypto/subtle/hmac-sign-verify.html
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSSubtleCryptoCustom.cpp: Added property svn:eol-style.
(WebCore::createAlgorithmFromJSValue):
(WebCore::cryptoOperationDataFromJSValue):
(WebCore::cryptoKeyFormatFromJSValue):
(WebCore::cryptoKeyUsagesFromJSValue):
(WebCore::JSSubtleCrypto::sign):
(WebCore::JSSubtleCrypto::verify):
(WebCore::JSSubtleCrypto::digest):
(WebCore::JSSubtleCrypto::importKey):
* crypto/SubtleCrypto.idl:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp: Added.
(WebCore::CryptoAlgorithmHMAC::CryptoAlgorithmHMAC):
(WebCore::CryptoAlgorithmHMAC::~CryptoAlgorithmHMAC):
(WebCore::CryptoAlgorithmHMAC::create):
(WebCore::CryptoAlgorithmHMAC::identifier):
(WebCore::CryptoAlgorithmHMAC::importKey):
(WebCore::CryptoAlgorithmHMAC::exportKey):
* crypto/algorithms/CryptoAlgorithmHMAC.h: Added.
* crypto/keys: Added.
* crypto/keys/CryptoKeyHMAC.cpp: Added.
(WebCore::CryptoKeyHMAC::CryptoKeyHMAC):
(WebCore::CryptoKeyHMAC::~CryptoKeyHMAC):
(WebCore::CryptoKeyHMAC::buildAlgorithmDescription):
* crypto/keys/CryptoKeyHMAC.h: Added.
* crypto/mac/CryptoAlgorithmHMACMac.cpp: Added.
(WebCore::getCommonCryptoAlgorithm):
(WebCore::calculateSignature):
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
(WebCore::CryptoAlgorithmHMAC::generateKey):
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Clean up a few Inspector interfaces
https://bugs.webkit.org/show_bug.cgi?id=123594
Reviewed by Timothy Hatcher.
* WebCore.exp.in:
* inspector/InjectedScriptHost.cpp:
* inspector/InspectorBaseAgent.h:
(WebCore::InspectorBaseAgentInterface::name):
* inspector/InspectorConsoleAgent.cpp:
* inspector/InspectorConsoleAgent.h:
(WebCore::InspectorConsoleAgent::enabled):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::profilerEnabled):
* inspector/InspectorController.h:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorDebuggerAgent.h:
(WebCore::InspectorDebuggerAgent::enabled):
* inspector/InspectorRuntimeAgent.h:
(WebCore::InspectorRuntimeAgent::enabled):
2013-10-31 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Vend layer contents via IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=123600
Reviewed by Anders Carlsson.
* WebCore.exp.in:
Export sRGBColorSpaceRef.
* WebCore.xcodeproj/project.pbxproj:
Expose GraphicsContextCG.h.
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Remove unused Page::setDebuggerForAllPages
https://bugs.webkit.org/show_bug.cgi?id=123602
Reviewed by Timothy Hatcher.
* page/Page.cpp:
* page/Page.h:
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove InspectorState
https://bugs.webkit.org/show_bug.cgi?id=123547
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
* inspector/InspectorAgent.h:
(WebCore::InspectorAgent::create):
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
* inspector/InspectorApplicationCacheAgent.h:
(WebCore::InspectorApplicationCacheAgent::create):
* inspector/InspectorBaseAgent.cpp:
(WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface):
* inspector/InspectorBaseAgent.h:
(WebCore::InspectorBaseAgent::InspectorBaseAgent):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::InspectorCSSAgent):
* inspector/InspectorCSSAgent.h:
(WebCore::InspectorCSSAgent::create):
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
* inspector/InspectorCanvasAgent.h:
(WebCore::InspectorCanvasAgent::create):
* inspector/InspectorClient.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::create):
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::create):
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
* inspector/InspectorDOMStorageAgent.h:
(WebCore::InspectorDOMStorageAgent::create):
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
* inspector/InspectorDatabaseAgent.h:
(WebCore::InspectorDatabaseAgent::create):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::create):
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::InspectorIndexedDBAgent):
* inspector/InspectorIndexedDBAgent.h:
(WebCore::InspectorIndexedDBAgent::create):
* inspector/InspectorInputAgent.cpp:
(WebCore::InspectorInputAgent::InspectorInputAgent):
* inspector/InspectorInputAgent.h:
(WebCore::InspectorInputAgent::create):
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
* inspector/InspectorLayerTreeAgent.h:
(WebCore::InspectorLayerTreeAgent::create):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::InspectorMemoryAgent):
(WebCore::InspectorMemoryAgent::create):
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::create):
(WebCore::InspectorPageAgent::InspectorPageAgent):
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::PageProfilerAgent::PageProfilerAgent):
(WebCore::InspectorProfilerAgent::create):
(WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::InspectorResourceAgent):
* inspector/InspectorResourceAgent.h:
(WebCore::InspectorResourceAgent::create):
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorState.cpp: Removed.
* inspector/InspectorState.h: Removed.
* inspector/InspectorStateClient.h: Removed.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::create):
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::create):
(WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
* inspector/InspectorWorkerAgent.h:
* inspector/PageConsoleAgent.cpp:
(WebCore::PageConsoleAgent::PageConsoleAgent):
* inspector/PageConsoleAgent.h:
(WebCore::PageConsoleAgent::create):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::create):
(WebCore::PageDebuggerAgent::PageDebuggerAgent):
* inspector/PageDebuggerAgent.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::PageRuntimeAgent):
* inspector/PageRuntimeAgent.h:
(WebCore::PageRuntimeAgent::create):
* inspector/WorkerConsoleAgent.cpp:
(WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
* inspector/WorkerConsoleAgent.h:
(WebCore::WorkerConsoleAgent::create):
* inspector/WorkerDebuggerAgent.cpp:
(WebCore::WorkerDebuggerAgent::create):
(WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent):
* inspector/WorkerDebuggerAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::connectFrontend):
(WebCore::WorkerInspectorController::disconnectFrontend):
* inspector/WorkerInspectorController.h:
* inspector/WorkerRuntimeAgent.cpp:
(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
* inspector/WorkerRuntimeAgent.h:
(WebCore::WorkerRuntimeAgent::create):
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::SharedWorkerProxy::postMessageToPageInspector):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
* workers/WorkerMessagingProxy.h:
* workers/WorkerReportingProxy.h:
2013-10-31 Brady Eidson <beidson@apple.com>
Split PendingDeleteCall into its own header
https://bugs.webkit.org/show_bug.cgi?id=123597
Reviewed by Beth “Okay I guess so, bro” Dakin.
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::deleteDatabase):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
* Modules/indexeddb/IDBPendingDeleteCall.h: Added.
(WebCore::IDBPendingDeleteCall::create):
(WebCore::IDBPendingDeleteCall::callbacks):
(WebCore::IDBPendingDeleteCall::IDBPendingDeleteCall):
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Convert some InspectorObject member variables to HashSet/HashMap
https://bugs.webkit.org/show_bug.cgi?id=123579
Reviewed by Timothy Hatcher.
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
(WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
Make m_eventListenerBreakpoints and m_xhrBreakpoints HashSet.
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::removeBreakpoint):
(WebCore::InspectorDebuggerAgent::didParseSource):
Make m_javaScriptBreakpoints a HashMap.
2013-10-31 Youenn Fablet <youennf@gmail.com>
Correct the elapsedTime calculation in SVG animations
https://bugs.webkit.org/show_bug.cgi?id=119289
Reviewed by Brent Fulgham.
Merged from Blink: https://chromium.googlesource.com/chromium/blink/+/338f9badca7fb7880abdb0cecd5f02493c1f7d2e
Test: svg/animations/getCurrentTime-pause-unpause.html
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::SMILTimeContainer):
(WebCore::SMILTimeContainer::elapsed):
(WebCore::SMILTimeContainer::begin):
(WebCore::SMILTimeContainer::pause):
(WebCore::SMILTimeContainer::resume):
(WebCore::SMILTimeContainer::setElapsed):
* svg/animation/SMILTimeContainer.h:
2013-10-31 Andreas Kling <akling@apple.com>
Manage line-grid RootInlineBox with unique_ptr.
<https://webkit.org/b/123583>
Use smart pointers for the RenderBlockFlow's optional line-grid box
instead of manual new/delete.
Reviewed by Antti Koivisto.
2013-10-31 Alexey Proskuryakov <ap@apple.com>
Enable WebCrypto on Mac
https://bugs.webkit.org/show_bug.cgi?id=123587
Reviewed by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig: Enable it.
* bindings/js/JSCryptoAlgorithmDictionary.cpp: Build fix.
* crypto/CryptoAlgorithmRegistry.cpp: (WebCore::CryptoAlgorithmRegistry::getIdentifierForName):
Special case empty keys to avoid upsetting HashMap.
* crypto/algorithms/CryptoAlgorithmSHA1.cpp: (WebCore::CryptoAlgorithmSHA1::create):
Build fix. Can't use make_unique, because constructor is private.
2013-10-31 Myles C. Maxfield <mmaxfield@apple.com>
Underline bounds cannot be queried before underline itself is drawn
https://bugs.webkit.org/show_bug.cgi?id=123310
Reviewed by Dean Jackson.
GraphicsContext's drawLineForText function is used to draw underlines,
strikethroughs, and overlines. Before drawing the line, this function
modifies the bounds given to it in order to make underlines crisp. However,
this means that it is impossible to know where an underline will be drawn
before drawing it. This patch pulls out this adjustment computation into
GraphicsContext::computeLineBoundsForText, then passes the result to
drawLineForText
Because there should be no observable difference, no tests need to be updated.
* platform/graphics/GraphicsContext.h: Signature of new computeLineBoundsForText
function
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore::GraphicsContext::computeLineBoundsForText): Implement new function
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::computeLineBoundsForText): Ditto
(WebCore::GraphicsContext::drawLineForText): Use computeLineBoundsForText
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::computeLineBoundsAndAntialiasingModeForText): Static function that
performs the actual bounds computation
(WebCore::GraphicsContext::computeLineBoundsForText): Calls
computeLineBoundsAndAntialiasingModeForText
(WebCore::GraphicsContext::drawLineForText): Use new function
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::computeLineBoundsForText): Implement new function
2013-10-31 Beth Dakin <bdakin@apple.com>
Repro scrolling crash with scrollbars that use setPresentationValue on the
scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=123549
-and corresponding-
<rdar://problem/15246606>
Reviewed by Brady Eidson.
Here's another speculative fix. If a scrollbar was removed, we would not properly
inform the scrolling thread. Instead of checking supportsUpdateOnSecondaryThread()
before calling setScrollbarPaintersFromScrollbars(), check it from within
setScrollbarPaintersFromScrollbars(), and this will allow the ScrollbarPainter to
be properly updated.
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
* page/scrolling/mac/ScrollingStateScrollingNodeMac.mm:
(WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars):
2013-10-31 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed typo fix after 158386. (buildfix after r158365)
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::callSuccessHandler):
2013-10-31 Myles C. Maxfield <mmaxfield@apple.com>
Move CSS3 text decoration implementation behind ENABLE(CSS3_TEXT_DECORATION)
https://bugs.webkit.org/show_bug.cgi?id=123541
Reviewed by Tim Horton.
Enabled CSS3 text decoration tests
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::renderTextDecorationStyleFlagsToCSSValue): Mapping internal
representation to a CSSValue
(WebCore::ComputedStyleExtractor::propertyValue): Ditto
* css/CSSParser.cpp: Moving parsing functions behind new flag
(WebCore::isColorPropertyID):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::addTextDecorationProperty):
(WebCore::CSSParser::parseTextDecorationSkip):
(WebCore::CSSParser::parseTextUnderlinePosition):
* css/CSSParser.h:
* css/CSSPrimitiveValueMappings.h:
* css/CSSPropertyNames.in: Marking the new properties behind new flag
* css/CSSValueKeywords.in: Marking new values behind new flag
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StylePropertyShorthand.cpp:
(WebCore::shorthandForProperty): Move text decoration shorthand
(WebCore::matchingShorthandsForLonghand):
* css/StylePropertyShorthand.h:
* css/StyleResolver.cpp:
(WebCore::isValidVisitedLinkProperty):
(WebCore::StyleResolver::applyProperty):
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::setPlatformStrokeStyle):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLine):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::createPen):
* rendering/InlineFlowBox.cpp:
* rendering/InlineFlowBox.h:
* rendering/InlineTextBox.cpp:
(WebCore::textDecorationStyleToStrokeStyle):
(WebCore::computeUnderlineOffset):
(WebCore::InlineTextBox::paintDecoration):
* rendering/RenderObject.cpp:
(WebCore::decorationColor):
* rendering/RootInlineBox.cpp:
* 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:
2013-10-31 Alexey Proskuryakov <ap@apple.com>
[WebCrypto] Add SHA-1
https://bugs.webkit.org/show_bug.cgi?id=123582
Reviewed by Anders Carlsson.
Tests: security/crypto-subtle-arguments.html
security/crypto-subtle-sha1.html
* WebCore.xcodeproj/project.pbxproj: Added new files.
* bindings/js/JSSubtleCryptoCustom.cpp:
(WebCore::createAlgorithmFromJSValue):
(WebCore::sequenceOfCryptoOperationDataFromJSValue):
(WebCore::JSSubtleCrypto::digest):
* crypto/SubtleCrypto.idl:
Added bindings for crypto.digest.
* crypto/algorithms: Added.
* crypto/algorithms/CryptoAlgorithmSHA1.cpp: Added.
* crypto/algorithms/CryptoAlgorithmSHA1.h: Added.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Register SHA-1.
* crypto/mac/CryptoAlgorithmSHA1Mac.cpp: Added.
(WebCore::CryptoAlgorithmSHA1::digest): Performs the work synchronously, because
otherwise we'd have to copy the data first, which is crazy for something as simple
as hashing. We can change to a dispatch queue later if we find that it's actually
better to copy and do the work asynchronously.
2013-10-31 Sudarsana Nagineni <sudarsana.nagineni@intel.com>
REGRESSION(r158348): Breaks Debug build
https://bugs.webkit.org/show_bug.cgi?id=123562
Reviewed by Brady Eidson.
Remove an unnecessary check that cause compilation failure.
No new tests since this just fixes the build failure.
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseVersion):
2013-10-31 Csaba Osztrogonác <ossy@webkit.org>
One more speculative buildfix after r158365.
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::callSuccessHandler):
2013-10-31 Csaba Osztrogonác <ossy@webkit.org>
One more speculative buildfix after r158365.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::didAddRemoteStream):
2013-10-31 Csaba Osztrogonác <ossy@webkit.org>
Speculative buildfix after r158365.
* Modules/mediastream/VideoStreamTrack.cpp:
(WebCore::VideoStreamTrack::create):
(WebCore::VideoStreamTrack::VideoStreamTrack):
* Modules/mediastream/VideoStreamTrack.h:
2013-10-31 Myles C. Maxfield <mmaxfield@apple.com>
Decorated text sometimes does not draw its decorations
https://bugs.webkit.org/show_bug.cgi?id=123539
Reviewed by Antti Koivisto.
Decorated text should opt-out of the simple line layout, because
SimpleLineLayout::paintFlow doesn't draw decorations
Fixes fast/css3-text/css3-text-decoration/text-decoration-color.html
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove last member variable uses of InspectorState from Agents
https://bugs.webkit.org/show_bug.cgi?id=123540
Reviewed by Timothy Hatcher.
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):
(WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
DOMDebuggerAgentState::eventListenerBreakpoints -> m_eventListenerBreakpoints.
DOMDebuggerAgentState::xhrBreakpoints -> m_xhrBreakpoints.
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::removeBreakpoint):
(WebCore::InspectorDebuggerAgent::didParseSource):
DebuggerAgentState::javaScriptBreakpoints -> m_javaScriptBreakpoints.
* inspector/InspectorPageAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
(WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad):
(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
PageAgentState::pageAgentScriptsToEvaluateOnLoad -> m_scriptsToEvaluateOnLoad.
This is a lazily created InspectorObject member variable.
* inspector/InspectorResourceAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::disable):
(WebCore::InspectorResourceAgent::setExtraHTTPHeaders):
ResourceAgentState::extraRequestHeaders -> m_extraRequestHeaders.
This is a lazily created InspectorObject member variable.
2013-10-31 Philippe Normand <pnormand@igalia.com>
Unreviewed, one more build fix after r158365.
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode):
2013-10-31 Beth Dakin <bdakin@apple.com>
Repro scrolling crash with scrollbars that use setPresentationValue on the
scrolling thread
https://bugs.webkit.org/show_bug.cgi?id=123549
-and corresponding-
<rdar://problem/15246606>
Reviewed by Darin Adler.
Speculative fix. I think if we retain the ScrollbarPainters, we should avoid this
crash.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
2013-10-31 Philippe Normand <pnormand@igalia.com>
Unreviewed, MediaStream build fix after r158365.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::clone):
2013-10-31 Sam Weinig <sam@webkit.org>
Pass an Element by reference to the PseudoElement constructor
https://bugs.webkit.org/show_bug.cgi?id=123576
Reviewed by Andreas Kling.
* dom/Element.cpp:
(WebCore::Element::createPseudoElementIfNeeded):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::PseudoElement):
* dom/PseudoElement.h:
2013-10-31 Alexey Proskuryakov <ap@apple.com>
Fix a mis-merge.
* WebCore.xcodeproj/project.pbxproj: Remove duplicate CryptoAlgorithmRegistryMac.cpp.
2013-10-31 Alexey Proskuryakov <ap@apple.com>
Add bindings code for crypto algorithm dictionaries
https://bugs.webkit.org/show_bug.cgi?id=123476
Reviewed by Sam Weinig.
JSCryptoAlgorithmDictionary reads the Algorithm, much like JSDictionary does in
simpler cases. We should see about bringing them closer together (perhaps replacing
with autogenerated code).
* crypto/parameters: Added.
* crypto/parameters/CryptoAlgorithmHmacKeyParams.h: Added.
* crypto/parameters/CryptoAlgorithmHmacParams.h: Added.
Added a couple specific dictionaries as an example.
* WebCore.xcodeproj/project.pbxproj: Added JSCryptoAlgorithmDictionary.
* bindings/js/JSCryptoAlgorithmDictionary.cpp: Added.
(WebCore::JSCryptoAlgorithmDictionary::getAlgorithmIdentifier):
(WebCore::getHashAlgorithm):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
* bindings/js/JSCryptoAlgorithmDictionary.h: Added.
2013-10-31 Sam Weinig <sam@webkit.org>
Pass ScriptExecutionContext by reference to from the bindings constructors
https://bugs.webkit.org/show_bug.cgi?id=123575
Reviewed by Andreas Kling.
Since we null check the ScriptExecutionContext before creating the c++ class,
we should be passing by reference.
2013-10-31 Zhuang Zhigang <zhuangzg@cn.fujitsu.com>
Paint the input tag of range type on WinCE port.
https://bugs.webkit.org/show_bug.cgi?id=123199
Reviewed by Brent Fulgham.
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderThemeWinCE::paintSliderTrack):
(WebCore::RenderThemeWinCE::paintSliderThumb):
2013-10-31 Alexey Proskuryakov <ap@apple.com>
Add a crypto algorithm abstraction
https://bugs.webkit.org/show_bug.cgi?id=123474
Reviewed by Sam Weinig.
This works slightly differently than WebCrypto implies. We have separate classes
for algorithm and its parameters, while WebCrypto puts them in the same dictionary.
* WebCore.xcodeproj/project.pbxproj: Added new files.
* crypto/CryptoAlgorithm.cpp: Added. As most algorithms don't implement most
operations, default implementations just raise an exception.
* crypto/CryptoAlgorithm.h: Added.
* crypto/CryptoAlgorithmParameters.h: Added. Base class for numerous future parameter
dictionaries, such as HmacParams or HmacKeyParams.
* crypto/CryptoAlgorithmRegistry.cpp: Added.
* crypto/CryptoAlgorithmRegistry.h: Added.
The registry decouples universal bindings code from algorithms that may or may not
be implemented on each platform.
* crypto/mac: Added.
* crypto/mac/CryptoAlgorithmRegistryMac.cpp: Added.
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Algorithms implemented
on Mac will be registered by this function.
2013-10-31 Alexey Proskuryakov <ap@apple.com>
REGRESSION(r158333): http/tests/xmlhttprequest/response-encoding.html and xmlhttprequest-overridemimetype-content-type-header.html are failing
https://bugs.webkit.org/show_bug.cgi?id=123548
Reviewed by Brady Eidson.
We had code that made sure that cached 200 responses weren't used for conditional
requests. But it didn't work the other way - cached 304 responses got reused for
subsequent unconditional requests!
Adding the test uncovered this bug.
* loader/cache/CachedRawResource.cpp: (WebCore::shouldIgnoreHeaderForCacheReuse):
Should never ignore conditional headers. Code in determineRevalidationPolicy
was already undoing this for conditional requests, but we also shouldn't use
WebCore cache if it holds a 304 response to conditional request.
* loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::determineRevalidationPolicy):
Even though the changed code is only for raw resources, I think that we can never
get a conditional request here any more.
2013-10-30 Alexey Proskuryakov <ap@apple.com>
CryptoAlgorithmDescriptionBuilder should support producing nested algorithms
https://bugs.webkit.org/show_bug.cgi?id=123461
Reviewed by Darin Adler.
To add a nested algorithm, clone a builder with createEmptyClone(), fill it,
and add it using add().
* bindings/js/JSCryptoAlgorithmBuilder.h:
* crypto/CryptoAlgorithmDescriptionBuilder.h:
* bindings/js/JSCryptoAlgorithmBuilder.cpp:
(WebCore::JSCryptoAlgorithmBuilder::createEmptyClone):
(WebCore::JSCryptoAlgorithmBuilder::add): Keep VM in a local variable for marginally
better performance.
2013-10-31 Philippe Normand <pnormand@igalia.com>
[WK2][GTK] enable-media-stream Setting
https://bugs.webkit.org/show_bug.cgi?id=123145
Reviewed by Anders Carlsson.
* page/Settings.in: new mediaStreamEnabled setting.
2013-10-31 Zan Dobersek <zdobersek@igalia.com>
Manage SVGPathByteStream through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=123467
Reviewed by Anders Carlsson.
Manage SVGPathByteStream objects through std::unique_ptr. Constructors for the class are made public
so std::make_unique can be used with the class.
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::constructFromString):
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):
* svg/SVGAnimatedType.cpp:
(WebCore::SVGAnimatedType::createPath):
* svg/SVGAnimatedType.h:
* svg/SVGPathByteStream.h:
(WebCore::SVGPathByteStream::SVGPathByteStream): Takes a const Data object that's then copied.
(WebCore::SVGPathByteStream::copy): Made const.
* svg/SVGPathByteStreamBuilder.cpp: Remove an unnecessary include.
* svg/SVGPathByteStreamBuilder.h: Ditto.
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::SVGPathElement):
* svg/SVGPathElement.h:
* svg/SVGPathUtilities.cpp:
(WebCore::appendSVGPathByteStreamFromSVGPathSeg):
(WebCore::addToSVGPathByteStream):
2013-10-31 Marcin Bychawski <m.bychawski@samsung.com>
Removing m_maxDeadCapacity condition in fast path in MemoryCache::prune().
https://bugs.webkit.org/show_bug.cgi?id=115631
Reviewed by Brent Fulgham.
If the m_maxDeadSize and m_deadSize are both 0, the method unnecessairly tries to prune resources.
No new tests, covered by existing ones.
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::prune):
2013-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove stale optional native memory instrumentation protocol params
https://bugs.webkit.org/show_bug.cgi?id=123552
Reviewed by Timothy Hatcher.
* inspector/Inspector.json:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
* inspector/InspectorTimelineAgent.h:
2013-10-31 Zan Dobersek <zdobersek@igalia.com>
[GTK] Undefined references to RenderObject::style() when disabling video support
https://bugs.webkit.org/show_bug.cgi?id=123492
Reviewed by Carlos Garcia Campos.
* platform/gtk/RenderThemeGtk2.cpp: Disabling video support removes indirect inclusion of the RenderElement.h
header, causing undefined references to RenderObject::style(). The RenderElement.h header should be included
instead of RenderObject.h as the former defines the RenderObject::style() inline and also includes the latter.
* platform/gtk/RenderThemeGtk3.cpp: Ditto.
2013-10-31 Robert Plociennik <r.plociennik@samsung.com>
[EFL] accessibility/textbox-role-reports-selection.html is failing
https://bugs.webkit.org/show_bug.cgi?id=112017
Reviewed by Mario Sanchez Prada.
getSelectionOffsetsForObject() now returns proper start/end offsets for
selections "touching" the object's front border.
No new tests, covered by existing ones.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getSelectionOffsetsForObject):
2013-10-31 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][GLES] OpenGL should be optional
https://bugs.webkit.org/show_bug.cgi?id=123399
Reviewed by Noam Rosenthal.
* CMakeLists.txt: Make OpenGL dependencies as optional.
* PlatformEfl.cmake:
Move OpenGL macro to OptionsEfl.cmake and make Xcomposite and XRender as optional.
* platform/graphics/OpenGLESShims.h:
Removed GL_COLOR_ATTACHMENT0_EXT because it was added to gl2ext.h since r153064
* platform/graphics/surfaces/GraphicsSurfaceToken.h:
Removed wrong GLX guard.
(WebCore::GraphicsSurfaceToken::GraphicsSurfaceToken):
(WebCore::GraphicsSurfaceToken::operator!=):
(WebCore::GraphicsSurfaceToken::isValid):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
Removed unnecessary OpenGLShims.h
2013-10-30 Santosh Mahto <santosh.ma@samsung.com>
[webcore/editing] remove extra header includes from cpp files.
https://bugs.webkit.org/show_bug.cgi?id=123524
Reviewed by Ryosuke Niwa.
Removing redundant header files.
* editing/AlternativeTextController.cpp:
* editing/ApplyBlockElementCommand.cpp:
* editing/ApplyStyleCommand.cpp:
* editing/BreakBlockquoteCommand.cpp:
* editing/DeleteButton.cpp:
* editing/DeleteButtonController.cpp:
* editing/DeleteSelectionCommand.cpp:
* editing/DictationCommand.cpp:
* editing/EditCommand.cpp:
* editing/EditingStyle.cpp:
* editing/EditorCommand.cpp:
* editing/FrameSelection.cpp:
* editing/IndentOutdentCommand.cpp:
* editing/InsertLineBreakCommand.cpp:
* editing/InsertParagraphSeparatorCommand.cpp:
* editing/MarkupAccumulator.h:
* editing/RemoveFormatCommand.cpp:
* editing/RenderedPosition.cpp:
* editing/ReplaceSelectionCommand.cpp:
* editing/SpellChecker.cpp:
* editing/SpellingCorrectionCommand.cpp:
* editing/SurroundingText.cpp:
* editing/TextCheckingHelper.cpp:
* editing/TextIterator.cpp:
* editing/TypingCommand.cpp:
* editing/VisibleSelection.cpp:
* editing/VisibleUnits.cpp:
* editing/WrapContentsInDummySpanCommand.cpp:
* editing/htmlediting.cpp:
2013-10-30 Brady Eidson <beidson@apple.com>
IDB Database versions are uint64_t, not int64_t
https://bugs.webkit.org/show_bug.cgi?id=123556
Reviewed by Alexey Proskuryakov.
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBPendingOpenCall.h:
(WebCore::IDBPendingOpenCall::create):
(WebCore::IDBPendingOpenCall::version):
(WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
* Modules/indexeddb/IDBTransactionBackendOperations.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseVersion):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::open):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
2013-10-30 Brendan Long <b.long@cablelabs.com>
[Gtk] Build is failing after r158317
https://bugs.webkit.org/show_bug.cgi?id=123544
Reviewed by Alexey Proskuryakov.
No new tests since this just fixes the build.
* GNUmakefile.list.am: Add JSCryptoKey.cpp and JSCryptoKey.h
2013-10-30 Andreas Kling <akling@apple.com>
Manage EllipsisBox objects with unique_ptr.
<https://webkit.org/b/123554>
Use smart pointers to store ellipsis boxes instead of new/delete.
Reviewed by Anders Carlsson.
2013-10-30 Alexey Proskuryakov <ap@apple.com>
[Gtk] Build is failing after r158317
https://bugs.webkit.org/show_bug.cgi?id=123544
Use a correct style for JSC includes.
* ForwardingHeaders/runtime/JSPromise.h: Added.
* ForwardingHeaders/runtime/JSPromiseResolver.h: Added.
* bindings/js/JSDOMPromise.h:
2013-10-30 Andreas Kling <akling@apple.com>
Replace InlineBox::destroy() with regular virtual destruction.
<https://webkit.org/b/123550>
Move logic out of destroy() and its overloads into good ol' virtual
destructors instead.
Reviewed by Anders Carlsson.
2013-10-30 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Simplifying MediaStream and MediStreamDescriptor creation
https://bugs.webkit.org/show_bug.cgi?id=123443
Reviewed by Eric Carlson.
The internal process of creating a MediaStream and MediaStreamDescriptor was quite confusing and spread.
We can take advantage of the platform implementation of MediaStreamTrack (aka MediaStreamTrackPrivate)
and simplify the whole process.
A new constructor that receives vectors of MediaStreamTrackPrivate objects were added, then the check
if a source already exists or if the tracks are all ended are now made in MediaStreamDescriptor.
No new tests needed.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create): Removed unnecessary variables in one create method and using new
MediaStreamDescriptor::create method that receives vector of MediaStreamTrackPrivate objects as parameter.
* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): Removed passing flag to
MediaStreamDescriptor create.
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::create): Removed EndedAtCreationFlag parameter, because this is being
handled inside constructor by analyzing the tracks or sources passed.
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Adding new constructor that receives vector of
MediaStreamTrackPrivate as parameter.
(WebCore::MediaStreamDescriptor::addTrack): Changed to store the track's source in the object.
(WebCore::MediaStreamDescriptor::removeTrack):
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::numberOfAudioTracks):
(WebCore::MediaStreamDescriptor::audioTracks):
(WebCore::MediaStreamDescriptor::numberOfVideoTracks):
(WebCore::MediaStreamDescriptor::videoTracks):
* platform/mock/MockMediaStreamCenter.cpp:
(WebCore::MockMediaStreamCenter::createMediaStream): Removing flag that is being passed to
MediaStreamDescriptor's create method.
2013-10-30 Brent Fulgham <bfulgham@apple.com>
[Win] Legible Output callbacks should happen on notification queue
https://bugs.webkit.org/show_bug.cgi?id=123545
Reviewed by Eric Carlson.
Modify the callback creation for Legible Output items so that they
are made on our notification queue. The use of the main queue was a
holdover from some temporary code used during earlier development.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::AVFWrapper): Assert this happens on the main thread.
(WebCore::AVFWrapper::~AVFWrapper): Ditto.
(WebCore::destroyAVFWrapper): Ditto.
(WebCore::AVFWrapper::createPlayer): Ditto.
(WebCore::AVFWrapper::createPlayerItem): Ditto.
Also, instruct LegibleOutput callbacks to happen on our notification
queue, rather than the main thread.
(WebCore::AVFWrapper::createAVCFVideoLayer): Assert this happens on the main thread.
(WebCore::AVFWrapper::destroyVideoLayer): Ditto.
(WebCore::AVFWrapper::createImageGenerator): Ditto.
(WebCore::AVFWrapper::destroyImageGenerator): Ditto.
2013-10-30 Alexey Proskuryakov <ap@apple.com>
XHR.response is null when requesting empty file as arraybuffer
https://bugs.webkit.org/show_bug.cgi?id=123457
Reviewed by Sam Weinig.
Test: http/tests/xmlhttprequest/response-empty-arraybuffer.html
* xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseArrayBuffer): Don't do this.
2013-10-30 Samuel White <samuel_white@apple.com>
AX: AXFocused not exposed on ARIA menuitems
https://bugs.webkit.org/show_bug.cgi?id=123494
Reviewed by Chris Fleizach.
ARIA menuitems should expose AXFocused accessibility attribute.
Test: platform/mac/accessibility/aria-menuitem-focus.html
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
2013-10-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove basic uses of InspectorState from agents
https://bugs.webkit.org/show_bug.cgi?id=123534
Reviewed by Timothy Hatcher.
* inspector/InspectorAgent.h:
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::InspectorAgent):
(WebCore::InspectorAgent::enable):
(WebCore::InspectorAgent::disable):
(WebCore::InspectorAgent::evaluateForTestInFrontend):
(WebCore::InspectorAgent::inspect):
InspectorAgentState::inspectorAgentEnabled -> m_enabled.
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::enable):
Remove unused state.
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::enable):
(WebCore::InspectorCSSAgent::disable):
(WebCore::InspectorCSSAgent::startSelectorProfiler):
(WebCore::InspectorCSSAgent::stopSelectorProfilerImpl):
Remove unused states. Make CSSAgentState::isSelectorProfiling check profile object exists or not.
* inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::disable):
Remove unused state, member variable already existed.
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorConsoleAgent.cpp:
(WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
(WebCore::InspectorConsoleAgent::enable):
(WebCore::InspectorConsoleAgent::disable):
(WebCore::InspectorConsoleAgent::didFinishXHRLoading):
(WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
ConsoleAgentState::consoleMessagesEnabled already had m_enabled.
ConsoleAgentState::monitoringXHR -> m_monitoringXHREnabled.
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::clearFrontend):
(WebCore::InspectorDOMAgent::setDocument):
(WebCore::InspectorDOMAgent::getDocument):
(WebCore::InspectorDOMAgent::mainFrameDOMContentLoaded):
DOMAgentState::documentRequested -> m_documentRequested.
* inspector/InspectorDOMDebuggerAgent.h:
* inspector/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeXHRBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
DOMDebuggerAgentState::pauseOnAllXHRs -> m_pauseOnAllXHRsEnabled.
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
(WebCore::InspectorDOMStorageAgent::enable):
(WebCore::InspectorDOMStorageAgent::disable):
(WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
DOMStorageAgentState::domStorageAgentEnabled -> m_enabled.
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::enable):
(WebCore::InspectorDatabaseAgent::disable):
Remove unused state, m_enabled already existed.
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::enable):
(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::enabled):
(WebCore::InspectorDebuggerAgent::clearFrontend):
(WebCore::InspectorDebuggerAgent::setPauseOnExceptionsImpl):
DebuggerAgentState::pauseOnExceptionsState removed, never read.
DebuggerAgentState::debuggerEnabled -> m_enabled.
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::InspectorHeapProfilerAgent):
(WebCore::InspectorHeapProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorHeapProfilerAgent::clearFrontend):
(WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
HeapProfilerAgentState::profileHeadersRequested -> m_profileHeadersRequested.
* inspector/InspectorIndexedDBAgent.cpp:
(WebCore::InspectorIndexedDBAgent::enable):
(WebCore::InspectorIndexedDBAgent::disable):
Remove unused state, never read.
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::enable):
(WebCore::InspectorLayerTreeAgent::disable):
Remove unused state, did not need to be read.
* inspector/InspectorPageAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::InspectorPageAgent):
(WebCore::InspectorPageAgent::webViewResized):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::setDeviceMetricsOverride):
(WebCore::InspectorPageAgent::deviceMetricsChanged):
(WebCore::InspectorPageAgent::setShowPaintRects):
(WebCore::InspectorPageAgent::setShowDebugBorders):
(WebCore::InspectorPageAgent::setShowFPSCounter):
(WebCore::InspectorPageAgent::setContinuousPaintingEnabled):
(WebCore::InspectorPageAgent::setScriptExecutionDisabled):
(WebCore::InspectorPageAgent::applyScreenWidthOverride):
(WebCore::InspectorPageAgent::applyScreenHeightOverride):
(WebCore::InspectorPageAgent::didPaint):
(WebCore::InspectorPageAgent::didLayout):
(WebCore::InspectorPageAgent::updateTouchEventEmulationInPage):
(WebCore::InspectorPageAgent::setTouchEmulationEnabled):
(WebCore::InspectorPageAgent::setEmulatedMedia):
(WebCore::InspectorPageAgent::applyEmulatedMedia):
PageAgentState::pageAgentScreenWidthOverride -> m_screenWidthOverride.
PageAgentState::pageAgentScreenHeightOverride -> m_screenHeightOverride.
PageAgentState::pageAgentFontScaleFactorOverride -> m_fontScaleFactorOverride.
PageAgentState::pageAgentFitWindow -> m_fitWindowOverride.
PageAgentState::pageAgentShowPaintRects -> m_showPaintRects.
PageAgentState::pageAgentEmulatedMedia -> m_emulatedMedia.
Remove other unused states.
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::addProfile):
(WebCore::InspectorProfilerAgent::enable):
(WebCore::InspectorProfilerAgent::disable):
(WebCore::InspectorProfilerAgent::getProfileHeaders):
(WebCore::InspectorProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorProfilerAgent::start):
(WebCore::InspectorProfilerAgent::stop):
(WebCore::InspectorProfilerAgent::enabled):
ProfilerAgentState::profileHeadersRequested -> m_profileHeadersRequested.
Remove other unused states.
* inspector/InspectorResourceAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::~InspectorResourceAgent):
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::applyUserAgentOverride):
(WebCore::InspectorResourceAgent::enable):
(WebCore::InspectorResourceAgent::disable):
(WebCore::InspectorResourceAgent::setUserAgentOverride):
(WebCore::InspectorResourceAgent::setCacheDisabled):
(WebCore::InspectorResourceAgent::mainFrameNavigated):
(WebCore::InspectorResourceAgent::InspectorResourceAgent):
ResourceAgentState::resourceAgentEnabled -> m_enabled.
ResourceAgentState::cacheDisabled -> m_cacheDisabled.
ResourceAgentState::userAgentOverride -> m_userAgentOverride (this already existed and was unused).
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::setDOMCounters):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
TimelineAgentState::timelineAgentEnabled -> m_enabled.
TimelineAgentState::includeDomCounters -> m_includeDOMCounters.
Remove other unused states.
* inspector/InspectorWorkerAgent.h:
* inspector/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
(WebCore::InspectorWorkerAgent::clearFrontend):
(WebCore::InspectorWorkerAgent::enable):
(WebCore::InspectorWorkerAgent::disable):
(WebCore::InspectorWorkerAgent::setAutoconnectToWorkers):
(WebCore::InspectorWorkerAgent::shouldPauseDedicatedWorkerOnStart):
(WebCore::InspectorWorkerAgent::didStartWorkerGlobalScope):
(WebCore::InspectorWorkerAgent::createWorkerFrontendChannel):
WorkerAgentState::workerInspectionEnabled -> m_enabled.
WorkerAgentState::autoconnectToWorkers -> m_shouldPauseDedicatedWorkerOnStart.
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::enable):
(WebCore::PageRuntimeAgent::disable):
Remove unused state, not read.
2013-10-30 Ryosuke Niwa <rniwa@webkit.org>
Remove code for Mac Lion
https://bugs.webkit.org/show_bug.cgi?id=123542
Reviewed by Anders Carlsson.
Removed the code for Mac OS X 10.7.
* platform/graphics/ImageBuffer.h:
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::context):
(WebCore::ImageBuffer::flushContext):
* platform/graphics/cg/ImageBufferDataCG.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::imageSourceOptions):
* platform/graphics/mac/ComplexTextControllerCoreText.mm:
(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::scrollAnimationEnabledForSystem):
* platform/mac/ScrollElasticityController.mm:
(WebCore::reboundDeltaForElasticDelta):
* platform/mac/ThemeMac.mm:
(WebCore::updateStates):
(WebCore::paintCheckbox):
(WebCore::paintRadio):
(WebCore::paintButton):
* platform/mac/WebCoreNSCellExtras.h:
* platform/mac/WebCoreNSCellExtras.m:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::paintMenuList):
(WebCore::RenderThemeMac::setPopupButtonCellState):
(WebCore::RenderThemeMac::textField):
2013-10-30 Alexey Proskuryakov <ap@apple.com>
85 inspector tests asserting in DrawingAreaProxyImpl::updateAcceleratedCompositingMode()
when there is a stale WebKitTestRunner preference
https://bugs.webkit.org/show_bug.cgi?id=115115
Reviewed by Darin Adler.
* page/Settings.cpp:
(WebCore::Settings::setMockScrollbarsEnabled):
(WebCore::Settings::setUsesOverlayScrollbars):
Added FIXMEs.
2013-10-30 Andreas Kling <akling@apple.com>
Take line boxes out of the arena.
<https://webkit.org/b/123533>
Stop arena-allocating line boxes so we can move forward on improving
render tree memory management. This will also allow more rendering
code to take advantage of malloc optimizations.
This will likely regress performance on some micro-benchmarks, but
it's something we want to do sooner rather than later so we have time
to restabilize it. All improvements to the simple line layout's
coverage will help with recouping whatever is regressed.
BiDi runs are the only remaining user of the arena now.
Reviewed by Antti Koivisto
2013-10-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove InspectorAgent::restore functionality
https://bugs.webkit.org/show_bug.cgi?id=123525
Reviewed by Timothy Hatcher.
Remove unused InspectorAgent restore functionality.
* inspector/InspectorApplicationCacheAgent.cpp:
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorBaseAgent.cpp:
* inspector/InspectorBaseAgent.h:
* inspector/InspectorCSSAgent.cpp:
* inspector/InspectorCSSAgent.h:
* inspector/InspectorCanvasAgent.cpp:
* inspector/InspectorCanvasAgent.h:
* inspector/InspectorConsoleAgent.cpp:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorController.cpp:
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorIndexedDBAgent.h:
* inspector/InspectorLayerTreeAgent.cpp:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorPageAgent.cpp:
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.cpp:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorTimelineAgent.cpp:
* inspector/InspectorTimelineAgent.h:
* inspector/InspectorWorkerAgent.cpp:
* inspector/InspectorWorkerAgent.h:
* inspector/PageRuntimeAgent.cpp:
* inspector/PageRuntimeAgent.h:
* inspector/WorkerInspectorController.cpp:
* inspector/WorkerInspectorController.h:
2013-10-30 Jer Noble <jer.noble@apple.com>
REGRESSION(r158288): media/media-can-play-mpeg4-video.html fails
https://bugs.webkit.org/show_bug.cgi?id=123530
Reviewed by Eric Carlson.
Lower case the mime type before passing it along to MediaPlayer.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::HTMLMediaElement::selectNextSourceChild):
2013-10-30 Alexey Proskuryakov <ap@apple.com>
Add a way to fulfill promises from DOM code
https://bugs.webkit.org/show_bug.cgi?id=123466
Reviewed by Sam Weinig.
This is not perfect, as it strongly ties DOM code to JavaScript. In the future, we
can make it better e.g. by subclassing, so that only a base interface would be exposed.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* bindings/js/JSBindingsAllInOne.cpp:
* WebCore.xcodeproj/project.pbxproj:
Added JSDOMPromise.
* bindings/js/JSDOMPromise.cpp: Added.
* bindings/js/JSDOMPromise.h: Added.
(WebCore::PromiseWrapper::create):
(WebCore::PromiseWrapper::fulfill): A random set of specializations that I needed
in WebCrypto code so far.
(WebCore::PromiseWrapper::reject): Ditto.
2013-10-30 Santosh Mahto <santosh.ma@samsung.com>
contentEditable deleting lists when list items are block level
https://bugs.webkit.org/show_bug.cgi?id=122602
Reviewed by Ryosuke Niwa.
When listitems are styled with display:block/float then inserting paragraph
twice at end of listitem delete entire list. Generally when listitem is empty
then we delete the listitem on inserting paragraph. In this issue, on inserting
first paragraph one empty listitem is created, and on inserting second paragraph
we try to delete that empty listitem. but it misbehave becasue of incomplete
definition of htmlediting::isLisItem() and entire list is deleted.
htmlediting::isListItem() check only render object to decide whether it is
list or not, so if any LI element is block level then isListItem return false.
Now after this patch if parent of current node is list element then node is
treated as listItem.
Test: editing/execCommand/hit-enter-twice-atendof-block-styled-listitem.html
* editing/htmlediting.cpp:
(WebCore::isListItem): Modified condition to check if parent node is list;
2013-10-30 Jer Noble <jer.noble@apple.com>
Unreviewed EFL build fix; give MediaEngineSupportParameters struct a default constructor.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::isTypeSupported):
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::HTMLMediaElement::selectNextSourceChild):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaEngineSupportParameters::MediaEngineSupportParameters):
2013-10-30 Andreas Kling <akling@apple.com>
Let Page::renderTreeSize() be the number of renderers.
<https://webkit.org/b/123518>
<rdar://problem/15348679>
The old metric was "number of bytes allocated in RenderArena" and
that was heading towards obsolescence, fast.
Instead, keep a count of RenderObjects instantiated on RenderView.
While a bit ugly, this lets us move forward with rendering memory
model improvements without breaking features.
Reviewed by Beth Dakin.
2013-10-30 Myles C. Maxfield <mmaxfield@apple.com>
WebKit/win/WebKitGraphics.h:void WebDrawText(WebTextRenderInfo*); is never called
https://bugs.webkit.org/show_bug.cgi?id=123485
Reviewed by Brent Fulgham.
WebDrawText is the only caller of WebCoreDrawTextAtPoint, so we can
delete that as well.
Because there is no behavior difference, no new tests are necessary.
* platform/win/WebCoreTextRenderer.cpp:
* platform/win/WebCoreTextRenderer.h:
2013-10-30 Csaba Osztrogonác <ossy@webkit.org>
URTBF after r158289.
* CMakeLists.txt:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::createCursorBackend):
2013-10-30 Dong-Gwan Kim <donggwan.kim@samsung.com>
Build fails with EGLConfigSelector.cpp when OpenGL ES is not used
https://bugs.webkit.org/show_bug.cgi?id=119037
Reviewed by Brent Fulgham.
Build fix for EGLConfigSelector.cpp
No new tests, no behavior change.
* platform/graphics/surfaces/egl/EGLConfigSelector.cpp:
(WebCore::EGLConfigSelector::createConfig):
2013-10-30 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Explicitly initialize base class in MediStreamTrackPrivate copy constructor
https://bugs.webkit.org/show_bug.cgi?id=123473
Reviewed by Eric Carlson.
No new tests needed.
Ports that enable -Werror=extra must do that to compile.
* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
2013-10-30 Ryosuke Niwa <rniwa@webkit.org>
Mac build fix after r158291.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canPlayType):
2013-10-30 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r158243.
http://trac.webkit.org/changeset/158243
https://bugs.webkit.org/show_bug.cgi?id=123520
Change was wrong (Requested by smfr on #webkit).
* platform/graphics/GraphicsContext.h:
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore::GraphicsContext::drawLineForText):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawLineForText):
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
(WebCore::InlineTextBox::paintCompositionUnderline):
2013-10-30 peavo@outlook.com <peavo@outlook.com>
Favicons are flipped in vertical direction in WinCairo builds.
https://bugs.webkit.org/show_bug.cgi?id=102077
Reviewed by Brent Fulgham.
* platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
2013-10-30 Jer Noble <jer.noble@apple.com>
[MSE] Add MediaSource compatable loading functions to MediaPlayer
https://bugs.webkit.org/show_bug.cgi?id=123353
Reviewed by Eric Carlson.
Add methods to MediaPlayer to allow it to select the correct MediaPlayerFactory
when attempting to load a MediaSource URL.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::isTypeSupported):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::HTMLMediaElement::selectNextSourceChild):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::supportsType):
* platform/graphics/MediaPlayer.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
Remove the isSupportedMediaSourceMIMEType() method:
* platform/MIMETypeRegistry.h:
* platform/efl/MIMETypeRegistryEfl.cpp:
* platform/mac/MIMETypeRegistryMac.mm:
2013-10-30 Brady Eidson <beidson@apple.com>
IDBCursorBackendLevelDB should be made cross-platform
https://bugs.webkit.org/show_bug.cgi?id=123513
Rubberstamped by Andreas Kling.
Because of all the already-done refactoring, this is basically a file-move and global rename.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcxproj/WebCore.vcxproj:
* Modules/indexeddb/IDBCursorBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp.
* Modules/indexeddb/IDBCursorBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h.
* Modules/indexeddb/IDBCursorBackendInterface.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
2013-10-29 Jer Noble <jer.noble@apple.com>
[MSE] Remove legacy Media Source APIs (WebKitMediaSource, WebKitSourceBuffer, WebKitSourceBufferList)
https://bugs.webkit.org/show_bug.cgi?id=123463
Reviewed by Eric Carlson.
No new tests; updated test results.
Remove all reference to WebKitMediaSource, WebKitSourceBuffer, and WebKitSourceBufferList.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* Modules/mediasource/DOMURLMediaSource.idl:
* Modules/mediasource/WebKitMediaSource.cpp: Removed.
* Modules/mediasource/WebKitMediaSource.h: Removed.
* Modules/mediasource/WebKitMediaSource.idl: Removed.
* Modules/mediasource/WebKitSourceBuffer.cpp: Removed.
* Modules/mediasource/WebKitSourceBuffer.h: Removed.
* Modules/mediasource/WebKitSourceBuffer.idl: Removed.
* Modules/mediasource/WebKitSourceBufferList.cpp: Removed.
* Modules/mediasource/WebKitSourceBufferList.h: Removed.
* Modules/mediasource/WebKitSourceBufferList.idl: Removed.
* WebCore.xcodeproj/project.pbxproj:
* dom/EventTargetFactory.in:
2013-10-30 Antti Koivisto <antti@apple.com>
Unbreak the release build.
* rendering/SimpleLineLayoutFunctions.cpp:
2013-10-30 Liangjun Zeng <lizeng@blackberry.com>
Fix memory leaks in platform/image-encoders/JPEGImageEncoder.cpp
https://bugs.webkit.org/show_bug.cgi?id=118781
Reviewed by Brent Fulgham.
We can find the function "jpeg_finish_compress" call the function "jpeg_abort" at the end.
And the comments of "jpeg_abort" is "Abort processing of a JPEG compression operation,
but don't destroy the object itself". (We can find these in the "jcapimin.c" of jpeg)
So the compression object destroy need be called.
No new tests because this doesn't change functionality.
* platform/image-encoders/JPEGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToJPEG):
2013-10-30 Antti Koivisto <antti@apple.com>
Add debug settings for simple line layout
https://bugs.webkit.org/show_bug.cgi?id=123514
Reviewed by Andreas Kling.
* WebCore.exp.in:
* page/Settings.in:
Add simpleLineLayoutEnabled and simpleLineLayoutDebugBordersEnabled.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintDebugBorders):
(WebCore::SimpleLineLayout::paintFlow):
2013-10-30 peavo@outlook.com <peavo@outlook.com>
[Curl] Cookies are sometimes not set in download request.
https://bugs.webkit.org/show_bug.cgi?id=123445
Reviewed by Brent Fulgham.
Sometimes cookies are not set in the download request because the cookie file cannot be opened,
it's already been opened by the ResourceHandleManager for writing.
This can be fixed by getting the cookie list from the share handle in ResourceHandleManager instead.
This will also improve performance, as there is no need to read and parse the cookie file for each download.
* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::init): Use share handle to get cookie list.
2013-10-30 ChangSeok Oh <changseok.oh@collabora.com>
Unguard Element::childShouldCreateRenderer
https://bugs.webkit.org/show_bug.cgi?id=123496
Reviewed by Andreas Kling.
Make Element::childShouldCreateRenderer normally accessible. Guarding it with flags
just leaves potential build issues.
No new tests since no functionality changed.
* dom/Element.cpp:
(WebCore::Element::childShouldCreateRenderer):
* dom/Element.h:
2013-10-30 Jer Noble <jer.noble@apple.com>
[MSE] Make MediaSourcePrivate, SourceBufferPrivate classes RefCounted.
https://bugs.webkit.org/show_bug.cgi?id=123350
Reviewed by Darin Adler.
Make the MediaSourcePrivate and SourceBufferPrivate classes RefCounted so that
they can be referenced both by MediaSource/SourceBuffer, and by the MediaPlayerPrivate
which creates them.
Change OwnPtr -> RefPtr everywhere:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
* Modules/mediasource/MediaSourceBase.cpp:
(WebCore::MediaSourceBase::setPrivateAndOpen):
(WebCore::MediaSourceBase::createSourceBufferPrivate):
* Modules/mediasource/MediaSourceBase.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::create):
(WebCore::SourceBuffer::SourceBuffer):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/WebKitMediaSource.cpp:
(WebCore::WebKitMediaSource::addSourceBuffer):
* Modules/mediasource/WebKitSourceBuffer.cpp:
(WebCore::WebKitSourceBuffer::create):
(WebCore::WebKitSourceBuffer::WebKitSourceBuffer):
* Modules/mediasource/WebKitSourceBuffer.h:
* html/HTMLMediaSource.h:
* platform/graphics/MediaSourcePrivate.h:
* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::SourceBufferPrivate):
2013-10-30 Allan Sandfeld Jensen <allan.jensen@digia.com>
Remove unused runtime enabled
https://bugs.webkit.org/show_bug.cgi?id=123509
Reviewed by Anders Carlsson.
Some of the runtime enabled features were only ever used by the V8 bindings
and can be removed as no WebKit code sets or reads them.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h:
2013-10-30 Antti Koivisto <antti@apple.com>
Make SimpleLineLayout::Layout a class
https://bugs.webkit.org/show_bug.cgi?id=123508
Reviewed by Mario Sanchez Prada.
Improve encapsulation.
2013-10-30 Antti Koivisto <antti@apple.com>
REGRESSION(r158214): It made zillion tests crash on GTK and EFL
https://bugs.webkit.org/show_bug.cgi?id=123505
* rendering/SimpleLineLayout.h: Add WTF_MAKE_FAST_ALLOCATED
2013-10-29 Philippe Normand <pnormand@igalia.com>
[GStreamer] Store video-sink in a bin
https://bugs.webkit.org/show_bug.cgi?id=122831
Reviewed by Gustavo Noronha Silva.
For the upcoming mediastream playback support the player will
handle a non-playbin-based pipeline that will require a slightly
different video rendering chain. This patch generalizes the
encapsulation of the video sink in a bin, just like the audio sink
case.
No new tests, no change in functionality.
2013-10-29 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r154614): Opening and closing a picture on Facebook resets scroll position
https://bugs.webkit.org/show_bug.cgi?id=122882
Reviewed by Anders Carlsson.
scrollLeft and scrollTop have to continue to function in the strict mode for the Web compatiblity.
In particular, www.facebook.com and build.webkit.org depend on this behavior as of October 29th, 2013.
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::setScrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
(WebCore::HTMLBodyElement::setScrollTop):
2013-10-29 Brady Eidson <beidson@apple.com>
IDBTransactionBackend should be cross platform
https://bugs.webkit.org/show_bug.cgi?id=123449
Reviewed by Beth Dakin.
- Rename IDBTransactionBackendLevelDB to IDBTransactionBackendImpl
- Rename IDBTransactionBackendLevelDBOperations to IDBTransactionBackendOperations
- Move their files from the leveldb subdirectory to the indexeddb directory
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp.
* Modules/indexeddb/IDBTransactionBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h.
* Modules/indexeddb/IDBTransactionBackendOperations.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp.
* Modules/indexeddb/IDBTransactionBackendOperations.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h.
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::maybeCreateTransactionBackend):
2013-10-29 Sam Weinig <sam@webkit.org>
Modernize DatasetDOMStringMap and ClassList a bit
https://bugs.webkit.org/show_bug.cgi?id=123491
Reviewed by Andreas Kling.
* dom/DatasetDOMStringMap.cpp:
* dom/DatasetDOMStringMap.h:
* dom/Element.cpp:
* dom/ElementRareData.h:
* html/ClassList.cpp:
* html/ClassList.h:
Pass the owner Element by reference and store in a std::unique_ptr.
2013-10-29 Brady Eidson <beidson@apple.com>
Attempted build-fix after http://trac.webkit.org/changeset/158234
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::createBackingStoreTransaction): Implement this!
2013-10-29 Andreas Kling <akling@apple.com>
ElementData construction helpers should return PassRef.
<https://webkit.org/b/123487>
Make functions that create new ElementData objects return appropriate
PassRef pointers instead of PassRefPtr.
Reviewed by Anders Carlsson.
2013-10-29 Ryosuke Niwa <rniwa@webkit.org>
GTK+ build fix attempt after r158220.
* GNUmakefile.list.am:
2013-10-29 Brady Eidson <beidson@apple.com>
Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface
https://bugs.webkit.org/show_bug.cgi?id=123483
Reviewed by Andreas Kling.
* Modules/indexeddb/IDBCursorBackendInterface.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
(WebCore::IDBCursorBackendLevelDB::create):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::createCursorBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::registerOpenCursor):
(WebCore::IDBTransactionBackendLevelDB::unregisterOpenCursor):
(WebCore::IDBTransactionBackendLevelDB::closeOpenCursors):
(WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* WebCore.xcodeproj/project.pbxproj: Export a required header.
2013-10-29 Seokju Kwon <seokju@webkit.org>
Remove mutable keyword from member variables of XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=123481
Reviewed by Andreas Kling.
No new tests, no change in functionality.
* xml/XMLHttpRequest.h: Remove mutable keyword as these are no longer used in const functions.
2013-10-29 Myles C. Maxfield <mmaxfield@apple.com>
Underline bounds cannot be queried before underline itself is drawn
https://bugs.webkit.org/show_bug.cgi?id=123310
Reviewed by Simon Fraser
GraphicsContext's drawLineForText function is used to draw underlines,
strikethroughs, and overlines. Before drawing the line, this function
modifies the bounds given to it in order to make underlines crisp. However,
this means that it is impossible to know where an underline will be drawn
before drawing it. This patch pulls out this adjustment computation into
InlineTextBox, then passes the result to drawLineForText.
Because there should be no observable difference, no tests need to be updated.
* platform/graphics/GraphicsContext.h: Changing the signature of drawLineForText
so it can accept bounds from our helper function
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore::GraphicsContext::drawLineForText): Update to work with new
signature of drawLineForText
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint): Update the last call site of drawLineForText
* rendering/InlineTextBox.cpp:
(WebCore::computeBoundsForUnderline): Pure function that computes the adjusted
bounds of the underline about to be drawn
(WebCore::drawLineForText): calls computeBoundsForUnderline and then
GraphicsContext::drawLineForText
(WebCore::InlineTextBox::paintDecoration): Use new drawLineForText function
(WebCore::InlineTextBox::paintCompositionUnderline): Ditto
2013-10-29 Alexey Proskuryakov <ap@apple.com>
Beef up CryptoKey
https://bugs.webkit.org/show_bug.cgi?id=123462
Fix a mismerge, remove duplicate CryptoKeyType declaration.
* crypto/CryptoKey.h:
2013-10-29 Alexey Proskuryakov <ap@apple.com>
Beef up CryptoKey
https://bugs.webkit.org/show_bug.cgi?id=123462
Reviewed by Sam Weinig.
* WebCore.xcodeproj/project.pbxproj: Added new files.
* crypto/CryptoAlgorithmIdentifier.h: Added an enum with all registered algorithms
(they don't have to be all implemented in any port).
* crypto/CryptoKey.cpp:
(WebCore::CryptoKey::CryptoKey): Initialize base class variables.
(WebCore::CryptoKey::type): Convert internal representation for bindings use.
(WebCore::CryptoKey::buildAlgorithmDescription): Ditto. This function is supposed
to be called by derived classes before adding other keyes.
(WebCore::CryptoKey::usages): Convert internal representation for bindings use.
* crypto/CryptoKey.h:
(WebCore::CryptoKey::extractable): Expose for bindings.
(WebCore::CryptoKey::allows): A faster way to check allowed key usage from C++ code.
* crypto/CryptoKey.idl: Added SkipVTableValidation, because validation doesn't work
with derived classes. Corrected "usages" attribute name.
* crypto/CryptoKeyFormat.h: Added.
* crypto/CryptoKeyType.h: Added.
* crypto/CryptoKeyUsage.h: Added.
Added enums used by CryptoKey.
2013-10-29 Hugo Parente Lima <hugo.lima@openbossa.org>
Adding Nix files in Source/Platform to trunk
https://bugs.webkit.org/show_bug.cgi?id=118331
Reviewed by Benjamin Poulain.
Add Nix WebAudio implementation that just forward some calls to our API.
This patch is part of the upstream process, tests will be landed by other patches.
* platform/audio/nix/AudioBusNix.cpp: Added.
* platform/audio/nix/AudioDestinationNix.cpp: Added.
* platform/audio/nix/AudioDestinationNix.h: Added.
* platform/audio/nix/FFTFrameNix.cpp: Added.
* platform/nix/support/MultiChannelPCMData.cpp: Added.
2013-10-29 Brady Eidson <beidson@apple.com>
Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface::Transaction.
https://bugs.webkit.org/show_bug.cgi?id=123475
Reviewed by Tim Horton.
Currently it's using IDBBackingStoreLevelDB::Transaction, which hinders the goal of:
https://bugs.webkit.org/show_bug.cgi?id=123449 - IDBTransactionBackend should be cross platform
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBIndexWriter.cpp:
(WebCore::IDBIndexWriter::writeIndexKeys):
(WebCore::IDBIndexWriter::verifyIndexKeys):
(WebCore::IDBIndexWriter::addingKeyAllowed):
* Modules/indexeddb/IDBIndexWriter.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseMetaData):
(WebCore::IDBBackingStoreLevelDB::createObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
(WebCore::IDBBackingStoreLevelDB::getRecord):
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::clearObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::createIndex):
(WebCore::IDBBackingStoreLevelDB::deleteIndex):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
(WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::commit):
(WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
2013-10-29 Dean Jackson <dino@apple.com>
Move InlineTextBox's text painting to it's own class
https://bugs.webkit.org/show_bug.cgi?id=123355
Reinstate the LGPL license. I incorrectly told Myles to
use another license on these new files.
* rendering/TextPainter.cpp:
* rendering/TextPainter.h:
2013-10-29 Myles C. Maxfield <mmaxfield@apple.com>
Move InlineTextBox's text painting to it's own class
https://bugs.webkit.org/show_bug.cgi?id=123355
Reviewed by Dean Jackson.
Implementing text-decoration-skip: ink requires drawing text
twice (once regularly, and once with a thick outline into a mask).
This patch pulls out the relevant text drawing code from
InlineTextBox into a new class, called TextPainter, which can be re-used
to draw text multiple times.
Because there should be no observable difference, no tests need to be updated.
* CMakeLists.txt: Adding new TextPainter class
* GNUmakefile.list.am: Adding new TextPainter class
* WebCore.vcxproj/WebCore.vcxproj: Adding new TextPainter class
* WebCore.vcxproj/WebCore.vcxproj.filters: Adding new TextPainter
class
* WebCore.xcodeproj/project.pbxproj: Adding new TextPainter class
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Moving text drawing code from
this function
* rendering/RenderingAllInOne.cpp: Adding new TextPainter class
* rendering/TextPainter.cpp: Added.
(WebCore::TextPainter::TextPainter):
(WebCore::drawTextOrEmphasisMarks):
(WebCore::paintTextWithShadows):
(WebCore::rotation):
(WebCore::TextPainter::paintText): New location for text drawing
code
(WebCore::TextPainter::paintTextInContext):
* rendering/TextPainter.h: Added.
(WebCore::SavedDrawingStateForMask::SavedDrawingStateForMask):
(WebCore::TextPainter::boxRect):
2013-10-29 Jer Noble <jer.noble@apple.com>
[MSE] [Mac] Enable MediaSource on the Mac
https://bugs.webkit.org/show_bug.cgi?id=122484
Reviewed by Darin Adler.
Enable ENABLE_MEDIA_SOURCE.
* Configurations/FeatureDefines.xcconfig:
2013-10-29 Tim Horton <timothy_horton@apple.com>
Build fix after 158223; make TileController use float for scales.
This matches what we do in other places, and fixes the constant
issue with exporting symbols that include CGFloat.
* WebCore.exp.in:
* platform/graphics/ca/mac/TileController.h:
(WebCore::TileController::scale):
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::setScale):
2013-10-29 Antti Koivisto <antti@apple.com>
Try to keep MSVC happy.
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
2013-10-29 Tim Horton <timothy_horton@apple.com>
More correct build fix after 158223.
Only fails in release because it's inline.
* WebCore.exp.in:
2013-10-29 Antti Koivisto <antti@apple.com>
Use left/right instead of left/width for simple text runs
https://bugs.webkit.org/show_bug.cgi?id=123465
Reviewed by Andreas Kling.
This simplifies the code a bit.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::adjustRunOffsets):
(WebCore::SimpleLineLayout::create):
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
2013-10-29 Tim Horton <timothy_horton@apple.com>
Try fixing the Mac build (though I have no idea why
this wouldn't fail locally)...
* WebCore.exp.in:
2013-10-29 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Support tiled drawing and use it for the main frame
https://bugs.webkit.org/show_bug.cgi?id=123422
Reviewed by Simon Fraser.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2013-10-29 Eric Carlson <eric.carlson@apple.com>
[Mac MediaStream] implement AVFoundation backed MediaStreamSource
https://bugs.webkit.org/show_bug.cgi?id=123316
Reviewed by Jer Noble
No new tests, existing tests updated.
* CMakeLists.txt: Add MediaStreamSourceStates.cpp.
* Modules/mediastream/MediaSourceStates.cpp:
(WebCore::MediaSourceStates::MediaSourceStates): m_SourceStates -> m_sourceStates.
(WebCore::MediaSourceStates::sourceType): Ditto.
(WebCore::MediaSourceStates::facingMode): Ditto.
* Modules/mediastream/MediaSourceStates.h: Ditto.
* Modules/mediastream/MediaSourceStates.idl: Mark some attributes as optional.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::addRemoteSource):
(WebCore::MediaStream::removeRemoteSource):
* Modules/mediastream/MediaStreamCapabilities.cpp:
(WebCore::MediaStreamCapabilities::sourceType): MediaSourceStates -> MediaStreamSourceStates
(WebCore::MediaStreamCapabilities::facingMode): Ditto.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack): Don't observe source changes directly, let the
private track do that. Change private track parameter to ref because it can't be NULL.
(WebCore::MediaStreamTrack::~MediaStreamTrack): Ditto.
(WebCore::MediaStreamTrack::setSource): Pass through to private track.
(WebCore::MediaStreamTrack::stopped): Ditto.
(WebCore::MediaStreamTrack::states): Ditto.
(WebCore::MediaStreamTrack::capabilities): Ditto.
(WebCore::MediaStreamTrack::applyConstraints): Ditto.
(WebCore::MediaStreamTrack::stopProducingData): Ditto.
(WebCore::MediaStreamTrack::trackReadyStateChanged): Renamed from sourceStateChanged. Don't
schedule an 'ended' event if called as a side effect of the stop() method having been
called as per spec.
(WebCore::MediaStreamTrack::trackMutedChanged): Renamed from sourceMutedChanged.
(WebCore::MediaStreamTrack::trackEnabledChanged): Renamed from sourceEnabledChanged.
(WebCore::MediaStreamTrack::stop): Pass through to private track.
* Modules/mediastream/MediaStreamTrack.h:
(WebCore::MediaStreamTrack::Observer::~Observer): Add virtual destructor.
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::callSuccessHandler): Set track, not source, constraints.
* WebCore.xcodeproj/project.pbxproj: Add new files.
* bindings/js/JSMediaSourceStatesCustom.cpp:
(WebCore::JSMediaSourceStates::facingMode): Return jsUndefined when the facing mode
is Unknown.
* platform/mediastream/MediaStreamCenter.h: Remove unused class forward defines and
undefined method prototype.
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::addSource): ASSERT if source is kind None.
(WebCore::MediaStreamDescriptor::removeSource): Ditto.
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
* platform/mediastream/MediaStreamSource.cpp:
(WebCore::MediaStreamSource::setReadyState): Call startProducingData when readyState changes
to Live, stopProducingData when it changes to Ended.
(WebCore::MediaStreamSource::removeObserver): Call stop() when there are no more observers.
(WebCore::MediaStreamSource::setEnabled): If passed false, do nothing unless all observers
are disabled. Call startProducingData/stopProducingData when becoming enabled/disabled.
(WebCore::MediaStreamSource::stop): Don't bother checking to see if other observers have
stopped, the spec says that track.stop() should permanently stop the track's source.
* platform/mediastream/MediaStreamSource.h:
(WebCore::MediaStreamSource::name): Make virtual so derived classes can override.
(WebCore::MediaStreamSource::setName): Ditto.
(WebCore::MediaStreamSource::readyState): Ditto.
(WebCore::MediaStreamSource::enabled): Ditto.
(WebCore::MediaStreamSource::muted): Ditto.
(WebCore::MediaStreamSource::setReadonly): Ditto.
(WebCore::MediaStreamSource::remote): Ditto.
(WebCore::MediaStreamSource::setRemote): Ditto.
(WebCore::MediaStreamSource::startProducingData): Added.
(WebCore::MediaStreamSource::stopProducingData): Added.
* platform/mediastream/MediaStreamSourceCapabilities.h: Move MediaStreamSourceStates to
its own file.
* platform/mediastream/MediaStreamSourceStates.cpp: Added.
(WebCore::MediaStreamSourceStates::facingMode): Moved here from MediaSourceStates so the
strings are available to platform code.
(WebCore::MediaStreamSourceStates::sourceType): Ditto.
* platform/mediastream/MediaStreamSourceStates.h: Added, moved from MediaStreamSourceCapabilities.h.
* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::create): Pass private track to constructor as PassRefPtr.
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate): Initialize member variables.
(WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate): Unregister as source observer.
(WebCore::MediaStreamTrackPrivate::setSource): Unregister/register as source observer.
(WebCore::MediaStreamTrackPrivate::setEnabled): Enable/disable source, call client.
(WebCore::MediaStreamTrackPrivate::stop): New. Set readyState to Ended, optionally stop source.
(WebCore::MediaStreamTrackPrivate::setReadyState): Inline the logic from shouldFireTrackReadyStateChanged.
(WebCore::MediaStreamTrackPrivate::constraints): New, passthrough to the source.
(WebCore::MediaStreamTrackPrivate::states): Ditto.
(WebCore::MediaStreamTrackPrivate::type): Ditto.
(WebCore::MediaStreamTrackPrivate::capabilities): Ditto.
(WebCore::MediaStreamTrackPrivate::applyConstraints): Ditto.
(WebCore::MediaStreamTrackPrivate::sourceReadyStateChanged): React to source changes.
(WebCore::MediaStreamTrackPrivate::sourceMutedChanged): Ditto.
(WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): Ditto.
(WebCore::MediaStreamTrackPrivate::observerIsEnabled): Respond to source query.
(WebCore::MediaStreamTrackPrivate::observerIsStopped): Ditto.
* platform/mediastream/MediaStreamTrackPrivate.h:
* platform/mediastream/mac/AVAudioCaptureSource.h: Added.
* platform/mediastream/mac/AVAudioCaptureSource.mm: Added.
* platform/mediastream/mac/AVCaptureDeviceManager.h: Added.
* platform/mediastream/mac/AVCaptureDeviceManager.mm: Added.
* platform/mediastream/mac/AVMediaCaptureSource.h: Added.
* platform/mediastream/mac/AVMediaCaptureSource.mm: Added.
* platform/mediastream/mac/AVVideoCaptureSource.h: Added.
* platform/mediastream/mac/AVVideoCaptureSource.mm: Added.
* platform/mediastream/mac/MediaStreamCenterMac.cpp:
(WebCore::MediaStreamCenterMac::validateRequestConstraints): Implement.
(WebCore::MediaStreamCenterMac::createMediaStream): Ditto.
(WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Ditto.
* platform/mock/MockMediaStreamCenter.cpp:
(WebCore::initializeMockSources): Update for MediaStreamSourceStates changes.
(WebCore::MockMediaStreamCenter::createMediaStream):
2013-10-29 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] Layout error when the shape has negative top coordinate and it's applied on the second region
<https://webkit.org/b/123346>
Reviewed by David Hyatt.
We have a layout error when there is a shape applied on the second region, and it has a negative 'top' coordinate.
Since shapeInsideInfo::shapeLogicalTop() can return negative numbers, we need to check for it, when we're positioning
the first line in the region.
Test: fast/regions/shape-inside/shape-inside-on-multiple-regions-with-negative-shape-top.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-29 Brady Eidson <beidson@apple.com>
Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
https://bugs.webkit.org/show_bug.cgi?id=123451
Reviewed by NOBODY (My bad, non-reviewed, non-building code got in there)
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls): Remove the auto line I was trying from review feedback.
2013-10-29 Brady Eidson <beidson@apple.com>
Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
https://bugs.webkit.org/show_bug.cgi?id=123451
Reviewed by Andreas Kling.
This involves:
- Splitting out IDBTransactionBackendLevelDB::Operation into its own header
- Splitting out IDBDatabaseBackendImpl::PendingOpenCall into its own header
- Reworking the LevelDB Operations to handle the base class IDBTransactionBackendInterface
- Adding virtual methods in a few of the *Interface classes to support the above
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBCursorBackendInterface.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexKeys):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBOperation.h: Added.
(WebCore::IDBOperation::~IDBOperation):
* Modules/indexeddb/IDBPendingOpenCall.h: Added.
(WebCore::IDBPendingOpenCall::create):
(WebCore::IDBPendingOpenCall::callbacks):
(WebCore::IDBPendingOpenCall::databaseCallbacks):
(WebCore::IDBPendingOpenCall::version):
(WebCore::IDBPendingOpenCall::transactionId):
(WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::CursorIterationOperation::create):
(WebCore::IDBCursorBackendLevelDB::CursorAdvanceOperation::create):
(WebCore::IDBCursorBackendLevelDB::CursorPrefetchIterationOperation::create):
(WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::scheduleTask):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
(WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleOpenCursorOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleCountOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteRangeOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleClearOperation):
(WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::CreateObjectStoreAbortOperation::perform):
(WebCore::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::VersionChangeAbortOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
2013-10-29 Antti Koivisto <antti@apple.com>
Make SimpleLineLayout::Layout a variable size object
https://bugs.webkit.org/show_bug.cgi?id=123459
Reviewed by Andreas Kling.
Less memory, less indirection.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::create):
(WebCore::SimpleLineLayout::Layout::create):
(WebCore::SimpleLineLayout::Layout::Layout):
* rendering/SimpleLineLayout.h:
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::hitTestFlow):
* rendering/SimpleLineLayoutFunctions.h:
(WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
(WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
(WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
(WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
(WebCore::SimpleLineLayout::containsTextCaretOffset):
(WebCore::SimpleLineLayout::isTextRendered):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::end):
2013-10-29 Andreas Kling <akling@apple.com>
RenderObject::outlineStyleForRepaint() should return a reference.
<https://webkit.org/b/123453>
Kill a FIXME and make outlineStyleForRepaint() return a RenderStyle&.
Reviewed by Antti Koivisto.
2013-10-29 Andreas Kling <akling@apple.com>
Move more of SVG resources cache to using RenderElement.
<https://webkit.org/b/123452>
Make some more RenderSVGResourcesCache methods take RenderElement&
instead of RenderObject*.
Also removed a double hash lookup in removeResourcesFromRenderer().
Reviewed by Antti Koivisto.
2013-10-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove old Inspector.json version files and generators
https://bugs.webkit.org/show_bug.cgi?id=123426
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* inspector/Inspector-0.1.json: Removed.
* inspector/Inspector-1.0.json: Removed.
* inspector/generate-inspector-protocol-version: Removed.
2013-10-29 Philippe Normand <pnormand@igalia.com>
[GTK] DOM bindings documentation errors
https://bugs.webkit.org/show_bug.cgi?id=123448
Reviewed by Carlos Garcia Campos.
* bindings/gobject/WebKitDOMCustom.h: Basic documentation for
return types.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction): Generate Returns documentation tag for
non-void return types and provide basic documentation.
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
Reset tests results.
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
* bindings/scripts/test/GObject/WebKitDOMattribute.h:
2013-10-24 Brent Fulgham <bfulgham@apple.com>
Invalid cast in WebCore::toRenderMathMLBlock
https://bugs.webkit.org/show_bug.cgi?id=121728
rdar://problem/15046151
Reviewed by Dean Jackson.
Tested by: mathml/arbitrary-markup.html
* dom/Element.h: Expose childShouldCreateRenderer for
MathML as well as SVG builds.
* dom/Node.h:
(WebCore::Node::isMathMLElement): Added.
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::create): Create as MathML Element.
(WebCore::MathMLElement::childShouldCreateRenderer):
Only allow the child to emit a renderer if it is a
MathML element.
* mathml/MathMLElement.h:
2013-10-29 Andreas Kling <akling@apple.com>
SVG: applyStrokeStyleToContext should take a RenderElement&.
<https://webkit.org/b/123447>
..and a RenderStyle& too, for that matter.
Reviewed by Anders Carlsson.
* rendering/svg/SVGRenderSupport.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
Have this take a RenderElement& and RenderStyle& instead of
raw pointers. Tweaked a silly-looking loop.
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGShape.cpp:
Moved BoundingRectStrokeStyleApplier helper class into the
cpp file since it wasn't being used anywhere else.
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
* rendering/svg/RenderSVGResourceSolidColor.cpp:
(WebCore::RenderSVGResourceSolidColor::applyResource):
Remove ampersands.
2013-10-29 Antti Koivisto <antti@apple.com>
Multiple runs per line on simple line path
https://bugs.webkit.org/show_bug.cgi?id=123446
Reviewed by Andreas Kling.
By allowing multiple runs per line we can support text flows with consecutive whitespaces in the middle.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
Remove space test.
The improved test coverage found a few more cases that we need to disallow.
(WebCore::SimpleLineLayout::adjustRunOffsets):
Round the run positions and widths so they match line boxes.
Adjust for text-align.
(WebCore::SimpleLineLayout::create):
Split lines with consecutive spaces into runs.
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):
(WebCore::SimpleLineLayout::computeTextBoundingBox):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Iterator::resolver):
(WebCore::SimpleLineLayout::RunResolver::Iterator::lineIndex):
(WebCore::SimpleLineLayout::RunResolver::Run::Run):
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::Run::baseline):
(WebCore::SimpleLineLayout::RunResolver::Run::text):
(WebCore::SimpleLineLayout::RunResolver::Run::lineIndex):
(WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator++):
Removed unnecessary operators.
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator==):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator!=):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator*):
(WebCore::SimpleLineLayout::RunResolver::Iterator::simpleRun):
(WebCore::SimpleLineLayout::RunResolver::RunResolver):
(WebCore::SimpleLineLayout::RunResolver::begin):
(WebCore::SimpleLineLayout::RunResolver::end):
Resolver -> RunResolver
(WebCore::SimpleLineLayout::LineResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator++):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator==):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator!=):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
(WebCore::SimpleLineLayout::LineResolver::LineResolver):
(WebCore::SimpleLineLayout::LineResolver::begin):
(WebCore::SimpleLineLayout::LineResolver::end):
Add LineResolver around RunResolver. It resolves the line rectangles.
(WebCore::SimpleLineLayout::runResolver):
(WebCore::SimpleLineLayout::lineResolver):
2013-10-29 Chris Fleizach <cfleizach@apple.com>
AX: elements with explicit tabindex should expose AXFocused as writable, since mouse clicks can focus it
https://bugs.webkit.org/show_bug.cgi?id=121335
Reviewed by Mario Sanchez Prada.
Re-order logic that determines if a <span> should appear as an accessible element.
The change is that if an element canSetFocus() it should always be in the AX tree.
Test: accessibility/tabindex-elements-are-accessible.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2013-10-29 Philippe Normand <pnormand@igalia.com>
[GTK] enable media-stream in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=123144
Reviewed by Martin Robinson.
* GNUmakefile.list.am: Add new MediaStream files to the GTK port build.
2013-10-28 Chris Fleizach <cfleizach@apple.com>
AX: Webkit does not expose AXRequired on input type=file
https://bugs.webkit.org/show_bug.cgi?id=123376
Reviewed by Mario Sanchez Prada.
File upload buttons should expose AXRequired, since they take an input state.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute):
(WebCore::AccessibilityNodeObject::alternativeText):
2013-10-29 Jinwoo Song <jinwoo7.song@samsung.com>
Re-enable simple line layout for EFL
https://bugs.webkit.org/show_bug.cgi?id=123402
Reviewed by Antti Koivisto.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor): 8-bit TextRun support is now enabled for EFL port, so the port
can use the simple line layout.
2013-10-29 Zan Dobersek <zdobersek@igalia.com>
Unreviewed, follow-up to r158185. Export the required symbol.
This should fix the Mac debug build.
* WebCore.exp.in:
2013-10-29 Santosh Mahto <santosh.ma@samsung.com>
Text selected with double-click gets unselected after DOM modification
https://bugs.webkit.org/show_bug.cgi?id=114227
Reviewed by Ryosuke Niwa.
Before this patch when selection is done by double-click (start and base remain
same) and DOM is modified then selection gets vanished. This does not
happen when selection is done by dragging mouse. This happens because
on double-click base and extent remain the same and on DOM
modification we update the selection with base and extent, so we loose
the selection. Since in double-click case start/end contain the
correct selection, same should be used after dom modification to
update selection.
Test: editing/selection/double-click-selection-with-dom-mutation.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::textWasReplaced): use start/end to update
selection in case double click selection. Added a check for base !=
extent, if base != extent use base/extent to update the selection
otherwise use start/end with directionality check.
2013-10-29 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Display anonymous regions in DRT
https://bugs.webkit.org/show_bug.cgi?id=122963
Reviewed by Alexandru Chiculita.
After https://bugs.webkit.org/show_bug.cgi?id=119135, css regions are modelled using an anonymous
RenderNamedFlowFragment object inside the block having a valid -webkit-flow-from.
This patch changes the way elements | pseudo-elements with -webkit-flow-from are displayed
in test dumps.
Before:
RenderRegion {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
After:
RenderBlock (positioned) {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
RenderNamedFlowFragment at (1,1) size 50x50
Before:
Flow Threads
Thread with flow-name 'article'
Regions for flow 'article'
RenderRegion {DIV} #region_1
RenderRegion {DIV} #region_2
After:
Named flows
Named flow 'article'
Regions for named flow 'article'
RenderNamedFlowFragment (anonymous child of {DIV::before} #region_1)
RenderNamedFlowFragment (anonymous child of {DIV} #region_2)
Changed existing tests based on the new dumps.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::renderName):
* rendering/RenderNamedFlowFragment.h: Add a comment explaining the purpose of the class.
* rendering/RenderRegion.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::writeRenderRegionList): Adjust function to display info for anonymous regions too.
(WebCore::writeRenderNamedFlowThreads): Separate dump of valid and invalid regions for a named flow.
2013-10-29 Zan Dobersek <zdobersek@igalia.com>
Move writeIndent, overloaded << operators from RenderTreeAsText to TextStream
https://bugs.webkit.org/show_bug.cgi?id=116012
Reviewed by Simon Fraser.
The writeIndent method and overloaded << operators for writing out vectors and points and rectangles
of various types are not specific to the render tree nor do they depend on any rendering-specific interface.
* page/scrolling/ScrollingStateNode.cpp:
* page/scrolling/ScrollingStateNode.h:
(ScrollingStateNode): Remove the writeIndent declaration, it's functionally the same as the TextStream method.
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer): Ditto.
* platform/graphics/filters/DistantLightSource.cpp: Remove the RenderTreeAsText.h inclusion or replace it with
the inclusion of the TextStream.h header where required. The writeIndent method is now declared there.
* platform/graphics/filters/FEBlend.cpp: Ditto.
* platform/graphics/filters/FEColorMatrix.cpp: Ditto.
* platform/graphics/filters/FEComponentTransfer.cpp: Ditto.
* platform/graphics/filters/FEComposite.cpp: Ditto.
* platform/graphics/filters/FEConvolveMatrix.cpp: Ditto.
* platform/graphics/filters/FECustomFilter.cpp: Ditto.
* platform/graphics/filters/FEDiffuseLighting.cpp: Ditto.
* platform/graphics/filters/FEDisplacementMap.cpp: Ditto.
* platform/graphics/filters/FEDropShadow.cpp: Ditto.
* platform/graphics/filters/FEFlood.cpp: Ditto.
* platform/graphics/filters/FEGaussianBlur.cpp: Ditto.
* platform/graphics/filters/FEMerge.cpp: Ditto.
* platform/graphics/filters/FEMorphology.cpp: Ditto.
* platform/graphics/filters/FEOffset.cpp: Ditto.
* platform/graphics/filters/FESpecularLighting.cpp: Ditto.
* platform/graphics/filters/FETurbulence.cpp: Ditto.
* platform/graphics/filters/SourceAlpha.cpp: Ditto.
* platform/graphics/filters/SourceGraphic.cpp: Ditto.
* platform/text/TextStream.cpp: Move the writeIndent and operators' definitions here.
(WebCore::operator<<):
(WebCore):
(WebCore::writeIndent):
* platform/text/TextStream.h: Move the writeIndent and operators' declarations here.
(WebCore):
(TextStream):
(WebCore::TextStream::operator<<):
* rendering/RenderTreeAsText.cpp: Move the writeIndent and operators' definitions into TextStream.
(WebCore):
* rendering/RenderTreeAsText.h: Move the writeIndent and operators' declarations into TextStream.
(WebCore):
2013-10-28 Zan Dobersek <zdobersek@igalia.com>
Clean up ScopedEventQueue
https://bugs.webkit.org/show_bug.cgi?id=123408
Reviewed by Darin Adler.
Clean up the ScopedEventQueue implementation. ScopedEventQueue::instance() should return a reference to a
NeverDestroyed<ScopedEventQueue> object. The static ScopedEventQueue::s_instance pointer is removed.
The ScopedEventQueue destructor, the dispatchAllEvents method and the scope level incrementation/decrementation
methods are made private. NeverDestroyed<ScopedEventQueue> and EventQueueScope are made friends of the
ScopedEventQueue class so they can access the constructor and the incrementation/decrementation methods, respectively.
ScopedEventQueue method definitions are reordered to follow the order of their declarations in the header file.
ScopedEventQueue::dispatchAllEvents() now uses std::move to efficiently dispatch and clear all currently queued events.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchScopedEvent):
* dom/ScopedEventQueue.cpp:
(WebCore::ScopedEventQueue::instance):
(WebCore::ScopedEventQueue::dispatchAllEvents):
* dom/ScopedEventQueue.h:
(WebCore::EventQueueScope::EventQueueScope):
(WebCore::EventQueueScope::~EventQueueScope):
2013-10-28 Andreas Kling <akling@apple.com>
applyTextTransform() should take a const RenderStyle&.
<https://webkit.org/b/123434>
This function is always called with an existing RenderStyle object.
Reviewed by Anders Carlsson.
2013-10-28 Andreas Kling <akling@apple.com>
RenderSVGResource::applyResource() should take a const RenderStyle&.
<https://webkit.org/b/123433>
These functions are always called with an existing RenderStyle object
so let them take a const reference instead of a raw pointer.
Also sprinkled some missing OVERRIDEs.
Reviewed by Anders Carlsson.
2013-10-28 Andreas Kling <akling@apple.com>
Remove unused RenderTextControl::textBaseStyle().
<https://webkit.org/b/123432>
Reviewed by Anders Carlsson.
2013-10-28 Zan Dobersek <zdobersek@igalia.com>
HTML input type objects should be managed through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=123160
Reviewed by Darin Adler.
Make the constructors of the InputType subclasses public. This makes it possible to use std::make_unique on these classes
and makes the T::create() helpers redundant. New instances of these classes are now managed through std::unique_ptr.
InputType::create() now uses a NeverDestroyed InputTypeFactoryMap that maps type names to InputTypeFactoryFunctions and
gets populated when the method is first called and the map is still empty. Certain types are not added to the factory map
if they're disabled at runtime.
The factory is used to create the new InputType object if the requested type was found in the map, and TextInputType is used otherwise.
* html/ButtonInputType.cpp:
* html/ButtonInputType.h:
(WebCore::ButtonInputType::ButtonInputType):
* html/CheckboxInputType.cpp:
* html/CheckboxInputType.h:
(WebCore::CheckboxInputType::CheckboxInputType):
* html/ColorInputType.cpp:
* html/ColorInputType.h:
(WebCore::ColorInputType::ColorInputType):
* html/DateInputType.cpp:
* html/DateInputType.h:
* html/DateTimeInputType.cpp:
* html/DateTimeInputType.h:
(WebCore::DateTimeInputType::DateTimeInputType):
* html/DateTimeLocalInputType.cpp:
* html/DateTimeLocalInputType.h:
(WebCore::DateTimeLocalInputType::DateTimeLocalInputType):
* html/EmailInputType.cpp:
* html/EmailInputType.h:
(WebCore::EmailInputType::EmailInputType):
* html/FileInputType.cpp:
* html/FileInputType.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* html/HTMLInputElement.h:
* html/HiddenInputType.cpp:
* html/HiddenInputType.h:
(WebCore::HiddenInputType::HiddenInputType):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::ImageInputType):
* html/ImageInputType.h:
* html/InputType.cpp:
(WebCore::createInputType): A templated helper that constructs a new InputType subclass object through std::make_unique.
(WebCore::populateInputTypeFactoryMap): Populates the passed-in map with type-createInputType<T> pairs.
(WebCore::InputType::create): Get the InputTypeFactoryFunction for the specified type, or fall back to TextInputType.
(WebCore::InputType::createText):
* html/InputType.h:
* html/MonthInputType.cpp:
* html/MonthInputType.h:
(WebCore::MonthInputType::MonthInputType):
* html/NumberInputType.cpp:
* html/NumberInputType.h:
(WebCore::NumberInputType::NumberInputType):
* html/PasswordInputType.cpp:
* html/PasswordInputType.h:
(WebCore::PasswordInputType::PasswordInputType):
* html/RadioInputType.cpp:
* html/RadioInputType.h:
(WebCore::RadioInputType::RadioInputType):
* html/RangeInputType.cpp:
* html/RangeInputType.h:
* html/ResetInputType.cpp:
* html/ResetInputType.h:
(WebCore::ResetInputType::ResetInputType):
* html/SearchInputType.cpp:
(WebCore::SearchInputType::SearchInputType):
* html/SearchInputType.h:
* html/SubmitInputType.cpp:
* html/SubmitInputType.h:
(WebCore::SubmitInputType::SubmitInputType):
* html/TelephoneInputType.cpp:
* html/TelephoneInputType.h:
(WebCore::TelephoneInputType::TelephoneInputType):
* html/TextInputType.cpp:
* html/TextInputType.h:
(WebCore::TextInputType::TextInputType):
* html/TimeInputType.cpp:
* html/TimeInputType.h:
* html/URLInputType.cpp:
* html/URLInputType.h:
(WebCore::URLInputType::URLInputType):
* html/WeekInputType.cpp:
* html/WeekInputType.h:
(WebCore::WeekInputType::WeekInputType):
2013-10-28 Brady Eidson <beidson@apple.com>
Refactor IDB factory creation.
https://bugs.webkit.org/show_bug.cgi?id=123347
Reviewed by Andreas Kling.
- Rework how database directory location is passed around.
- Make (some) SecurityOrigin arguments be references instead of pointers.
- Add two SecurityOrigin arguments to opening databases for future use.
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
* Modules/indexeddb/IDBFactoryBackendInterface.cpp:
(WebCore::IDBFactoryBackendInterface::create):
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/PageGroupIndexedDatabase.cpp:
(WebCore::PageGroupIndexedDatabase::PageGroupIndexedDatabase):
(WebCore::PageGroupIndexedDatabase::from):
(WebCore::PageGroupIndexedDatabase::factoryBackend):
* Modules/indexeddb/PageGroupIndexedDatabase.h:
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::open):
(WebCore::IDBBackingStoreLevelDB::openInMemory):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::computeFileIdentifier):
(WebCore::computeUniqueIdentifier):
(WebCore::IDBFactoryBackendLevelDB::IDBFactoryBackendLevelDB):
(WebCore::IDBFactoryBackendLevelDB::getDatabaseNames):
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
(WebCore::IDBFactoryBackendLevelDB::openBackingStore):
(WebCore::IDBFactoryBackendLevelDB::open):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
(WebCore::IDBFactoryBackendLevelDB::create):
* WebCore.exp.in:
* platform/DatabaseStrategy.cpp:
(WebCore::DatabaseStrategy::createIDBFactoryBackend):
* platform/DatabaseStrategy.h:
2013-10-28 Andreas Kling <akling@apple.com>
RenderElement::style() should return a reference.
<https://webkit.org/b/123414>
Now that renderers always have style, go ahead and make style()
return a RenderStyle&.
There are countless opportunities for further cleanup enabled by
this change. I'm simply passing &style() in many cases where we
can really do something nicer instead.
Reviewed by Anders Carlsson.
2013-10-28 Tim Horton <timothy_horton@apple.com>
Make TileController create the appropriate PlatformCALayer subclasses
https://bugs.webkit.org/show_bug.cgi?id=123418
Reviewed by Simon Fraser.
Add PlatformCALayer::createCompatibleLayer, which is overridden in
each of the subclasses to create a PlatformCALayer instance of the same
subclass. This is used in TileController to make bare PlatformCALayers
of the correct type (Mac, Win, or Remote).
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::createCompatibleLayer):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::createCompatibleLayer):
* platform/graphics/ca/win/PlatformCALayerWin.h:
Add createCompatibleLayer and implement it in the subclasses.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tiledScrollingIndicatorLayer):
(WebCore::TileController::createTileLayer):
Make use of createCompatibleLayer when creating PlatformCALayers.
2013-10-28 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: Add protocol API to expose content nodes addition/removal
https://bugs.webkit.org/show_bug.cgi?id=123424
Reviewed by Timothy Hatcher.
Test: inspector-protocol/model/content-flow-content-nodes.html
Adding two new inspector-protocol APIs to handle the cases when new elements are
added or removed from a named flow. These APIs will trigger even though there
is no region associated with the named flow.
* inspector/Inspector.json:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::didRegisterNamedFlowContentElement):
(WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didRegisterNamedFlowContentElementImpl):
(WebCore::InspectorInstrumentation::didUnregisterNamedFlowContentElementImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didRegisterNamedFlowContentElement):
(WebCore::InspectorInstrumentation::didUnregisterNamedFlowContentElement):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
2013-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused inspector/inline-javascript-imports.py
https://bugs.webkit.org/show_bug.cgi?id=123425
Reviewed by Timothy Hatcher.
* inspector/inline-javascript-imports.py: Removed.
2013-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused "externs" files and generators
https://bugs.webkit.org/show_bug.cgi?id=123427
Reviewed by Timothy Hatcher.
* inspector/InjectedScriptExterns.js: Removed.
* inspector/generate_protocol_externs.py: Removed.
2013-10-28 Joseph Pecoraro <pecoraro@apple.com>
Upstream remaining PLATFORM(IOS) and ENABLE(REMOTE_INSPECTOR) pieces
https://bugs.webkit.org/show_bug.cgi?id=123411
Reviewed by Timothy Hatcher.
Include an InspectorClient hook for when node searching is enabled / disabled.
* inspector/InspectorClient.h:
(WebCore::InspectorClient::didSetSearchingForNode):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setSearchingForNode):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::didSetSearchingForNode):
* inspector/InspectorOverlay.h:
2013-10-28 Benjamin Poulain <benjamin@webkit.org>
Rename applyPageScaleFactorInCompositor to delegatesPageScaling
https://bugs.webkit.org/show_bug.cgi?id=123417
Reviewed by Simon Fraser.
* page/Frame.cpp:
(WebCore::Frame::frameScaleFactor):
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentScaleFactor):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
* page/Settings.in:
* platform/ScrollView.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
2013-10-28 Myles C. Maxfield <mmaxfield@apple.com>
Parsing support for -webkit-text-decoration-skip: ink
https://bugs.webkit.org/show_bug.cgi?id=123358
Reviewed by Dean Jackson.
Adds initial parsing support for parsing -webkit-text-decoration-skip with
values of "none" and "ink". This work is behind the new
ENABLE(CSS3_TEXT_DECORATION) compile-time flag.
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html
* Configurations/FeatureDefines.xcconfig: Adding ENABLE(CSS3_TEXT_DECORATION)
* css/CSSComputedStyleDeclaration.cpp: Mapping internal representation of text-decoration-skip
to a CSSValue
(WebCore::renderTextDecorationSkipFlagsToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp: Actually parsing tokens
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTextDecorationSkip):
* css/CSSParser.h:
* css/CSSPropertyNames.in: adding -webkit-text-decoration-skip
* css/CSSValueKeywords.in: adding ink
* css/DeprecatedStyleBuilder.cpp: Mapping from CSSValue to internal representation
(WebCore::ApplyPropertyTextDecorationSkip::valueToDecorationSkip):
(WebCore::ApplyPropertyTextDecorationSkip::applyValue):
(WebCore::ApplyPropertyTextDecorationSkip::createHandler):
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp: decoration-skip uses DeprecatedStyleBuilder
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h: Adding functions for modifying and accessing decoration-skip properties
* rendering/style/RenderStyleConstants.h: Definition of internal representation
* rendering/style/StyleRareInheritedData.cpp: Setting up constructors and comparators
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h: Holds actual value of internal representation
2013-10-28 Anders Carlsson <andersca@apple.com>
RunLoop::dispatch should take an std::function
https://bugs.webkit.org/show_bug.cgi?id=123407
Reviewed by Andreas Kling.
* WebCore.exp.in:
* platform/RunLoop.cpp:
(WebCore::RunLoop::performWork):
(WebCore::RunLoop::dispatch):
* platform/RunLoop.h:
2013-10-28 Tim Horton <timothy_horton@apple.com>
Make TileController manipulate PlatformCALayers instead of CALayers
https://bugs.webkit.org/show_bug.cgi?id=123279
Reviewed by Simon Fraser.
In the interest of making TileController more platform-independent
(so that it can be used with the remote layer tree, and maybe Windows),
move TileController onto our PlatformCALayer abstraction instead of
direct manipulation of CALayers.
Some fallout from this includes getting rid of special Mac-specific
TileController-specific CALayer subclasses, and reworking tile
painting to work in a more generic way.
This is a first step, and doesn't get us all the way to a platform independent
TileController, but more patches are forthcoming.
No new tests, just a (largeish) refactor.
* WebCore.exp.in:
The signature of some methods has changed.
* WebCore.xcodeproj/project.pbxproj:
Remove WebTileLayer.*
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
Use the "isTile" key on the CALayer dictionary instead of the layer's
class to determine if it's a tile. TileController will set this on a tile
when it is created, for now.
* platform/graphics/TiledBacking.h:
tiledScrollingIndicatorLayer() should return a PlatformCALayer.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::platformCALayerIncrementRepaintCount):
* platform/graphics/ca/PlatformCALayerClient.h:
The PlatformCALayerClient paintContents and incrementRepaintCount callbacks
should include the platformCALayer that caused the callback.
* platform/graphics/ca/PlatformCALayer.h:
Add LayerTypeSimpleLayer, which is similar to LayerTypeWebLayer
except it just calls back its client to paint, instead of doing
complicated things with repaint rects. This is so that TileController
doesn't re-enter drawLayerContents when asking its GraphicsLayer
to paint for each PlatformCALayer (it will be entering drawLayerContents
for the first time for each layer). It also happens to be useful
for things like the tile controller overlay, which don't need
all that complication.
Add LayerTypeTiledBackingTileLayer, which is used simply to distinguish
TileController Tile layers from other LayerTypeSimpleLayers.
* platform/graphics/ca/mac/LayerPool.h:
* platform/graphics/ca/mac/LayerPool.mm:
(WebCore::LayerPool::addLayer):
(WebCore::LayerPool::takeLayerWithSize):
LayerPool should operate on PlatformCALayers now.
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
Set the "isTile" key on the CALayer to true for TiledBackingTileLayers,
so that the scrolling performance logging can tell a tile apart from
any other layer, on the scrolling thread, without touching PlatformCALayers
or the TileController or any other main-thread data structures.
(PlatformCALayerMac::setEdgeAntialiasingMask): Added.
* platform/graphics/ca/mac/TileController.h:
Remove references to Objective-C classes; instead use PlatformCALayer everywhere.
TileController is now a PlatformCALayerClient, and the layers it owns are
all PlatformCALayers (and it is constructed with a PlatformCALayer, etc.).
Hand in the tile debug border color as a WebCore color, instead of a CGColorRef.
blankPixelCountForTiles() now operates on a list of PlatformLayers instead of
WebTileLayers specifically, since WebTileLayer is gone.
Make drawTileMapContents private because WebTileCacheMapLayer no longer exists.
(WebCore::TileController::platformCALayerDrawsContent):
All of the layers who have TileController as their client paint their contents.
(WebCore::TileController::platformCALayerContentsOpaque):
This will only be called for layers which paint via drawLayerContents,
so it's OK that we don't special-case the debugging overlay here.
(WebCore::TileController::owningGraphicsLayer):
Return the GraphicsLayer that owns the TileController's main
layer, via its conformance to PlatformCALayerClient. This is
a bit strange (because it's not strictly a GraphicsLayer, despite
always being so at the moment), but is done for clarity inside
TileController itself.
* platform/graphics/ca/mac/TileController.mm:
Remove CALayer (WebCALayerDetails), WebTiledScrollingIndicatorLayer,
and a bunch of includes that we don't need anymore.
(WebCore::TileController::create):
(WebCore::TileController::TileController):
TileController is passed a PlatformCALayer for the tile cache root layer,
instead of a WebTiledBackingLayer. It also creates a PlatformCALayer with
LayerTypeLayer instead of a bare CALayer for the container layer.
It's OK to remove the transaction because it was only used to stop
the implicit animation, which PlatformCALayer will do for us.
(WebCore::TileController::~TileController):
Clear the owner of the PlatformCALayers which the TileController previously owned,
so they don't try to call back a destroyed TileController.
(WebCore::TileController::tileCacheLayerBoundsChanged):
(WebCore::TileController::setNeedsDisplay):
Straightforward adjustments towards use of PlatformCALayer.
(WebCore::TileController::setTileNeedsDisplayInRect):
Adjustments towards use of PlatformCALayer; we need FloatRects so we can
pass pointers to PlatformCALayer::setNeedsDisplay.
(WebCore::TileController::platformCALayerPaintContents):
Replace drawLayer with platformCALayerPaintContents, which will be called
back from our various WebSimpleLayers. If the PlatformCALayer is our
tiled scrolling debug indicator, paint that. Otherwise, it's a tile.
Make use of drawLayerContents() to paint the tile contents.
Make use of drawRepaintIndicator() to paint the repaint indicator if needed.
Move scrolling performance logging code that used to be in WebTileLayer here.
(WebCore::TileController::platformCALayerDeviceScaleFactor):
(WebCore::TileController::platformCALayerShowDebugBorders):
(WebCore::TileController::platformCALayerShowRepaintCounter):
Forward these to the owning GraphicsLayerCA, because it will have the right answers.
(WebCore::TileController::setScale):
Adjustments towards use of PlatformCALayer; remove some code that Simon
caused to be unused in 156291 but did not remove.
(WebCore::TileController::setAcceleratesDrawing):
(WebCore::TileController::setTilesOpaque):
(WebCore::TileController::setVisibleRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::setTileDebugBorderWidth):
(WebCore::TileController::setTileDebugBorderColor):
(WebCore::TileController::bounds):
(WebCore::TileController::blankPixelCount):
(WebCore::TileController::blankPixelCountForTiles):
(WebCore::queueTileForRemoval):
(WebCore::TileController::setNeedsRevalidateTiles):
(WebCore::TileController::ensureTilesForRect):
(WebCore::TileController::retainedTileBackingStoreMemory):
Straightforward adjustments towards use of PlatformCALayer.
(WebCore::TileController::updateTileCoverageMap):
Adjustments towards use of PlatformCALayer; rename backgroundColor
to visibleRectIndicatorColor, since it's actually a border, not a background.
(WebCore::TileController::tiledScrollingIndicatorLayer):
Create a LayerTypeSimpleLayer PlatformCALayer for the tiled scrolling indicator.
It will be asked to paint straightforwardly, like a CALayer would.
Create a LayerTypeLayer PlatformCALayer for the visible rect indicator.
It doesn't need to paint anything, so it doesn't get an owner.
(WebCore::TileController::createTileLayer):
When creating a new tile layer, adopt it by setting its owner.
Otherwise, straightforward adjustments towards use of PlatformCALayer.
(WebCore::TileController::platformCALayerIncrementRepaintCount):
Manage repaint counts for tiles in TileController now.
(WebCore::TileController::drawTileMapContents):
Adjustments towards use of PlatformCALayer.
* platform/graphics/ca/mac/WebTileLayer.h: Removed.
* platform/graphics/ca/mac/WebTileLayer.mm: Removed.
We don't need WebTileLayer anymore, tiles are now just WebSimpleLayers
owned by TileController. Its behavior has been moved into TileController.
* platform/graphics/ca/mac/WebTiledBackingLayer.h:
* platform/graphics/ca/mac/WebTiledBackingLayer.mm:
(-[WebTiledBackingLayer createTileController:]):
Add createTileController: so that the WebTiledBackingLayer's owner can
hand the TileController the PlatformCALayer for the WebTiledBackingLayer
without propagating additional usage of PlatformCALayer::platformCALayer(),
which we need to remove in light of the remote layer tree work.
(-[WebTiledBackingLayer setBorderColor:]):
* platform/graphics/ca/win/PlatformCALayerWin.h:
Add an empty implementation of setEdgeAntialiasingMask.
We'll probably want to implement it before adopting TileController on Windows.
* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(PlatformCALayerWinInternal::displayCallback):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerIncrementRepaintCount):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::LayerClient::platformCALayerPaintContents):
(WebCore::LayerClient::platformCALayerIncrementRepaintCount):
Adjust for new parameters on PlatformCALayerClient callbacks.
* platform/graphics/mac/WebLayer.h:
Add WebSimpleLayer, which inherits directly from CALayer, and make
our standard WebLayer (which is used for compositing layers in web content)
inherit from that.
* platform/graphics/mac/WebLayer.mm:
Move most of the behavior of WebLayer onto WebSimpleLayer, except for its
complex painting code. That stays as an override on WebLayer.
(WebCore::drawLayerContents):
Use the PlatformCALayer's PlatformLayer - if it exists - to extract
fine-grained repaint rects. If it doesn't, we'll just use the CGContext's
clip rect as our single repaint rect.
Rename platformLayer to platformCALayer for accuracy.
Remove special code for CATiledLayer since we ought not use it on Mac anymore.
(WebCore::drawRepaintIndicator):
Factor repaint indicator code out into its own function so that TileController
can use it. It can't be called from drawLayerContents for TileController, since
the PlatformCALayer that TileController passes in to drawLayerContents is actually
that of the tile cache's root layer, not the tile itself.
Also, add a custom background color parameter so TileController can override
the default green color with its own standard purple.
(-[WebLayer drawInContext:]):
(-[WebSimpleLayer drawInContext:]):
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer drawInContext:]):
Removed a param from drawLayerContents because it's trivially acquirable
from the PlatformCALayer.
2013-10-24 Sam Weinig <sam@webkit.org>
Move RenderBlock functions only used by RenderBlockFlow to RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=123318
Reviewed by David Hyatt.
* rendering/LineLayoutState.h:
Move FloatWithRect from RenderBlock.
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
Move pagination and float functions.
2013-10-28 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Add support for order inside grid items
https://bugs.webkit.org/show_bug.cgi?id=123208
Reviewed by Antti Koivisto.
Based on Blink r153457 and r153536 by <jchaffraix@chromium.org>
Added support for sorting grid items by using -webkit-order
property. Used OrderIterator to implement it so it had to be moved
out of RenderFlexibleBox to be shared with RenderGrid.
Tests: fast/css-grid-layout/grid-item-order-auto-flow-resolution.html
fast/css-grid-layout/grid-item-order-paint-order.html
* CMakeLists.txt: Added new file.
* GNUmakefile.list.am: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* rendering/OrderIterator.cpp: Added. Ripped out of RenderFlexibleBox.
(WebCore::OrderIterator::OrderIterator):
(WebCore::OrderIterator::setOrderValues): Use std::move semantics.
(WebCore::OrderIterator::first): Use an integer as iterator.
(WebCore::OrderIterator::next): Ditto.
(WebCore::OrderIterator::reset): Ditto.
* rendering/OrderIterator.h: Added.
(WebCore::OrderIterator::currentChild):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlexibleBox.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::paintChildren):
* rendering/RenderGrid.h:
2013-10-28 Afonso R. Costa Jr. <afonso.costa@samsung.com>
Methods on window.internals shouldn't pass a document.
https://bugs.webkit.org/show_bug.cgi?id=107301
Reviewed by Alexey Proskuryakov.
Each 'Internals' instance is associated with a 'Document'. So, it
is not necessary to pass a document as argument. Only nodesFromRect and
layerTreeAsText methods were kept because, in some Layout Tests, the
'Document' object is not the same used by Internals::contextDocument.
* testing/Internals.cpp: Removed 'document' parameter.
(WebCore::Internals::animationsAreSuspended):
(WebCore::Internals::suspendAnimations):
(WebCore::Internals::resumeAnimations):
(WebCore::Internals::inspectorHighlightRects):
(WebCore::Internals::inspectorHighlightObject):
(WebCore::Internals::setScrollViewPosition):
(WebCore::Internals::setPagination):
(WebCore::Internals::configurationForViewport):
(WebCore::Internals::paintControlTints):
(WebCore::Internals::setDelegatesScrolling):
(WebCore::Internals::touchPositionAdjustedToBestClickableNode):
(WebCore::Internals::touchNodeAdjustedToBestClickableNode):
(WebCore::Internals::touchPositionAdjustedToBestContextMenuNode):
(WebCore::Internals::touchNodeAdjustedToBestContextMenuNode):
(WebCore::Internals::bestZoomableAreaForTouchPoint):
(WebCore::Internals::lastSpellCheckRequestSequence):
(WebCore::Internals::lastSpellCheckProcessedSequence):
(WebCore::Internals::wheelEventHandlerCount):
(WebCore::Internals::touchEventHandlerCount):
(WebCore::Internals::setBatteryStatus):
(WebCore::Internals::setNetworkInformation):
(WebCore::Internals::setDeviceProximity):
(WebCore::Internals::hasSpellingMarker):
(WebCore::Internals::hasAutocorrectedMarker):
(WebCore::Internals::isOverwriteModeEnabled):
(WebCore::Internals::toggleOverwriteModeEnabled):
(WebCore::Internals::consoleMessageArgumentCounts):
(WebCore::Internals::hasGrammarMarker):
(WebCore::Internals::numberOfScrollableAreas):
(WebCore::Internals::isPageBoxVisible):
(WebCore::Internals::repaintRectsAsText):
(WebCore::Internals::scrollingStateTreeAsText):
(WebCore::Internals::mainThreadScrollingReasons):
(WebCore::Internals::nonFastScrollableRects):
(WebCore::Internals::garbageCollectDocumentResources):
(WebCore::Internals::insertAuthorCSS):
(WebCore::Internals::insertUserCSS):
(WebCore::Internals::shortcutIconURLs):
(WebCore::Internals::allIconURLs):
(WebCore::Internals::setHeaderHeight):
(WebCore::Internals::setFooterHeight):
(WebCore::Internals::webkitWillEnterFullScreenForElement):
(WebCore::Internals::webkitDidEnterFullScreenForElement):
(WebCore::Internals::webkitWillExitFullScreenForElement):
(WebCore::Internals::webkitDidExitFullScreenForElement):
(WebCore::Internals::startTrackingRepaints):
(WebCore::Internals::stopTrackingRepaints):
(WebCore::Internals::getCurrentCursorInfo):
* testing/Internals.h:
(WebCore::Internals::setPagination):
* testing/Internals.idl:
2013-10-28 Xabier Rodriguez Calvar <calvaris@igalia.com>
Remove HTMLMediaElement.startTime
https://bugs.webkit.org/show_bug.cgi?id=123264
Reviewed by Eric Carlson.
Patch based on one by: philipj@opera.com
Blink review URL: https://codereview.chromium.org/32583003
startTime has been removed from the HTMLMediaElement and its use
in the rest of components.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handleRewindButtonClicked):
(Controller.prototype.handleTimelineMouseMove):
(Controller.prototype.updateDuration):
(Controller.prototype.updateTime): Removed used of startTime().
* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_html_media_element_get_start_time):
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols: Added phony function.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::isBlockedOnMediaController): Removed
use of startTime()
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl: Removed startTime()
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderThemeWinCE::paintSliderThumb): Removed use of
startTime()
2013-10-28 Andreas Kling <akling@apple.com>
RenderElement::m_style should be a Ref.
<https://webkit.org/b/123401>
Made RenderElement::m_style a Ref. This codifies the fact that it
can never be null after construction.
Removed a couple of unnecessary null checks that were exposed as
compilation failures.
Reviewed by Antti Koivisto.
2013-10-28 Bastien Nocera <hadess@hadess.net>
Name all the GLib timeout sources
https://bugs.webkit.org/show_bug.cgi?id=123229
Reviewed by Anders Carlsson.
Give a name to GLib timeout sources, this is helpful when
profiling WebKitGTK applications.
No new tests, no change in functionality.
2013-10-28 Philippe Normand <pnormand@igalia.com>
MediaStreamTrackPrivate's m_client uninitialized
https://bugs.webkit.org/show_bug.cgi?id=123403
Reviewed by Eric Carlson.
No new tests, no change in functionality.
* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
Initialize the m_client member variable.
2013-10-28 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am: Add crypto idl files to EXTRA_DIST and remove
css/fullscreenQuickTime.css that was removed.
2013-10-28 Antti Koivisto <antti@apple.com>
Prepare simple line layout to support multiple runs per line
https://bugs.webkit.org/show_bug.cgi?id=123400
Reviewed by Andreas Kling.
Bunch of renaming and some refactoring for future support for text runs.
SimpleLineLayout::Lines -> SimpleLineLayout::Layout and becomes a class instead of a typedef.
SimpleLineLayout::Resolver::Line -> SimpleLineLayout::Resolver::Run
SimpleLineLayout::createLines() -> SimpleLineLayout::create()
RenderBlockFlow::simpleLines() -> RenderBlockFlow::simpleLineLayout()
RenderText::simpleLines() -> RenderText::simpleLineLayout()
Added resolver construction functions:
SimpleLineLayout::runResolver()
SimpleLineLayout::lineResolver()
2013-10-28 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Expose title and alternative text for links in image maps
https://bugs.webkit.org/show_bug.cgi?id=84045
Reviewed by Chris Fleizach.
Change the way we decide when the title attribute should be
used for the accessible description, by not relying in the
titleTagShouldBeUsedInDescriptionField() helper function but
in whether we have found a visible text for it or not.
This actually mimics what the Mac port does and so makes possible
to share both the layout test and its expected results.
* accessibility/atk/WebKitAccessibleUtil.cpp:
(accessibilityDescription): Update the method to determine
whether the title attribute should be used for the description.
2013-10-28 Bastien Nocera <hadess@hadess.net>
Replace 0 timeouts g_timeout_add() by g_idle_add()
https://bugs.webkit.org/show_bug.cgi?id=123260
Reviewed by Carlos Garcia Campos.
A zero timeout should be equivalent to using g_idle_add_full(G_PRIORITY_DEFAULT, ...)
without the nagging feeling that the wrong API was used.
No new tests, no change in functionality.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Use g_idle_add() instead
of 0-timer.
(WebCore::MediaPlayerPrivateGStreamer::videoChanged):
(WebCore::MediaPlayerPrivateGStreamer::audioChanged):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Ditto.
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
* platform/gtk/GtkDragAndDropHelper.cpp: Ditto.
(WebCore::GtkDragAndDropHelper::handleDragLeave):
2013-10-28 Zan Dobersek <zdobersek@igalia.com>
Re-enable simple line layout for GTK
https://bugs.webkit.org/show_bug.cgi?id=123388
Reviewed by Andreas Kling.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor): 8-bit TextRun support is now enabled for the GTK port, so the port
can use the simple line layout.
2013-10-27 Andreas Kling <akling@apple.com>
Fix 4 asserting SVG tests after r158097.
RenderElement::setStyle() is, quite surprisingly, a virtual function
with a single override in RenderSVGBlock.
To match the old behavior, we have to rewrite the display type from
any inline type to block instead.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::initializeStyle):
2013-10-27 Andreas Kling <akling@apple.com>
Tone down overzealous assertion from r158097.
RenderElement::initializeStyle() really only cares that there are no
text renderers that we should be calling styleDidChange() on.
Tweak the code to only check that there are no text children.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::initializeStyle):
2013-10-27 Antti Koivisto <antti@apple.com>
Enable center and right text alignment for simple lines
https://bugs.webkit.org/show_bug.cgi?id=123398
Reviewed by Andreas Kling.
Support text-align:center and text-align:right on simple line layout path.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
text-align:justify is still not supported.
(WebCore::SimpleLineLayout::computeLineLeft):
(WebCore::SimpleLineLayout::createLines):
Do a rounding dance that matches the line boxes.
* rendering/SimpleLineLayout.h:
Add left position to lines.
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::Resolver::Line::rect):
We now do rounding during layout.
(WebCore::SimpleLineLayout::Resolver::Line::baseline):
2013-10-27 Andreas Kling <akling@apple.com>
Renderers should receive their style at construction.
<https://webkit.org/b/123396>
Pass the RenderStyle to all non-text renderer constructors.
After construction, initializeStyle() must be called (as a stopgap
measure) until we are able to do style-derived initialization
without virtual function calls.
With this change, RenderElement::m_style is never null. Subsequent
patches will add enforcement for this and also make style() return
a RenderStyle&.
I'm adding three FIXME's in this patch:
- createRendererIfNeeded() calls AnimationController to set up
the initial style manually instead of asking RenderElement's
setAnimatedStyle() to do it. This can probably be done in a
nicer way, but it's not clear yet how.
- ImageContentData::createRenderer() does a bit of unnecessary
work. This should be easy to clean up but got too distracting
to be part of this patch.
- Document::createRenderTree() creates the RenderView with an
initial dummy RenderStyle. I've done this because resolving
the document style assumes we already have a RenderView.
For styleWillChange() implementations to detect that they are
reacting to the initial style, I've added a hasInitializedStyle()
function on RenderElement. This will return false until you've
called initializeStyle() on the renderer. This should go away
along with initializeStyle() eventually.
Reviewed by Antti Koivisto.
2013-10-26 Tim Horton <timothy_horton@apple.com>
[mac] Remove WebTiledLayer
https://bugs.webkit.org/show_bug.cgi?id=123395
Reviewed by Anders Carlsson.
Mac doesn't use CATiledLayer at all anymore. We have to keep
LayerTypeTiledLayer around for Windows, for now, but we can
get rid of WebTiledLayer and some related Mac-specific code.
No new tests, just removing dead code.
* WebCore.xcodeproj/project.pbxproj:
Remove WebTiledLayer.*
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
Remove synchronouslyDisplayTilesInRect, which was only used for WebTiledLayer on Mac.
Remove WebTiledLayer instantiation and setup code.
* platform/graphics/mac/WebTiledLayer.h: Removed.
* platform/graphics/mac/WebTiledLayer.mm: Removed.
2013-10-26 Andreas Kling <akling@apple.com>
CTTE: RenderImageResourceStyleImage always has a StyleImage.
<https://webkit.org/b/123390>
Codify the fact that RenderImageResourceStyleImage always wraps an
existing StyleImage object.
Reviewed by Antti Koivisto.
2013-10-26 Antti Koivisto <antti@apple.com>
Revert some accidental changes.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
* css/CSSFontSelector.cpp:
* css/CSSFontSelector.h:
2013-10-26 Mark Lam <mark.lam@apple.com>
Gardening: fixed broken build.
https://bugs.webkit.org/show_bug.cgi?id=123354.
* css/CSSFontSelector.h:
2013-10-26 Antti Koivisto <antti@apple.com>
fast/frames/seamless/seamless-nested-crash.html asserts on wk2 only
https://bugs.webkit.org/show_bug.cgi?id=123354
Reviewed by Andreas Kling.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
Don't enable simple line layout if the primary font is loading. The code expects
to use the primary font metrics for all lines but those won't match the fallbacks
when font is not loaded.
2013-10-26 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Deprecate public dispatch_event method in objects implementing EventTarget interface
https://bugs.webkit.org/show_bug.cgi?id=123261
Reviewed by Gustavo Noronha Silva.
The interface function should be used instead.
* bindings/scripts/CodeGeneratorGObject.pm:
(GetFunctionDeprecationInformation): Helper function to return the
version when the function was deprecated and the function
replacing the deprecated one.
(GenerateFunction): Check if the function is deprecated to mark it
as such in the header and API docs.
* bindings/scripts/gobject-generate-headers.pl: Replace the unused
WEBKIT_OBSOLETE_API macro with new macros to mark function as
deprecated, using the glib macros so that we don't need checks for
the platform.
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
* bindings/scripts/test/GObject/WebKitDOMattribute.h:
2013-10-25 Mark Lam <mark.lam@apple.com>
DatabaseManager's ProposedDatabases need to be thread-safe.
https://bugs.webkit.org/show_bug.cgi?id=123313.
Reviewed by Geoffrey Garen.
No new tests.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::registerDatabaseContext):
(WebCore::DatabaseManager::unregisterDatabaseContext):
(WebCore::DatabaseManager::didConstructDatabaseContext):
(WebCore::DatabaseManager::didDestructDatabaseContext):
(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::addProposedDatabase):
(WebCore::DatabaseManager::removeProposedDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
* Modules/webdatabase/DatabaseManager.h:
2013-10-25 Joseph Pecoraro <pecoraro@apple.com>
Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
https://bugs.webkit.org/show_bug.cgi?id=123111
Reviewed by Timothy Hatcher.
* Configurations/FeatureDefines.xcconfig:
* WebCore.exp.in:
2013-10-25 Hans Muller <hmuller@adobe.com>
[CSS Shapes] CORS-enabled fetch for shape image values
https://bugs.webkit.org/show_bug.cgi?id=123114
Reviewed by Andreas Kling.
Access to shape images is now controlled by CORS CSS shape per
http://dev.w3.org/csswg/css-shapes/#shape-outside-property.
Previously shape images had to be same-origin.
Shape image URL access is defined by the same logic that defines
canvas tainting: same-origin and data URLs are allowed and images
with a "Access-Control-Allow-Origin:" header that's either "*" or
that matches the document's origin.
A PotentiallyCrossOriginEnabled RequestOriginPolicy was added to
ResourceLoaderOptions, to indicate that a "potentially CORS-enabled fetch"
was to be undertaken. The CSSImageValue::cachedImage() method handles this
option by effectively setting the "Origin:" request header (see
updateRequestForAccessControl() in CrossOriginAccessControl.cpp).
StyleResolver::loadPendingShapeImage() uses the new ResourceLoaderOption.
The static ShapeInsideInfo and ShapeOutsideInfo isEnabledFor() method
now performs the CORS check for image valued shapes. The private
isOriginClean() method from CanvasRenderingContext2D has been moved to
the CachedImage class so that it can be shared by the Canvas and Shape
implementations. It checks the response headers per the CORS spec.
Test: http/tests/security/shape-image-cors.html
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage): Handle the new ResourceLoaderOption.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingShapeImage): Set the new ResourceLoaderOption.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern): Use the CachedImage::isOriginClean().
* loader/ResourceLoaderOptions.h: Added PotentiallyCrossOriginEnabled to RequestOriginPolicy.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::isOriginClean): Migrated from CanvasRenderingContext2D.
* loader/cache/CachedImage.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::checkImageOrigin): Do the CORS check and log an error message if neccessary.
* rendering/shapes/ShapeInfo.h:
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::isEnabledFor): Call checkImageOrigin() for images.
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::isEnabledFor): Ditto.
2013-10-25 Jer Noble <jer.noble@apple.com>
[MSE] Fix runtime errors caused by mediasource IDL attributes.
https://bugs.webkit.org/show_bug.cgi?id=123352
Reviewed by Eric Carlson.
Due to http://webkit.org/b/123178, MediaSource classes must add a GenerateIsReachable
(and also a JSGenerateToJSObject) attribute to avoid runtime asserts and crashes.
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediasource/SourceBufferList.idl:
* Modules/mediasource/WebKitMediaSource.idl:
* Modules/mediasource/WebKitSourceBufferList.idl:
2013-10-25 Jacky Jiang <zhajiang@blackberry.com>
[BlackBerry] Browser crashed at PlatformGraphicsContext::addDrawLineForText() when trying to upload a video to youtube
https://bugs.webkit.org/show_bug.cgi?id=123349
Reviewed by George Staikos.
Internally reviewed by George Staikos, Konrad Piascik, Eli Fidler and Arvid Nilsson.
Browser crashed when dereferencing null PlatformGraphicsContext*.
In FrameView::paintControlTints(), we intentionally constructed GraphicsContext
with null PlatformGraphicsContext* and disabled painting by doing
context.setUpdatingControlTints(true). So we should not go further in
GraphicsContext::drawLineForText() if painting is disabled.
Check paintingDisabled() for the other functions in PathBlackBerry.cpp
as well; otherwise, it is likely we will crash at those places.
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawLineForDocumentMarker):
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::canvasClip):
(WebCore::GraphicsContext::clipOut):
2013-10-25 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding platform implementation of MediaStreamTrack
https://bugs.webkit.org/show_bug.cgi?id=123301
Reviewed by Eric Carlson.
No new tests needed.
* CMakeLists.txt:
* Modules/mediastream/AudioStreamTrack.cpp:
(WebCore::AudioStreamTrack::create): Create method now receives a MediaStreamTrackPrivate as parameter.
(WebCore::AudioStreamTrack::AudioStreamTrack):
* Modules/mediastream/AudioStreamTrack.h:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream): Constructor now iterates through a set of MediaStreamTrackPrivate
instances to create each MediaStreamTrack of MediaStream.
(WebCore::MediaStream::addRemoteSource): Calling AudioStreamTrack and VideoStreamTrack with
MediaStreamTrackPrivate as parameter.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack): Constructor now receives a MediaStreamTrackPrivate, instead of a
MediaStreamSource.
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::kind): Calling method from MediaStreamTrackPrivate.
(WebCore::MediaStreamTrack::setSource): Ditto.
(WebCore::MediaStreamTrack::id): Ditto.
(WebCore::MediaStreamTrack::label): Ditto.
(WebCore::MediaStreamTrack::enabled): Ditto.
(WebCore::MediaStreamTrack::setEnabled): Ditto.
(WebCore::MediaStreamTrack::muted): Ditto.
(WebCore::MediaStreamTrack::readonly): Ditto.
(WebCore::MediaStreamTrack::remote): Ditto.
(WebCore::MediaStreamTrack::readyState): Ditto.
(WebCore::MediaStreamTrack::states):
(WebCore::MediaStreamTrack::capabilities):
(WebCore::MediaStreamTrack::clone):
(WebCore::MediaStreamTrack::stopProducingData):
(WebCore::MediaStreamTrack::ended): Ditto.
(WebCore::MediaStreamTrack::sourceStateChanged): Ditto.
(WebCore::MediaStreamTrack::sourceMutedChanged): Ditto.
(WebCore::MediaStreamTrack::sourceEnabledChanged): Ditto.
(WebCore::MediaStreamTrack::configureTrackRendering):
(WebCore::MediaStreamTrack::stopped): Ditto.
(WebCore::MediaStreamTrack::trackDidEnd): Setting Ended ready state in MediaStreamTrackPrivate.
(WebCore::MediaStreamTrack::trackReadyStateChanged): Dispatches Live or Ended event.
(WebCore::MediaStreamTrack::trackMutedChanged): Dispatches Muted event.
* Modules/mediastream/MediaStreamTrack.h: Now inheriting from MediaStreamTrackPrivateClient.
(WebCore::MediaStreamTrack::source): Calling method from MediaStreamTrackPrivate.
(WebCore::MediaStreamTrack::privateTrack):
* Modules/mediastream/VideoStreamTrack.cpp:
(WebCore::VideoStreamTrack::create):
(WebCore::VideoStreamTrack::VideoStreamTrack): Create method now receives a MediaStreamTrackPrivate as parameter.
* Modules/mediastream/VideoStreamTrack.h:
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Stores the private tracks in a Vector (property of
MediaStreamDescriptor class).
(WebCore::MediaStreamDescriptor::addTrack): Adds a private track to the tracks' Vector
(WebCore::MediaStreamDescriptor::removeTrack): Removes a private track from the tracks' Vector
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::numberOfAudioSources): Renamed from numberOfAudioStreams.
(WebCore::MediaStreamDescriptor::audioSources): Renamed from audioStreams.
(WebCore::MediaStreamDescriptor::numberOfVideoSources): Renamed from numberOfVideoStreams.
(WebCore::MediaStreamDescriptor::videoSources): Renamed from videoStreams.
(WebCore::MediaStreamDescriptor::numberOfAudioTracks): Returns the number of audio tracks this MediaStreamDescriptor
has.
(WebCore::MediaStreamDescriptor::audioTracks): Returns a audio track, given an index
(WebCore::MediaStreamDescriptor::numberOfVideoTracks): Returns the number of video tracks this MediaStreamDescriptor
has.
(WebCore::MediaStreamDescriptor::videoTracks): Returns a video track, given an index
* platform/mediastream/MediaStreamTrackPrivate.cpp: Added.
* platform/mediastream/MediaStreamTrackPrivate.h: Added.
2013-10-25 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with multiple regions
<https://webkit.org/b/123210>
Reviewed by David Hyatt.
I simplified the determination of the next region part of updateShapeAndSegmentsForCurrentLineInFlowThread's implementation
in order to make the code more straightforward. I also tried to avoid using regionAtBlockOffset(...) function where it's possible,
since it's not always that reliable, what I'll will report in a separate bug.
No new tests, covered by existing tests.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-25 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with the first lines
<https://bugs.webkit.org/show_bug.cgi?id=123275>
Reviewed by David Hyatt.
We have a complex condition in updateShapeAndSegmentsForCurrentLineInFlowThread, which is
adjusting the first line to the shape's top. This patch adds two boolean to make that clear.
No new tests, no behavior change.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-25 Antti Koivisto <antti@apple.com>
Faster way for simple line layout to check if text has fallback fonts
https://bugs.webkit.org/show_bug.cgi?id=123342
Reviewed by Andreas Kling.
Don't use RenderText::knownToHaveNoOverflowAndNoFallbackFonts as it is slow.
Simple text code path test already guarantees there is no overflow. Test for fallback
fonts explicitly.
* platform/graphics/SimpleFontData.h:
Make FINAL.
* rendering/RenderText.cpp:
* rendering/RenderText.h:
Remove knownToHaveNoOverflowAndNoFallbackFonts() as it has no clients.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
Check if all characters can be found from the primary font.
2013-10-25 Andreas Kling <akling@apple.com>
SVGResourcesCache::clientDestroyed() should take a RenderElement&.
<https://webkit.org/b/123339>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
SVGResourcesCache::clientLayoutChanged() should take a RenderElement&.
<https://webkit.org/b/123336>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
SVGResourcesCache::clientStyleChanged() should take a RenderElement&.
<https://webkit.org/b/123335>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
SVG: postApplyResource() should take a RenderElement&.
<https://webkit.org/b/123334>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Antti Koivisto <antti@apple.com>
REGRESSION(r157950): It made many tests assert on Windows, EFL, GTK
https://bugs.webkit.org/show_bug.cgi?id=123309
Reviewed by Andreas Kling.
Disable simple line layout on non-Mac plaforms for now.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-10-24 Andreas Kling <akling@apple.com>
SVG: applyResource() should take a RenderElement&.
<https://webkit.org/b/123286>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
RenderElement::styleWillChange() should pass newStyle as reference.
<https://webkit.org/b/123332>
When styleWillChange() is called, there is always a new style getting
set so there's no need to handle the null style case.
This flushed out a couple of unnecessary checks.
Reviewed by Antti Koivisto.
2013-10-25 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fixes.
https://bugs.webkit.org/show_bug.cgi?id=123269
Reviewed by Csaba Osztrogonác.
* platform/graphics/win/ImageCairoWin.cpp: Added new parameter to BitmapImage::draw() calls.
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
2013-10-25 Sergio Villar Senin <svillar@igalia.com>
Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=118620
Reviewed by Antti Koivisto.
Turns out that order is extremelly uncommon so using a Vector is
much less expensive. This also special-cases the much common case
of only having order of value 0 by using Vectors with just one
preallocated member.
Also added the performance test that shows a ~1% win when using a
vector instead of the HashSet.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
* rendering/RenderFlexibleBox.h:
2013-10-25 Sergio Villar Senin <svillar@igalia.com>
Non-SVG build broken after r157950
https://bugs.webkit.org/show_bug.cgi?id=123328
Reviewed by Xan Lopez.
The isSVGInlineTest() check should be done only if SVG is enabled.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-10-24 Jer Noble <jer.noble@apple.com>
[Mac] Add helper methods to convert CMTime <--> MediaTime
https://bugs.webkit.org/show_bug.cgi?id=123285
Reviewed by Eric Carlson.
Add utility methods to convert between CMTime (a rational time class) and MediaTime.
Once there, PlatformClockCM can now vend and accept MediaTimes for currentTime.
* platform/mac/MediaTimeMac.h:
* platform/mac/MediaTimeMac.cpp:
(WebCore::toMediaTime): Added conversion utility method.
(WebCore::toCMTime): Ditto.
* platform/mac/PlatformClockCM.h:
* platform/mac/PlatformClockCM.mm:
(PlatformClockCM::setCurrentMediaTime): Added.
(PlatformClockCM::currentMediaTime): Added.
* WebCore.xcodeproj/project.pbxproj: Add new files to project.
2013-10-24 Mark Rowe <mrowe@apple.com>
Remove references to OS X 10.7 from Xcode configuration settings.
Now that we're not building for OS X 10.7 they're no longer needed.
Reviewed by Anders Carlsson.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
2013-10-24 Antti Koivisto <antti@apple.com>
Cache line layout path
https://bugs.webkit.org/show_bug.cgi?id=123298
Reviewed by Sam Weinig.
Determining the path can be non-trivial. Avoid computing it repeatedly on relayouts.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::RenderBlock::invalidateLineLayoutPath):
(WebCore::RenderBlock::removeChild):
Invalidate the path when children change.
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::styleDidChange):
Invalidate the path when style changes.
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderBlockFlow::ensureLineBoxes):
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
Invalidate the path when text changes.
2013-10-24 Mark Rowe <mrowe@apple.com>
<rdar://problem/15312643> Prepare for the mysterious future.
Reviewed by David Kilzer.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
2013-10-24 Andreas Kling <akling@apple.com>
DocumentLoader::cachedResourceLoader() should return a reference.
<https://webkit.org/b/123303>
..and while we're at it, make DocumentLoader::m_cachedResourceLoader
a Ref, and have CachedResourceLoader::create return a PassRef.
Reviewed by Sam Weinig.
2013-10-24 Anders Carlsson <andersca@apple.com>
Stop bringing in the std namespace
https://bugs.webkit.org/show_bug.cgi?id=123273
Reviewed by Andreas Kling.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::startGrain):
(WebCore::AudioBufferSourceNode::totalPitchRate):
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::numberOfChannels):
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
(WebCore::AudioScheduledSourceNode::stop):
* Modules/webaudio/AudioSummingJunction.cpp:
* Modules/webaudio/DelayDSPKernel.cpp:
(WebCore::DelayDSPKernel::process):
* Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::offlineRender):
* Modules/webaudio/OscillatorNode.cpp:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::dopplerRate):
* Modules/webaudio/WaveShaperDSPKernel.cpp:
(WebCore::WaveShaperDSPKernel::processCurve):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
* Modules/websockets/WebSocket.cpp:
(WebCore::saturateAdd):
* Modules/websockets/WebSocketChannel.cpp:
* Modules/websockets/WebSocketFrame.cpp:
(WebCore::WebSocketFrame::parseFrame):
* accessibility/AccessibilityARIAGrid.cpp:
* accessibility/AccessibilityARIAGridCell.cpp:
* accessibility/AccessibilityARIAGridRow.cpp:
* accessibility/AccessibilityList.cpp:
* accessibility/AccessibilityListBox.cpp:
* accessibility/AccessibilityListBoxOption.cpp:
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityObject.cpp:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
* accessibility/AccessibilityTableCell.cpp:
* accessibility/AccessibilityTableColumn.cpp:
* accessibility/AccessibilityTableHeaderContainer.cpp:
* accessibility/AccessibilityTableRow.cpp:
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
* bindings/js/JSGeolocationCustom.cpp:
(WebCore::setTimeout):
(WebCore::setMaximumAge):
* bindings/js/ScriptController.cpp:
* bindings/js/SerializedScriptValue.cpp:
(WebCore::writeLittleEndian):
(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::readString):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::getFontFace):
* css/CSSGradientValue.cpp:
(WebCore::CSSRadialGradientValue::createGradient):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseColorParameters):
(WebCore::CSSParser::parseHSLParameters):
* css/CSSReflectValue.cpp:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyFontSize::applyValue):
* css/PropertySetCSSStyleDeclaration.cpp:
* css/SVGCSSParser.cpp:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getLayeredShorthandValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::viewportPercentageValue):
* dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
* dom/ContainerNode.cpp:
* dom/Document.cpp:
(WebCore::Document::minimumLayoutDelay):
* dom/Node.cpp:
(WebCore::Node::compareDocumentPosition):
* dom/Range.cpp:
(WebCore::Range::toString):
(WebCore::Range::textRects):
(WebCore::Range::textQuads):
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::scheduleAnimation):
* dom/StyledElement.cpp:
(WebCore::StyledElement::makePresentationAttributeCacheKey):
* dom/Text.cpp:
* dom/ViewportArguments.cpp:
(WebCore::clampLengthValue):
(WebCore::clampScaleValue):
(WebCore::ViewportArguments::resolve):
(WebCore::computeMinimumScaleFactorForContentContained):
(WebCore::restrictMinimumScaleFactorToViewportSize):
* editing/AlternativeTextController.cpp:
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
* editing/Editor.cpp:
(WebCore::Editor::setComposition):
(WebCore::Editor::compositionRange):
* editing/EditorCommand.cpp:
(WebCore::verticalScrollDistance):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
(WebCore::CharacterIterator::string):
(WebCore::SearchBuffer::SearchBuffer):
(WebCore::SearchBuffer::append):
(WebCore::SearchBuffer::prependContext):
(WebCore::SearchBuffer::search):
* editing/VisibleUnits.cpp:
(WebCore::startOfParagraph):
* editing/htmlediting.cpp:
* editing/markup.cpp:
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::didReceiveResponse):
(WebCore::FileReaderLoader::didReceiveData):
* history/BackForwardList.cpp:
(WebCore::BackForwardList::backListWithLimit):
(WebCore::BackForwardList::forwardListWithLimit):
* history/PageCache.cpp:
(WebCore::PageCache::setCapacity):
* html/BaseDateAndTimeInputType.cpp:
* html/FTPDirectoryDocument.cpp:
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::getRegion):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseAttribute):
(WebCore::parseColorStringWithCrazyLegacyRules):
* html/HTMLFormControlElement.cpp:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::getTextFieldValues):
* html/HTMLImageElement.cpp:
* html/HTMLInputElement.cpp:
* html/HTMLMapElement.cpp:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::textTrackAddCue):
(WebCore::HTMLMediaElement::textTrackRemoveCue):
(WebCore::HTMLMediaElement::rewind):
(WebCore::HTMLMediaElement::seek):
(WebCore::HTMLMediaElement::duration):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
(WebCore::HTMLSelectElement::updateListBoxSelection):
* html/HTMLSourceElement.cpp:
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::colSpan):
(WebCore::HTMLTableCellElement::rowSpan):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::parseAttribute):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionStart):
(WebCore::HTMLTextFormControlElement::setSelectionEnd):
(WebCore::HTMLTextFormControlElement::select):
(WebCore::HTMLTextFormControlElement::setSelectionRange):
* html/HTMLTrackElement.cpp:
* html/ImageDocument.cpp:
(WebCore::ImageDocument::scale):
* html/InputType.cpp:
(WebCore::InputType::valueAsDouble):
* html/MediaController.cpp:
(MediaController::duration):
(MediaController::currentTime):
(MediaController::setCurrentTime):
(MediaController::updateReadyState):
* html/NumberInputType.cpp:
(WebCore::NumberInputType::setValueAsDouble):
(WebCore::NumberInputType::setValueAsDecimal):
(WebCore::NumberInputType::createStepRange):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
* html/SearchInputType.cpp:
(WebCore::SearchInputType::startSearchEventTimer):
* html/StepRange.cpp:
(WebCore::StepRange::clampValue):
(WebCore::StepRange::parseStep):
* html/TimeRanges.cpp:
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
(WebCore::adjustBubblePosition):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::normalizeRect):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateIndexArrayConservative):
(WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlRewindButtonElement::defaultEventHandler):
* html/shadow/MediaControlsApple.cpp:
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint):
* inspector/ContentSearchUtils.cpp:
* inspector/DOMEditor.cpp:
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::diff):
* inspector/InjectedScriptHost.cpp:
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::incrementProgress):
* loader/cache/CachedImage.cpp:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect):
* page/EventHandler.cpp:
(WebCore::MaximumDurationTracker::~MaximumDurationTracker):
* page/FrameTree.cpp:
* page/FrameView.cpp:
(WebCore::FrameView::adjustedDeferredRepaintDelay):
(WebCore::FrameView::autoSizeIfEnabled):
* page/PrintContext.cpp:
(WebCore::PrintContext::computeAutomaticScaleFactor):
* page/SpatialNavigation.cpp:
(WebCore::entryAndExitPointsForDirection):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilterOperations):
(WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
* platform/graphics/FloatRect.cpp:
(WebCore::FloatRect::FloatRect):
(WebCore::FloatRect::intersect):
(WebCore::FloatRect::uniteEvenIfEmpty):
(WebCore::FloatRect::extend):
(WebCore::FloatRect::fitToPoints):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
(WebCore::GlyphPageTreeNode::getChild):
* platform/graphics/IntRect.cpp:
(WebCore::IntRect::intersect):
(WebCore::IntRect::unite):
(WebCore::IntRect::uniteIfNonZero):
* platform/graphics/LayoutRect.cpp:
(WebCore::LayoutRect::intersect):
(WebCore::LayoutRect::unite):
(WebCore::LayoutRect::uniteIfNonZero):
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::platformApplyGeneric):
(WebCore::FEMorphology::platformApplySoftware):
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
* platform/text/TextCodecICU.cpp:
* rendering/LineWidth.cpp:
(WebCore::LineWidth::fitBelowFloats):
(WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::availableLogicalWidthForLine):
(WebCore::RenderBlock::availableLogicalWidthForContent):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::computePreferredLogicalWidths):
(WebCore::RenderFieldset::layoutSpecialExcludedChild):
(WebCore::RenderFieldset::paintBoxDecorations):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::updateLogicalWidth):
(WebCore::RenderFlowThread::addForcedRegionBreak):
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layOutAxis):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
* rendering/RenderTableCell.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::selectionHeight):
(WebCore::RootInlineBox::selectionHeightAdjustedForPrecedingBlock):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::layout):
* rendering/style/RenderStyle.h:
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::imageSize):
* style/StyleFontSizeFunctions.cpp:
(WebCore::Style::fontSizeForKeyword):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::setCurrentTime):
2013-10-24 Andreas Kling <akling@apple.com>
Uncomplicate some of SVGTextRunRenderingContext.
<https://webkit.org/b/123294>
This class was weird about a few things, so I've taken these steps
to clear things up:
- FINAL and OVERRIDE all the things.
- Constructor now takes a RenderObject&.
- renderer() now returns a RenderObject&.
- drawSVGGlyphs() no longer takes a TextRun.
- glyphDataForCharacter() no longer takes a TextRun.
To expand on the last two, there was also some awkward hoop-jumping
where we'd go through the TextRun passed by argument to find its
rendering context, which was really just |this| all along.
Reviewed by Antti Koivisto.
2013-10-24 Roger Fong <roger_fong@apple.com>
Add texture level dependent size checks to textureImage2D calls.
https://bugs.webkit.org/show_bug.cgi?id=123290
<rdar://problem/15201382>
Reviewed by Dean Jackson
Test covered by WebGL Conformance suite 1.0.2 test, textures/texture-size-limit.html.
There are different size limits when calling textureImage2D on different texture levels.
We should be throwing an error if our texture size exceeds these limits.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncParameters):
2013-10-24 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[MediaStream API] allow a stream source to be shared
https://bugs.webkit.org/show_bug.cgi?id=121954
Reviewed by Eric Carlson.
Now, the MediaStreamSource don't know about the MediaStream that owns it,
since there can be more than one MediaStream that has it as source for some track.
MediaStreamTrack classes now have observers registered, in case there are more than
one MediaStream owning that track
No new tests, no change in functionality.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream): Adding the MediaStream as an observer for each track it owns.
(WebCore::MediaStream::addTrack): Now adding the MediaStream as an observer the new added track
and adding the source to the MediaStreamDescriptor.
(WebCore::MediaStream::removeTrack): Instead of removing the source right away, we first check if
there isn't any other track using that source, if not we remove the source.
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::addRemoteSource): MediaStreamSource has no information about the MediaStream
that uses it, so now we don't set the stream in the source anymore.
(WebCore::MediaStream::removeRemoteSource): There can be more than on track using the source. So we
get each track that is using the source and then remove it and fire the ended event.
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::addObserver):
(WebCore::MediaStreamTrack::removeObserver):
(WebCore::MediaStreamTrack::trackDidEnd): Does not get the client from the MediaStreamDescriptor, it now
notify each of its observers that the track ended.
* Modules/mediastream/MediaStreamTrack.h: Adding Observer class.
* platform/mediastream/MediaStreamDescriptor.cpp: Destructor now does nothing. Previously it was setting
each MediaStreamSource's descriptor to null.
(WebCore::MediaStreamDescriptor::removeSource): Not setting the stream in source anymore.
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Ditto.
(WebCore::MediaStreamDescriptor::setEnded): Not setting the state of the source to Ended
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::~MediaStreamDescriptor):
* platform/mediastream/MediaStreamSource.cpp: Removing references to MediaStream object
(WebCore::MediaStreamSource::MediaStreamSource):
(WebCore::MediaStreamSource::reset):
* platform/mediastream/MediaStreamSource.h:
2013-10-24 Daniel Bates <dabates@apple.com>
Crash in WebCore::NavigationScheduler::startTimer()
https://bugs.webkit.org/show_bug.cgi?id=123288
<rdar://problem/14055644>
Reviewed by Alexey Proskuryakov.
Currently NavigationScheduler::startTimer() synchronously notifies the client
before the Web Inspector of a scheduled redirect. If a client cancels this
redirect then NavigationScheduler::m_redirect will become null and we'll
subsequently crash when informing the Web Inspector of this formerly scheduled
redirect. Instead, NavigationScheduler::startTimer() should notify the Web
Inspector before it notifies the client of a scheduled redirect.
As a side benefit of this change, the Web Inspector is notified of a scheduled
redirect before being notified of it being canceled when a client chooses to cancel
a scheduled redirect.
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::startTimer):
2013-10-24 Antti Koivisto <antti@apple.com>
Try to fix build without CSS_SHAPES.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-10-24 Antti Koivisto <antti@apple.com>
Simple line layout
https://bugs.webkit.org/show_bug.cgi?id=122458
Reviewed by Darin Adler.
Line box based inline layout is powerful but also rather slow and memory intensive. Simple line layout
is a compact alternative data structure and fast code path to cover common cases without requiring line
boxes.
This patch handles a case single left-aligned text renderer inside flow with no floats. Even this very basic
case is sufficiently common to handle up to 25% of all text lines on some popular new sites. The decision
which path to use is made per block flow (paragraph).
Simple line layout aims to produce pixel-exact rendering result when compared to the line box layout.
The goal is to handle everything that requires line level access in cases that allow use of simple lines.
This is not quite the case yet. For example selections and outline painting are not supported. In these
cases we seamlessly switch to the line boxes.
The simple line data structure currently uses 12 bytes per line. Lineboxes take ~160 bytes minimum per line.
Laying out the lines is also several times faster as is iterating over them.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Position.cpp:
(WebCore::Position::upstream):
(WebCore::Position::downstream):
(WebCore::Position::getInlineBoxAndOffset):
Creating positions within a simple line flow causes switch to line boxes.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
TextIterator traverses line boxes if available. In case simple line case we need to replicate the
same results (for compatibility but especially to avoid changing test results). This is done here
by just traversing the string without actually using the layout.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
Select the layout path to use.
(WebCore::RenderBlockFlow::deleteLines):
(WebCore::RenderBlockFlow::hitTestInlineChildren):
(WebCore::RenderBlockFlow::adjustForBorderFit):
(WebCore::RenderBlockFlow::firstLineBaseline):
(WebCore::RenderBlockFlow::inlineBlockBaseline):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::clearTruncation):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::hasLines):
(WebCore::RenderBlockFlow::layoutSimpleLines):
Do simple layout.
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderBlockFlow::ensureLineBoxes):
This function switches from simple lines to line boxes. The switching can be done outside normal layout.
This is used to cover some cases that are not yet supported by simple lines (like selections).
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::simpleLines):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::layoutLineBoxes):
Rename the line box layout function.
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
* rendering/RenderText.cpp:
(WebCore::RenderText::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteRectsForRange):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis):
(WebCore::RenderText::absoluteQuads):
(WebCore::RenderText::absoluteQuadsForRange):
(WebCore::RenderText::positionForPoint):
(WebCore::RenderText::knownToHaveNoOverflowAndNoFallbackFonts):
(WebCore::RenderText::setSelectionState):
(WebCore::RenderText::setTextWithOffset):
(WebCore::RenderText::ensureLineBoxes):
(WebCore::RenderText::simpleLines):
(WebCore::RenderText::linesBoundingBox):
(WebCore::RenderText::linesVisualOverflowBoundingBox):
(WebCore::RenderText::selectionRectForRepaint):
(WebCore::RenderText::caretMinOffset):
(WebCore::RenderText::caretMaxOffset):
(WebCore::RenderText::countRenderedCharacterOffsetsUntil):
(WebCore::RenderText::containsRenderedCharacterOffset):
(WebCore::RenderText::containsCaretOffset):
(WebCore::RenderText::hasRenderedText):
* rendering/RenderText.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::writeSimpleLine):
(WebCore::write):
* rendering/SimpleLineLayout.cpp: Added.
(WebCore::SimpleLineLayout::canUseFor):
This check for the cases supported by the simple line layout path.
(WebCore::SimpleLineLayout::isWhitespace):
(WebCore::SimpleLineLayout::skipWhitespaces):
(WebCore::SimpleLineLayout::textWidth):
(WebCore::SimpleLineLayout::createLines):
The main layout functions that breaks text to lines. It only handles the cases allowed by
SimpleLineLayout::canUseFor. What it handles it aims to break exactly as line box layout does.
* rendering/SimpleLineLayout.h: Added.
* rendering/SimpleLineLayoutFunctions.cpp: Added.
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):
(WebCore::SimpleLineLayout::computeTextBoundingBox):
* rendering/SimpleLineLayoutFunctions.h: Added.
(WebCore::SimpleLineLayout::computeFlowHeight):
(WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
(WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
(WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
(WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
(WebCore::SimpleLineLayout::containsTextCaretOffset):
(WebCore::SimpleLineLayout::isTextRendered):
(WebCore::SimpleLineLayout::lineHeightFromFlow):
Support functions called from RenderBlockFlow and RenderText. They are equivalent to
similar line box functions.
(WebCore::SimpleLineLayout::baselineFromFlow):
* rendering/SimpleLineLayoutResolver.h: Added.
(WebCore::SimpleLineLayout::Resolver::Line::Line):
(WebCore::SimpleLineLayout::Resolver::Line::rect):
(WebCore::SimpleLineLayout::Resolver::Line::baseline):
(WebCore::SimpleLineLayout::Resolver::Line::text):
(WebCore::SimpleLineLayout::Resolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator++):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator--):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator==):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator!=):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator*):
Lazy iterator for deriving line metrics. This keeps the line data structure small as
we don't need to keep easily derived values around.
(WebCore::SimpleLineLayout::Resolver::Resolver):
(WebCore::SimpleLineLayout::Resolver::size):
(WebCore::SimpleLineLayout::Resolver::begin):
(WebCore::SimpleLineLayout::Resolver::end):
(WebCore::SimpleLineLayout::Resolver::last):
(WebCore::SimpleLineLayout::Resolver::operator[]):
2013-10-24 Myles C. Maxfield <mmaxfield@apple.com>
Gaps between underlines in adjacent underlined text runs
https://bugs.webkit.org/show_bug.cgi?id=123236
Reviewed by Simon Fraser and Darin Adler.
There are two pieces to this change. The first piece is in
InlineTextBox::paint(). We were putting floating-point
extents into a LayoutSize, which simply uses ints (for now),
and then immediately converting this back to a FloatSize.
Instead, we should be using floats throughout all of
this code.
In addition, inside GraphicsContext::drawLineForText(), we are
rounding the underline to pixel boundaries so that it appears
very crisp on the screen. However, we should round once after
performing computations, rather than rounding twice and then
performing computations on the rounded numbers.
Test: fast/css3-text/css3-text-decoration/no-gap-between-two-rounded-textboxes.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText): Change rounding mode
to perform computations before rounding
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Don't convert to a LayoutSize
just to convert to a FloatSize
2013-10-24 Andreas Kling <akling@apple.com>
SVGRenderingContext should wrap a RenderElement.
<https://webkit.org/b/123283>
The SVG rendering context class is never used with text renderers
so we can have it wrap a RenderElement for tighter code.
Also renamed SVGRenderingContext::m_object to m_renderer.
Reviewed by Antti Koivisto.
2013-10-24 Santosh Mahto <santosh.ma@samsung.com>
[contenteditable] Content after non-editable element disappears when merging lines using backspace
https://bugs.webkit.org/show_bug.cgi?id=122748
Reviewed by Ryosuke Niwa.
In case of paragraph merging after deletion if second paragraph
contains non-editable element, then content after the non-editable
element(including non-editable element) will be removed while the
content before the element will be merged with the first paragraph.
This happens becasue endOfParagraphToMove calculation in merging function
stop at editing boundary so endOfParagraphToMove becomes position just
before non-editable content.
With this patch now endOfParagraphToMove is calculated by skipping
over the non-editable element.
Test: editing/deleting/merge-paragraph-contatining-noneditable.html
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs): use CanSkipOverEditingBoundary
condition while calculating endOfParagraphToMove.
2013-10-24 Antoine Quint <graouts@apple.com>
Web Inspector: Inspector doesn't show webkitTransitionEnd events in the timeline
https://bugs.webkit.org/show_bug.cgi?id=123263
Reviewed by Timothy Hatcher.
A legacy event type is only set on an event in EventTarget::fireEventListeners(Event*)
which is called after we used to call InspectorInstrumentation::willDispatchEvent(), the method
that would ultimately yield the creation of a TimelineRecord for the event in the Web Inspector
frontend, and as a result we would try to dispatch an event with an unprefixed event type to
the frontend, which wouldn't even happen because most likely it wouldn't have listeners for this
unprefixed type.
We now move the call to InspectorInstrumentation::willDispatchEvent() in
EventTarget::fireEventListeners(Event*, EventTargetData*, EventListenerVector&) such that the
correct event type and list of listeners is used to determine what event to dispatch to the frontend.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
Remove calls to InspectorInstrumentation::willDispatchEvent() and InspectorInstrumentation::didDispatchEvent().
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
Add call to InspectorInstrumentation::willDispatchEvent() before we go through each listener and
call InspectorInstrumentation::willHandleEvent(). Additionally, we refactor some code since we're
getting references to the ScriptExecutionContext and Document upfront now.
2013-10-24 Andreas Kling <akling@apple.com>
SVG: RenderElement-ize intersectRepaintRectWithResources().
<https://webkit.org/b/123278>
SVGRenderSupport::intersectRepaintRectWithResources() is only ever
called with non-text renderers so make it take RenderElement&.
Had to tweak RenderSVGResource::resourceBoundingBox() to take the
renderer by reference.
Reviewed by Antti Koivisto.
2013-10-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoints in sourceURL named scripts do not work
https://bugs.webkit.org/show_bug.cgi?id=123231
Reviewed by Timothy Hatcher.
Remember a Script's sourceURL and sourceMappingURL. When setting a
breakpoint by URL, check it against the sourceURL or original URL.
If a script had a sourceURL that would have been the only URL sent
to the frontend, so that receives priority.
Test: inspector-protocol/debugger/setBreakpointByUrl-sourceURL.html
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::didParseSource):
* inspector/InspectorDebuggerAgent.h:
* inspector/ScriptDebugListener.h:
2013-10-23 Alexey Proskuryakov <ap@apple.com>
Add CryptoKey base class and bindings
https://bugs.webkit.org/show_bug.cgi?id=123216
Reviewed by Sam Weinig.
* crypto/CryptoKey.idl: Added.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
Process the IDL.
* WebCore.xcodeproj/project.pbxproj: Added files.
* bindings/js/JSCryptoKeyCustom.cpp: Added.
(WebCore::JSCryptoKey::algorithm): Use a visitor to build algorithm dictionary
for the key.
* crypto/CryptoAlgorithmDescriptionBuilder.cpp: Added.
* crypto/CryptoAlgorithmDescriptionBuilder.h: Added.
An interface for a visitor we'll use to expose CrytoKey.algorithm in bindings,
and possibly also for storage serialization. Not complete yet, we'll need support
for a few more simple types, and less trivially, for nested algorithms.
* bindings/js/JSCryptoAlgorithmBuilder.cpp: Added.
* bindings/js/JSCryptoAlgorithmBuilder.h: Added.
An implementation that builds an algorithm description dictionary for JS bindings.
* crypto/CryptoKey.cpp: Added.
(WebCore::CryptoKey::~CryptoKey):
(WebCore::CryptoKey::buildAlgorithmDescription):
* crypto/CryptoKey.h: Added.
Added an almost empty implementation. Some of the functions that are currently
marked as pure virtual will likely be implemented in this base class.
2013-10-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r157916.
http://trac.webkit.org/changeset/157916
https://bugs.webkit.org/show_bug.cgi?id=123274
Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
by ap on #webkit).
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderHashTraits::emptyValue):
(WebCore::RenderFlexibleBox::OrderHashTraits::constructDeletedValue):
(WebCore::RenderFlexibleBox::OrderHashTraits::isDeletedValue):
(WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
* rendering/RenderFlexibleBox.h:
2013-10-24 Zan Dobersek <zdobersek@igalia.com>
Comment in ScopedEventQueue::dispatchEvent is unnecessarily verbose
https://bugs.webkit.org/show_bug.cgi?id=123252
Reviewed by Darin Adler.
Shorten the comment about the crash avoidance in ScopedEventQueue::dispatchEvent due to
the calling convention in C++ is left unspecified. The problem was already fixed in r157219
and later adjusted in r157401, but the comment could have been shorter and simpler in both cases.
* dom/ScopedEventQueue.cpp:
(WebCore::ScopedEventQueue::dispatchEvent):
2013-10-24 Alex Christensen <achristensen@webkit.org>
Removed unused ThreadSafeCoordinatedSurface and CertificateInfoCurl files.
https://bugs.webkit.org/show_bug.cgi?id=123246
Reviewed by Noam Rosenthal.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Removed references to ThreadSafeCoordinatedSurface and CertificateInfoCurl.
* platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp: Removed.
* platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.h: Removed.
* platform/network/curl/CertificateInfoCurl.cpp: Removed.
2013-10-24 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Removed Qt workaround.
https://bugs.webkit.org/show_bug.cgi?id=123258
Reviewed by Csaba Osztrogonác.
No change of functionality, no new tests needed.
!$defines case can be removed, because Qt and Android aren't in WebKit trunk,
all ports (Mac,EFL,GTK,Windows) call this script with --defines option now
* css/make-css-file-arrays.pl:
2013-10-24 Antti Koivisto <antti@apple.com>
Remove a stray space.
Not reviewed.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
2013-10-24 Antti Koivisto <antti@apple.com>
Element iterator functions should take reference
https://bugs.webkit.org/show_bug.cgi?id=123267
Reviewed by Andreas Kling.
The argument has to be non-null.
2013-10-24 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Build break with latest EFL 1.8 libraries.
https://bugs.webkit.org/show_bug.cgi?id=123245
Reviewed by Gyuyoung Kim.
After fixed build break on EFL 1.8 at r138326, EFL libraries are changed
Eo typedef and splitted header files which contain version macro.
* platform/Widget.h: Changed Eo typedef.
* platform/efl/EflScreenUtilities.h: Ditto.
* platform/graphics/Image.h: Ditto.
2013-10-24 Andreas Kling <akling@apple.com>
RenderSVGResource: Pass RenderElement to fill/strokePaintingResource.
<https://webkit.org/b/123242>
We never pass text renderers to these functions, so make them take
RenderElement instead.
Reviewed by Anders Carlsson.
2013-10-24 Carlos Garcia Campos <cgarcia@igalia.com>
[GObject bindings] Make EventTarget interface introspectable
https://bugs.webkit.org/show_bug.cgi?id=77835
Reviewed by Gustavo Noronha Silva.
Add webkit_dom_event_target_add_event_listener_with_closure and
webkit_dom_event_target_remove_event_listener_with_closure to be
used by GObject instrospection bindings. Instead of receving a
GCallback, which makes the function not introspectable, they
receive a GClosure.
* bindings/gobject/GObjectEventListener.cpp:
(WebCore::GObjectEventListener::GObjectEventListener):
(WebCore::GObjectEventListener::~GObjectEventListener):
(WebCore::GObjectEventListener::gobjectDestroyed):
(WebCore::GObjectEventListener::handleEvent):
(WebCore::GObjectEventListener::operator==):
* bindings/gobject/GObjectEventListener.h:
(WebCore::GObjectEventListener::addEventListener):
(WebCore::GObjectEventListener::removeEventListener):
* bindings/gobject/WebKitDOMEventTarget.cpp:
(webkit_dom_event_target_dispatch_event):
(webkit_dom_event_target_add_event_listener):
(webkit_dom_event_target_remove_event_listener):
(webkit_dom_event_target_add_event_listener_with_closure):
(webkit_dom_event_target_remove_event_listener_with_closure):
* bindings/gobject/WebKitDOMEventTarget.h:
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateEventTargetIface):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(webkit_dom_test_event_target_dispatch_event):
(webkit_dom_test_event_target_add_event_listener):
(webkit_dom_test_event_target_remove_event_listener):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(webkit_dom_test_node_dispatch_event):
(webkit_dom_test_node_add_event_listener):
(webkit_dom_test_node_remove_event_listener):
2013-10-14 Sergio Villar Senin <svillar@igalia.com>
Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=118620
Reviewed by Antti Koivisto.
Turns out that order is extremelly uncommon so using a Vector is
much less expensive. This also special-cases the much common case
of only having order of value 0 by using Vectors with just one
preallocated member.
Also added the performance test that shows a ~1% win when using a
vector instead of the HashSet.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
* rendering/RenderFlexibleBox.h:
2013-10-23 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix since r157823.
FilterOperation::getOperationType() is renamed FilterOperation::type().
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawUsingCustomFilter):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::BitmapTextureGL::applyFilters):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::injectCachedCustomFilterPrograms):
2013-10-23 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix on CMake based ports when CMAKE_BUILD_TYPE is not given.
When CMAKE_BUILD_TYPE is empty, FIND command will be failed.
* CMakeLists.txt:
2013-10-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Integrate css3-images image-orientation with existing EXIF support
https://bugs.webkit.org/show_bug.cgi?id=91566
Reviewed by Beth Dakin.
Original patch by David Barr(davidbarr@chromium.org).
This patch passes an information of image orientation into existing EXIF support functions
(draw() functions of image classes mainly). We need to let the functions to know the information
in order to meet the image-orientation requirement.
Spec: http://dev.w3.org/csswg/css-images-3/#the-image-orientation
The css3-images module specification is at last call.
Test: fast/css/image-orientation/image-orientation.html
Image orientation test is to check if incorrect rotation value can be fixed with correct orientation.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
* page/Frame.cpp:
(WebCore::Frame::nodeImage):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::updateSize):
(WebCore::BitmapImage::sizeRespectingOrientation):
(WebCore::BitmapImage::drawPattern):
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/GeneratedImage.h:
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::draw):
* platform/graphics/GradientImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
* platform/graphics/blackberry/ImageBlackBerry.cpp:
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/BitmapImageCG.cpp:
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/win/ImageCGWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::BufferedImage::draw):
* platform/graphics/wince/ImageWinCE.cpp:
(WebCore::BitmapImage::draw):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::styleDidChange):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::draw):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::draw):
* svg/graphics/SVGImageForContainer.h:
2013-10-23 Andreas Kling <akling@apple.com>
Tighten typing in SVGInlineTextBox a bit.
<https://webkit.org/b/123238>
Use RenderBoxModelObject& instead of generic RenderObject* in some
places where it happens as a natural consequence of keeping the
original return type from InlineBox::parent()->renderer().
Reviewed by Anders Carlsson.
2013-10-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Introduce RENDER_OBJECT_TYPE_CASTS to replace manual toFoo() in child render object
https://bugs.webkit.org/show_bug.cgi?id=123150
Reviewed by Andreas Kling.
As a step to let toFoo use TYPE_CASTS_BASE, toRenderFoo() can use it for child render object.
So, this patch introduces RENDER_OBJECT_TYPE_CASTS based on the TYPE_CASTS_BASE. This will
generate plenty more helper functions for render object type cast.
Some unnecessary type casts are fixed by this change.
No new tests, no behavior changes.
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.h:
* rendering/RenderButton.h:
* rendering/RenderCounter.h:
* rendering/RenderElement.h:
(WebCore::RenderElement::generatingElement):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.h:
* rendering/RenderFlexibleBox.h:
* rendering/RenderFlowThread.h:
* rendering/RenderFrame.h:
* rendering/RenderFrameSet.h:
* rendering/RenderFullScreen.h:
* rendering/RenderHTMLCanvas.h:
* rendering/RenderIFrame.h:
* rendering/RenderImage.h:
* rendering/RenderInline.h:
* rendering/RenderLayerModelObject.h:
* rendering/RenderLineBreak.h:
* rendering/RenderListBox.h:
* rendering/RenderListItem.h:
* rendering/RenderMedia.h:
* rendering/RenderMenuList.h:
* rendering/RenderMeter.h:
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.h:
* rendering/RenderObject.h:
* rendering/RenderProgress.h:
* rendering/RenderQuote.h:
* rendering/RenderRegion.h:
* rendering/RenderReplaced.h:
* rendering/RenderRubyRun.h:
* rendering/RenderScrollbarPart.h:
* rendering/RenderSearchField.h:
* rendering/RenderSlider.h:
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderTable.h:
* rendering/RenderTableCaption.h:
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.h:
* rendering/RenderText.h:
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.h:
* rendering/RenderWidget.h:
* rendering/mathml/RenderMathMLBlock.h:
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGPath.h:
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
(WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGText.h:
* rendering/svg/RenderSVGTextPath.h:
* rendering/svg/RenderSVGViewportContainer.h:
* rendering/svg/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::paint):
2013-10-23 Myles C. Maxfield <mmaxfield@apple.com>
Include misspelling dot gap width when centering misspelling dots
https://bugs.webkit.org/show_bug.cgi?id=122365
Reviewed by Simon Fraser.
When calculating where to place the misspelling dots, we find the
maximum number of full dots that can fit under the misspelled word,
and then center a run of that many dots. However, when we're
centering the run, we are only considering the size of the extra
fractional dot that we cut off. However, the dot image has a "gap"
of transparent pixels (which visually provide tracking for the dots)
which visually appears to be empty space. We should take this gap
space into consideration when centering the run of dots. We also
should make sure that our dots start on integral pixel boundaries
because otherwise we can't set the phase of the dot run properly.
Test: editing/spelling/centering-misspelling-dots.html
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawLineForDocumentMarker):
2013-10-23 Andreas Kling <akling@apple.com>
SVGFilterBuilder should not be ref-counted.
<https://webkit.org/b/123222>
These objects are singly-owned and do not need ref counting.
Reviewed by Anders Carlsson.
2013-10-23 Brady Eidson <beidson@apple.com>
Remove unused IDBBackingStoreLevelDB default constructor.
Rubberstamped by Anders Carlsson.
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
2013-10-23 Alex Christensen <achristensen@webkit.org>
Added Texture Mapper and Coordinated Graphics to Windows build for WinCairo.
https://bugs.webkit.org/show_bug.cgi?id=123215
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Added source files for Texture Mapper to Windows build.
* WebCore.vcxproj/WebCoreCairo.props:
Added Texture Mapper include directories for WinCairo.
2013-10-23 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding mock class to test RTCDataChannelHandler
https://bugs.webkit.org/show_bug.cgi?id=123205
Reviewed by Eric Carlson.
Now RTCPeerConnectionHandler-datachannel LayouTest can run properly.
Also updated the expected file, removing the reliable property check (which was removed in the spec)
Existing tests updated.
* CMakeLists.txt:
* platform/mediastream/RTCDataChannelHandlerClient.h:
* platform/mock/RTCDataChannelHandlerMock.cpp: Added.
* platform/mock/RTCDataChannelHandlerMock.h: Added.
* platform/mock/RTCNotifiersMock.cpp:
(WebCore::RemoteDataChannelNotifier::RemoteDataChannelNotifier):
(WebCore::RemoteDataChannelNotifier::fire):
(WebCore::DataChannelStateNotifier::DataChannelStateNotifier):
(WebCore::DataChannelStateNotifier::fire):
* platform/mock/RTCNotifiersMock.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createDataChannel):
2013-10-23 Andreas Kling <akling@apple.com>
Clock should not be ref-counted.
<https://webkit.org/b/123217>
The Clock object is only ever owned by the MediaController,
so remove the ref counting and store it in a std::unique_ptr.
Also slapped the Clock subclasses with FINAL and OVERRIDE.
Reviewed by Anders Carlsson.
2013-10-23 Mark Lam <mark.lam@apple.com>
Fix assertion in DatabaseManager::detailsForNameAndOrigin() to be iOS friendly.
https://bugs.webkit.org/show_bug.cgi?id=123218.
Reviewed by Joseph Pecoraro.
No new tests.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::detailsForNameAndOrigin):
2013-10-23 Alex Christensen <achristensen@webkit.org>
Separated USE(CA) from USE(ACCELERATED_COMPOSITING) to prepare WinCairo for accelerated compositing.
https://bugs.webkit.org/show_bug.cgi?id=123214
Reviewed by Brent Fulgham.
* platform/graphics/PlatformLayer.h:
Added TextureMapperPlatformLayer PlatformLayer declaration for WinCairo.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::createWindow):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
Added USE(CA) where necessary to compile WinCairo with accelerated compositing.
2013-10-23 Myles C. Maxfield <mmaxfield@apple.com>
Antialias underlines if they're not axis-aligned
https://bugs.webkit.org/show_bug.cgi?id=123004
Reviewed by Simon Fraser.
In order to make underlines crisp, GraphicsContext:drawLineForText
modifies the bounds of the underline rect in order to make the rect
device-pixel-aligned, and then turns off antialiasing when drawing
the line. This makes sense when the underline is axis-aligned, but
doesn't when the rect is rotated or skewed. Therefore, we should
only opt-in to this behavior if the underline we're about to draw
is axis-aligned. This requires figuring out whether or not the
current transformation is axis-aligned every time
GraphicsContext::drawLineForText is called, which will incur a small
performance hit. However, this is justified by underlines looking
much better (antialiased) when the context is rotated or skewed.
Tests: svg/custom/foreign-object-skew.html
svg/zoom/page/zoom-foreignObject.html
svg/zoom/text/zoom-foreignObject.html:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText):
2013-10-23 Mark Lam <mark.lam@apple.com>
Re-instate ProposedDatabases needed by detailsForNameAndOrigin().
https://bugs.webkit.org/show_bug.cgi?id=123131.
Reviewed by Geoffrey Garen.
Test: storage/websql/open-database-expand-quota.html
If a webpage tries to create a database that exceeds the database size
quota for that security origin, the WebKit1 quota request mechanism
uses detailsForNameAndOrigin() to get the requested size of the database
(that the webpage is attempting to open) in order to determine whether
to increase the quota or not.
Previously, detailsForNameAndOrigin() relies on the ProposedDatabase
mechanism to provide this size information. This change re-instates the
ProposedDatabase mechanism so that WebKit1 client code that relies on
this behavior will continue to work.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase):
(WebCore::DatabaseManager::ProposedDatabase::~ProposedDatabase):
(WebCore::DatabaseManager::DatabaseManager):
(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
* Modules/webdatabase/DatabaseManager.h:
(WebCore::DatabaseManager::ProposedDatabase::origin):
(WebCore::DatabaseManager::ProposedDatabase::details):
2013-10-23 Tim Horton <timothy_horton@apple.com>
[cg] Fix the capitalization of kCGImageSourceSkipMetaData (-> Metadata)
https://bugs.webkit.org/show_bug.cgi?id=122918
Reviewed by Anders Carlsson.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::imageSourceOptions):
The capitalization of kCGImageSourceSkipMetaData changed to
kCGImageSourceSkipMetadata in Mountain Lion.
2013-10-23 Brady Eidson <beidson@apple.com>
Make IDBDatabaseBackendLevelDB.cpp be cross platform
https://bugs.webkit.org/show_bug.cgi?id=123027
Attentively reviewed by Dean Jackson.
Move it out of the indexeddb/leveldb directory, and rename it to IDBDatabaseBackendImpl.
Project files:
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp.
* Modules/indexeddb/IDBDatabaseBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h.
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore::IDBDatabaseBackendInterface::isIDBDatabaseBackendImpl): Add to support a required cast in LevelDB code.
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
(WebCore::IDBFactoryBackendLevelDB::open):
(WebCore::IDBFactoryBackendLevelDB::maybeCreateTransactionBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
* Modules/indexeddb/leveldb/IDBLevelDBCoding.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::create):
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::scheduleVersionChangeOperation):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
2013-10-23 Daniel Bates <dabates@apple.com>
[iOS] Upstream more ARMv7s bits
https://bugs.webkit.org/show_bug.cgi?id=123052
Reviewed by Joseph Pecoraro.
Define exported symbol file for armv7s and arm64.
* Configurations/WebCore.xcconfig:
2013-10-23 Krzysztof Wolanski <k.wolanski@samsung.com>
[GTK] accessibility/self-referencing-aria-labelledby.html is failing
https://bugs.webkit.org/show_bug.cgi?id=121594
Reviewed by Mario Sanchez Prada.
According to http://www.w3.org/TR/REC-html40/struct/objects.html#edef-IMG
description of image element should be determined by alt attribute, then
if it is empty by title attributte.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetDescription):
2013-10-15 Andreas Kling <akling@apple.com>
Tighten animation-driven restyle to operate on Element only.
<https://webkit.org/b/122820>
Text nodes are never directly animated, so we can tighten this code
to work on Element only. This happens naturally since the code was
already working with RenderElement everywhere.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Even more PassRef<RenderStyle>!
<https://webkit.org/b/123147>
Convert more of the WebCore code to use PassRef for RenderStyle
in places where they are known to be non-null.
Re-landing this without region styling since that caused some
assertions last time.
Reviewed by Antti Koivisto.
2013-10-22 Zoltan Horvath <zoltan@webkit.org>
Refactor LineBreaker::nextSegmentBreak, add BreakingContext that holds all its state
https://bugs.webkit.org/show_bug.cgi?id=123038
Reviewed by David Hyatt.
I followed Levi's logic on Blink's nextSegmentBreak refactoring (https://chromiumcodereview.appspot.com/25054004).
I mostly did the same changes, but the code is too diverged at this point to just apply that patch on our trunk. The patch
introduces BreakingContext as a separate class. I added new methods for each condition, which were originally located in
nextSegmentBreak. I also removed the goto-s from the code. All the new methods are inline in order to avoid introducing any
performance regression. The change makes the code so much cleaner and understandable.
This change would be the first step of the nextSegmentBreak refactoring, I wanted to keep things in place in RenderBlockLineLayout.cpp
for now, but I'm planning to separate BreakingContext into a new file and do additional changes to make things nicer. I'm tracking
the entire progress under http://webkit.org/b/121261 meta bug.
No new tests, covered by existing tests.
- I updated 1 expected result, because there was a 1 pixel difference on the result, which I believe comes from a rounding situation.
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::currentObject):
(WebCore::BreakingContext::lineBreak):
(WebCore::BreakingContext::lineBreakRef):
(WebCore::BreakingContext::lineWidth):
(WebCore::BreakingContext::atEnd):
(WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
(WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::increment):
(WebCore::BreakingContext::handleBR):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleFloat):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::nextCharacter):
(WebCore::BreakingContext::handleText):
(WebCore::textBeginsWithBreakablePosition):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
(WebCore::BreakingContext::handleEndOfLine):
(WebCore::LineBreaker::nextSegmentBreak):
2013-10-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r157826.
http://trac.webkit.org/changeset/157826
https://bugs.webkit.org/show_bug.cgi?id=123197
Caused some regions tests to assert (Requested by smfr on
#webkit).
* dom/Document.cpp:
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::styleForRenderer):
* dom/Element.h:
* dom/ElementRareData.h:
(WebCore::ElementRareData::setComputedStyle):
(WebCore::ElementRareData::resetComputedStyle):
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::textWithDirection):
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::updateAnimations):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::animate):
* page/animation/CompositeAnimation.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/RenderElement.h:
(WebCore::RenderElement::setStyleInternal):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setRegionObjectsRegionStyle):
(WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
(WebCore::RenderRegion::computeStyleInRegion):
(WebCore::RenderRegion::computeChildrenStyleInRegion):
(WebCore::RenderRegion::setObjectStyleInRegion):
* rendering/RenderRegion.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::resolveLocal):
2013-10-22 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Remove HAVE_GLX macro
https://bugs.webkit.org/show_bug.cgi?id=123191
Reviewed by Gyuyoung Kim.
Since r138313, HAVE(GLX) was replaced to USE(GLX) except in GraphicsSurfaceToken.h.
* platform/graphics/surfaces/GraphicsSurfaceToken.h:
Replace HAVE(GLX) to USE(GLX)
2013-10-22 Mark Lam <mark.lam@apple.com>
Gardening: fix broken build on Windows.
https://bugs.webkit.org/show_bug.cgi?id=123174.
Not reviewed.
No new tests.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-10-22 Brady Eidson <beidson@apple.com>
Get rid of IDBObjectStoreBackendLevelDB
https://bugs.webkit.org/show_bug.cgi?id=123174
Reviewed by Tim Horton.
This file was kind of a dumping ground.
Its contents can be merged into IDBBackingStoreInterface and a new IDBIndexWriter class.
Also took the opportunity to do a little bit of RefPtr<> and pointer-vs-reference cleanup.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp: Removed.
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h: Removed.
* Modules/indexeddb/IDBIndexWriter.cpp: Added.
(WebCore::IDBIndexWriter::IDBIndexWriter):
(WebCore::IDBIndexWriter::writeIndexKeys):
(WebCore::IDBIndexWriter::verifyIndexKeys):
(WebCore::IDBIndexWriter::addingKeyAllowed):
* Modules/indexeddb/IDBIndexWriter.h: Added.
(WebCore::IDBIndexWriter::create):
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBMetadata.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
(WebCore::IDBBackingStoreLevelDB::generateKey):
(WebCore::IDBBackingStoreLevelDB::updateKeyGenerator):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
(WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::PutOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
2013-10-22 Dean Jackson <dino@apple.com>
[WebGL] Implement a software rendering option on Mac
https://bugs.webkit.org/show_bug.cgi?id=123177
Reviewed by Tim Horton.
Implement a way to force software OpenGL rendering
for WebGL, via a Setting/Preference.
No new tests. We intentionally hide the capabilities of
the renderer from the content, so you can't test for
this setting. However, manual inspection is pretty
obvious. Just go to a page with a complex shader
such as https://www.shadertoy.com/view/lss3WS.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create): If we're forcing software
rendering, mark the context attributes as such.
* page/Settings.in: New setting key.
* platform/graphics/GraphicsContext3D.h: New flag in Attributes.
(WebCore::GraphicsContext3D::Attributes::Attributes):
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D): Slight update to the
algorithm that sets a pixel format. If we're forcing software rendering,
obviously we never want to create an accelerated pixel format.
* platform/graphics/filters/CustomFilterGlobalContext.cpp:
(WebCore::CustomFilterGlobalContext::prepareContextIfNeeded): Set the attribute
here before trying to create the context.
* platform/graphics/filters/CustomFilterGlobalContext.h: Add a forceSoftwareRendering
flag to prepareContextIfNeeded.
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect): Check the Setting before creating a custom
filter context.
2013-10-22 Anders Carlsson <andersca@apple.com>
Revert r157445 since it broke certificates on Mac.
<rdar://problem/15246926&15254017&15269117>
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceErrorBase.h:
* platform/network/ResourceResponseBase.h:
* platform/network/cf/CertificateInfoCFNet.cpp: Removed.
* platform/network/cf/ResourceResponse.h:
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::setCertificateChain):
(WebCore::ResourceResponse::certificateChain):
* platform/network/soup/ResourceError.h:
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::tlsErrors):
(WebCore::ResourceError::setTLSErrors):
(WebCore::ResourceError::certificate):
(WebCore::ResourceError::setCertificate):
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::tlsError):
(WebCore::ResourceError::platformCopy):
(WebCore::ResourceError::platformCompare):
* platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::soupMessageCertificate):
(WebCore::ResourceResponse::setSoupMessageCertificate):
(WebCore::ResourceResponse::soupMessageTLSErrors):
(WebCore::ResourceResponse::setSoupMessageTLSErrors):
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::toSoupMessage):
(WebCore::ResourceResponse::updateFromSoupMessage):
2013-10-22 Jer Noble <jer.noble@apple.com>
[Media] Refactor supportsType() factory method to take a parameters object.
https://bugs.webkit.org/show_bug.cgi?id=122489
Reviewed by Eric Carlson.
In order to support adding new conditional properties with which to decide
what MediaPlayerPrivate subclass to create, replace the two versions of the
supportsType() factory method with a single one taking a parameters object.
At the same time, add a 'isMediaSource' parameter to that object, allowing
MediaPlayerPrivate subclasses which support the same type and codecs but
which do not both support MediaSource to be distinguised.
* platform/graphics/MediaPlayer.cpp:
(WebCore::bestMediaEngineForSupportParameters): Renamed from
bestMediaEngineForTypeAndCodecs.
(WebCore::MediaPlayer::nextBestMediaEngine): Added convenience function.
(WebCore::MediaPlayer::loadWithNextMediaEngine): Call nextBestMediaEngine()
(WebCore::MediaPlayer::supportsType): Pass parameter object.
(WebCore::MediaPlayer::networkStateChanged): Call nextBestMediaEngine().
* platform/graphics/MediaPlayer.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::supportsType): Handle parameter object.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Remove extraneous
extendedSupportsType method.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Handle parameter object.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::supportsType): Ditto.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Remove extraneous
extendedSupportsType method.
(WebCore::MediaPlayerPrivateQTKit::supportsType): Handle parameter object.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsType): Ditto.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
* platform/graphics/wince/MediaPlayerPrivateWinCE.h:
2013-10-22 Andreas Kling <akling@apple.com>
Merge SVGRenderBlock::styleWillChange() into styleDidChange().
<https://webkit.org/b/123181>
I meant to do this one in r157787, but better late than never.
Reviewed by Geoffrey Garen.
2013-10-22 Sam Weinig <sam@webkit.org>
CTTE: Modernize RenderBlock a bit
https://bugs.webkit.org/show_bug.cgi?id=123162
Reviewed by Andreas Kling.
Start threading references through RenderBlock. While we
are here, do some selective modernization as well.
2013-10-22 Andreas Kling <akling@apple.com>
Even more PassRef<RenderStyle>!
<https://webkit.org/b/123147>
Convert the remaining WebCore code to use PassRef for RenderStyle
wherever they are known to be non-null.
Reviewed by Antti Koivisto.
2013-10-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r157819.
http://trac.webkit.org/changeset/157819
https://bugs.webkit.org/show_bug.cgi?id=123180
Broke 32-bit builds (Requested by smfr on #webkit).
* Configurations/WebCore.xcconfig:
2013-10-22 Antti Koivisto <antti@apple.com>
Rename deleteLineBoxTree to deleteLines
https://bugs.webkit.org/show_bug.cgi?id=123176
Reviewed by Andreas Kling.
RenderBlock::deleteLineBoxTree -> RenderBlock::deleteLines
RenderInline::deleteLineBoxTree -> RenderInline::deleteLines
2013-10-22 Tim Horton <timothy_horton@apple.com>
{ClipPathOperation, FilterOperation}::getOperationType() should not include 'get'
https://bugs.webkit.org/show_bug.cgi?id=123172
Reviewed by Simon Fraser.
No new tests, just a rename.
"get" in WebCore tends to mean that the function has out arguments; these have no arguments.
Rename FilterOperation::getOperationType() to FilterOperation::type().
I noticed that ClipPathOperation had the same mistake, so I fixed it there too.
Removed long and useless list of files.
2013-10-22 Samuel White <samuel_white@apple.com>
AX: Add paramAttrs to fetch start and end text markers in a given rect.
https://bugs.webkit.org/show_bug.cgi?id=122164
Reviewed by Chris Fleizach.
Added ability to fetch end and start text markers inside a given bounds. This gives ScreenReaders
like VoiceOver a way to retrieve the text markers for a specified column of page text.
Test: platform/mac/accessibility/text-marker-for-bounds.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::mainFrame):
(WebCore::AccessibilityObject::topDocument):
(WebCore::AccessibilityObject::visiblePositionForBounds):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper screenToContents:]):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2013-10-22 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Match adjustLogicalLineTopAndLogicalHeightIfNeeded's implementation with Blink's
https://bugs.webkit.org/show_bug.cgi?id=123033
Reviewed by David Hyatt.
In Blink I made this function in a bit different way. This change modifies it
to be identical, which helps a lot in the future cross-merging patches.
No new tests, covered by existing texts.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded):
2013-10-22 Daniel Bates <dabates@apple.com>
[iOS] Upstream more ARMv7s bits
https://bugs.webkit.org/show_bug.cgi?id=123052
Reviewed by Joseph Pecoraro.
* Configurations/WebCore.xcconfig:
2013-10-22 Simon Fraser <simon.fraser@apple.com>
Try to fix Mavericks build; use <> for framework include.
* page/CaptionUserPreferencesMediaAF.cpp:
2013-10-22 Tim Horton <timothy_horton@apple.com>
GammaFilterOperation seems to be dead code
https://bugs.webkit.org/show_bug.cgi?id=123173
Reviewed by Simon Fraser.
* platform/graphics/filters/FilterOperation.cpp:
* platform/graphics/filters/FilterOperation.h:
Remove dead code.
2013-10-22 Antti Koivisto <antti@apple.com>
Rename some line box functions to be just about lines
https://bugs.webkit.org/show_bug.cgi?id=123168
Reviewed by Dave Hyatt.
firstLineBoxBaseline -> firstLineBaseline
hasInlineBoxChildren -> hasLines
Also use hasLines in a bunch of places where firstLineBox() was used.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
Also use hasRenderedText() instead of firstTextBox()
* rendering/RenderFullScreen.cpp:
Fix namespace.
2013-10-22 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding Mock class to test RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=122848
Reviewed by Eric Carlson.
The following tests can be run:
RTCPeerConnection-createAnswer.html
RTCPeerConnection-createOffer.html
RTCPeerConnection-ice.html
RTCPeerConnection-localDescription.html
RTCPeerConnection-remoteDescription.html
RTCPeerConnection-state.html
Tests that require a MediaStream object, by invoking getUserMedia,
are not ready to run yet.
No new tests needed.
* CMakeLists.txt:
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(WebCore::createHandler):
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
* platform/mock/RTCNotifiersMock.cpp: Added.
* platform/mock/RTCNotifiersMock.h: Added.
* platform/mock/RTCPeerConnectionHandlerMock.cpp: Added.
* platform/mock/RTCPeerConnectionHandlerMock.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
* platform/mock/TimerEventBasedMock.h: Added.
* testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::enableMockRTCPeerConnectionHandler):
* testing/Internals.h:
2013-10-22 Zan Dobersek <zdobersek@igalia.com>
WebCore::fillWithEmptyClients adopts new empty clients before leaking their pointers
https://bugs.webkit.org/show_bug.cgi?id=122945
Reviewed by Anders Carlsson.
* loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients): Store the static empty clients as NeverDestroyed, rather than
adopting the pointer of each heap-allocated object and then immediately leaking that pointer.
2013-10-22 Zan Dobersek <zdobersek@igalia.com>
Simplify HRTFDatabaseLoader's load map
https://bugs.webkit.org/show_bug.cgi?id=122944
Reviewed by Eric Carlson.
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::loaderMap): Return a reference to a NeverDestroyed HashMap that maps sample rates to loaders.
(WebCore::HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary):
(WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
* platform/audio/HRTFDatabaseLoader.h: Remove the LoaderMap type definition, the private singleton of that type
and the singleton's unused getter.
2013-10-22 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Support hardware accelerated filters
https://bugs.webkit.org/show_bug.cgi?id=123139
Reviewed by Anders Carlsson.
* WebCore.exp.in:
Export a variety of filter-related things.
* platform/graphics/ca/PlatformCAFilters.h:
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::setFilters):
* platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
(PlatformCAFilters::setFiltersOnLayer):
setFiltersOnLayer should take a PlatformLayer instead of a PlatformCALayer
as its argument, because it doesn't need a PlatformCALayer, and this way
we can share code with the RemoteLayerTreeHost, which only has PlatformLayers
and not PlatformCALayers.
2013-10-22 Brendan Long <b.long@cablelabs.com>
cue.text fails for some track element cues
https://bugs.webkit.org/show_bug.cgi?id=81123
Reviewed by Eric Carlson.
Test: media/track/track-long-captions-file.html
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseBytes): Use buffer when we don't have full lines.
(WebCore::WebVTTParser::fileFinished): Force file to finish parsing.
(WebCore::WebVTTParser::hasRequiredFileIdentifier): Simplify due to using String.
(WebCore::WebVTTParser::collectCueText): Don't automatically create cues when we run out of data.
(WebCore::WebVTTParser::collectNextLine): Use buffer.
* html/track/WebVTTParser.h: Add m_buffer and Finished state.
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::notifyFinished): Call m_parser->fileFinished() when done.
2013-10-22 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=123161
Reviewed by Brent Fulgham.
* rendering/RenderFlowThread.h: Move USE(ACCELERATED_COMPOSITING) guard to expose needed type.
2013-10-21 Brady Eidson <beidson@apple.com>
Add a cross-platform IDBRecordIdentifier
https://bugs.webkit.org/show_bug.cgi?id=123138
Reviewed by Andreas Kling.
Add the cross-platform header:
* Modules/indexeddb/IDBRecordIdentifier.h: Added.
(WebCore::IDBRecordIdentifier::create):
(WebCore::IDBRecordIdentifier::encodedPrimaryKey):
(WebCore::IDBRecordIdentifier::version):
(WebCore::IDBRecordIdentifier::reset):
(WebCore::IDBRecordIdentifier::IDBRecordIdentifier):
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:
Remove the old abstract and LevelDB classes:
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
Use the cross-platform one everywhere:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::PutOperation::perform):
2013-10-22 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Possible performance regression after r157567
https://bugs.webkit.org/show_bug.cgi?id=123016
Reviewed by Andreas Kling.
The revision 157567 http://trac.webkit.org/changeset/157567 may have regressed
Parser/html5-full-render by ~1.1% and Parser/html-parser by ~2%. These changes
try to optimize the initial patch, based on Andreas Kling's review.
The patch also adds a couple of refactorings that should make the code easier to read:
- the CSS Shapes functions are now wrapped in a single #if clause
- the CSS Shapes and CSS Regions pre-layout preparations are wrapped in a helper function
The RenderFlowThread::logicalWidthChangedInRegionsForBlock function is optimized by passing
it information about the state of the relayout children flag. If the flag is true already,
some of the steps are skipped.
Tests: no new tests.
* dom/Element.cpp:
(WebCore::Element::webkitGetRegionFlowRanges):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* rendering/RenderBlock.cpp:
(WebCore::shapeInfoRequiresRelayout):
(WebCore::RenderBlock::updateShapesBeforeBlockLayout):
(WebCore::RenderBlock::computeShapeSize):
(WebCore::RenderBlock::prepareShapesAndPaginationBeforeBlockLayout):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
(WebCore::RenderBlockFlow::ensureRareData):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
(WebCore::RenderElement::isRenderNamedFlowFragmentContainer):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
* rendering/RenderElement.h:
(WebCore::RenderElement::generatingElement):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
* rendering/RenderFlowThread.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* style/StyleResolveTree.cpp:
(WebCore::Style::elementInsideRegionNeedsRenderer):
2013-10-22 Andreas Kling <akling@apple.com>
CSSStyleSheet constructor functions should return PassRef.
<https://webkit.org/b/123156>
Make CSSStyleSheet::create*() return PassRef and tighten some call
sites that were using them. Most callers didn't need any tweaks to
take advantage of PassRef.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLFraction always has a MathMLInlineContainerElement.
<https://webkit.org/b/123154>
This renderer is never anonymous and always has a corresponding
MathMLInlineContainerElement. Overload element() with a tighter
return type.
Also marked the class FINAL and made most member functions private.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
FontGlyphs constructor functions should return PassRef.
<https://webkit.org/b/123159>
Made the two FontGlyphs creator functions return PassRef and tweaked
the FontGlyphsCache in Font.cpp to make more efficient use of it.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Fix some more code to use RenderElement instead of RenderObject.
<https://webkit.org/b/123149>
Using RenderElement where possible lets us skip the isRenderElement()
branch in RenderObject::style() and generates much tighter code.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Merge SVG renderers' styleWillChange() into styleDidChange().
<https://webkit.org/b/123108>
This work can just as well be done after setting the style.
Three more styleWillChange() overloads gone.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
CSSValueList constructor functions should return PassRef.
<https://webkit.org/b/123151>
These functions always return objects, and thus can return PassRef.
Also made CSSValueList::createFromParserValueList() take a reference
since that function is only ever called with a non-null value.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Avoid parent style ref churn in createTextRendererIfNeeded().
<https://webkit.org/b/123148>
There's no need to take a temporary ref on the parent's RenderStyle
while creating a text renderer. It's not going away, and the text
renderer is not going to participate in ownership afterwards.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Remove some unnecessary null checks in RenderElement::setStyle().
<https://webkit.org/b/123146>
After assigning the new style to RenderElement::m_style, we know that
it'll be non-null, so remove all the checking for this.
Reviewed by Antti Koivisto.
2013-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Introduce ACCESSIBILITY_OBJECT_TYPE_CASTS to replace manual toFoo() in accessibility child class
https://bugs.webkit.org/show_bug.cgi?id=123140
Reviewed by Andreas Kling.
As a step to let toFoo use TYPE_CASTS_BASE, DEFINE_TYPE_CASTS can be used for toFoo() in accessibility
child class. The DEFINE_TYPE_CASTS will generate plenty more helper functions for accessibility type cast.
No new tests, no behavior changes.
* accessibility/AccessibilityList.h:
* accessibility/AccessibilityMenuList.h:
* accessibility/AccessibilityMockObject.h:
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySVGRoot.h:
* accessibility/AccessibilityScrollView.h:
* accessibility/AccessibilitySpinButton.h:
* accessibility/AccessibilityTable.h:
2013-10-22 Brian Holt <brian.holt@samsung.com>
[GTK] Add WebKit2 API for TLS errors
https://bugs.webkit.org/show_bug.cgi?id=120160
Reviewed by Carlos Garcia Campos.
Added a new constructor for CertificateInfo under Soup.
* platform/network/CertificateInfo.h:
* platform/network/soup/CertificateInfoSoup.cpp:
(WebCore::CertificateInfo::CertificateInfo): New constructor using
GTlsCertificateFlags and GTlsCertificate.
2013-10-22 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Use RenderStyle::hasFlowFrom when needed
https://bugs.webkit.org/show_bug.cgi?id=122543
Reviewed by David Hyatt.
Rename RenderStyle::hasStyleRegion -> RenderStyle::hasFlowFrom.
Use RenderStyle::hasFlowFrom() helper function instead of directly
checking the value of RenderStyle::regionThread().
No change of functionality, covered by existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::contentToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::didAttachRenderers):
* dom/PseudoElement.h:
(WebCore::pseudoElementRendererIsNeeded):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
* rendering/style/RenderStyle.h:
2013-10-21 Brent Fulgham <bfulgham@apple.com>
[WIN] Properly support reverse animations without needing software fallback.
https://bugs.webkit.org/show_bug.cgi?id=85121
Reviewed by Dean Jackson.
Testing is provided by existing animation tests.
* platform/animation/TimingFunction.h:
(WebCore::CubicBezierTimingFunction::createReversed): Added.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::addAnimation): The early return when performing a reverse or
autoreverse animation is no longer needed.
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(toCAMediaTimingFunction): Use new reversed function.
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(toCACFTimingFunction): Ditto.
(PlatformCAAnimation::setTimingFunction): Pass 'reverse' flag.
(PlatformCAAnimation::setTimingFunctions): Ditto.
2013-10-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Use TYPE_CASTS_BASE for CSS_VALUE_TYPE_CASTS
https://bugs.webkit.org/show_bug.cgi?id=123126
Reviewed by Andreas Kling.
TYPE_CASTS_BASE was moved to common place to be used by all toFoo().
CSS_VALUE_TYPE_CASTS starts to use it for CSS child value. This change
generates plenty more helper functions for toCSSFooValue().
Additionally, this use support that toWebKitCSSFooValue, which couldn't
use CSS_VALUE_TYPE_CASTS macro.
No new tests, no behavior change.
* css/CSSAspectRatioValue.h:
* css/CSSBorderImageSliceValue.h:
* css/CSSCalculationValue.h:
* css/CSSCanvasValue.h:
* css/CSSCrossfadeValue.h:
* css/CSSCursorImageValue.h:
* css/CSSFilterImageValue.h:
* css/CSSFontFaceSrcValue.h:
* css/CSSFontFeatureValue.h:
* css/CSSFontValue.h:
* css/CSSFunctionValue.h:
* css/CSSGradientValue.h:
* css/CSSGridTemplateValue.h:
* css/CSSImageSetValue.h:
* css/CSSImageValue.h:
* css/CSSInheritedValue.h:
* css/CSSInitialValue.h:
* css/CSSLineBoxContainValue.h:
* css/CSSPrimitiveValue.h:
* css/CSSReflectValue.h:
* css/CSSShadowValue.h:
* css/CSSTimingFunctionValue.h:
* css/CSSUnicodeRangeValue.h:
* css/CSSValue.h:
* css/CSSValueList.h:
* css/CSSVariableValue.h:
* css/WebKitCSSArrayFunctionValue.h:
* css/WebKitCSSFilterValue.h:
* css/WebKitCSSMatFunctionValue.h:
* css/WebKitCSSMixFunctionValue.h:
* css/WebKitCSSSVGDocumentValue.h:
* css/WebKitCSSShaderValue.h:
2013-10-21 Joone Hur <joone.hur@intel.com>
Bad cast with toRenderBoxModelObject in RenderBlock::updateFirstLetter()
https://bugs.webkit.org/show_bug.cgi?id=123013
Reviewed by Andreas Kling.
No new tests because this was reported by Google ClusterFuzz.
https://codereview.chromium.org/25713009/
There is a case that toRenderBoxModelObject causes a crash in RenderBlock::updateFirstLetter()
due to bad cast, so we need to check whether the RenderObject is a RenderBoxModelObject
by running isBoxModelObject() before calling toRenderBoxModelObject.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
2013-10-21 Brady Eidson <beidson@apple.com>
Make IDBTransactionCoordinatorLevelDB cross platform
https://bugs.webkit.org/show_bug.cgi?id=123124
Enthusiastically reviewed by Tim Horton.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
Make more methods pure virtual in the interface:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
Update the name of the class, and use IDBTransactionBackendInterface instead of IDBTransactionBackendLeveDB:
* Modules/indexeddb/IDBTransactionCoordinator.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp.
(WebCore::IDBTransactionCoordinator::create):
(WebCore::IDBTransactionCoordinator::IDBTransactionCoordinator):
(WebCore::IDBTransactionCoordinator::~IDBTransactionCoordinator):
(WebCore::IDBTransactionCoordinator::didCreateTransaction):
(WebCore::IDBTransactionCoordinator::didStartTransaction):
(WebCore::IDBTransactionCoordinator::didFinishTransaction):
(WebCore::IDBTransactionCoordinator::isActive):
(WebCore::IDBTransactionCoordinator::processStartedTransactions):
(WebCore::doScopesOverlap):
(WebCore::IDBTransactionCoordinator::canRunTransaction):
* Modules/indexeddb/IDBTransactionCoordinator.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.h.
Update the name of the class elsewhere:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
(WebCore::IDBDatabaseBackendLevelDB::transactionCoordinator):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
2013-10-21 Daniel Bates <dabates@apple.com>
[iOS] Upstream JSGlobalObject::shouldInterruptScriptBeforeTimeout()
https://bugs.webkit.org/show_bug.cgi?id=123045
Reviewed by Joseph Pecoraro.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage): Added.
(WebCore::JSDOMWindowBase::shouldInterruptScript): Extracted comment and assertion
about null Page object into WebCore::shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage()
so that it can be shared by both this function and JSDOMWindowBase::shouldInterruptScriptBeforeTimeout().
(WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::shouldInterruptScriptBeforeTimeout): Added.
* bindings/js/JSWorkerGlobalScopeBase.h:
* loader/EmptyClients.h: Added isStopping(). We'll land the iOS chrome client implementation
in a subsequent patch.
* page/ChromeClient.h: Added isStopping().
2013-10-21 Anders Carlsson <andersca@apple.com>
Navigation policy callback not called when performing the same fragment navigation twice
https://bugs.webkit.org/show_bug.cgi?id=123121
<rdar://problem/15230466>
Reviewed by Beth Dakin.
There's code in PolicyChecker::checkNavigationPolicy that will call the decision function right away
if the requests are equal, without consulting any policy client. Because of this, make sure to empty out
the last checked request of the document loader when doing a fragment navigation.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
2013-10-21 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; unprotect the declaration of updateSleepDisabling();
* html/HTMLMediaElement.h:
2013-10-20 Mark Lam <mark.lam@apple.com>
Avoid JSC debugger overhead unless needed.
https://bugs.webkit.org/show_bug.cgi?id=123084.
Reviewed by Geoffrey Garen.
No new tests.
- If no breakpoints are set, we now avoid calling the debug hook callbacks.
- If no break on exception is set, we also avoid exception event debug callbacks.
- When we return from the ScriptDebugServer to the JSC::Debugger, we may no
longer call the debug hook callbacks if not needed. Hence, the m_currentCallFrame
pointer in the ScriptDebugServer may become stale. To avoid this issue, before
returning, the ScriptDebugServer will clear its m_currentCallFrame if
needsOpDebugCallbacks() is false.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::clearBreakpoints):
(WebCore::ScriptDebugServer::setPauseOnExceptionsState):
(WebCore::ScriptDebugServer::setPauseOnNextStatement):
(WebCore::ScriptDebugServer::breakProgram):
(WebCore::ScriptDebugServer::stepIntoStatement):
(WebCore::ScriptDebugServer::dispatchDidContinue):
(WebCore::ScriptDebugServer::exception):
(WebCore::ScriptDebugServer::didReachBreakpoint):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::reset):
2013-10-21 Myles C. Maxfield <mmaxfield@apple.com>
Grammar markers are not updated when switching between 1x and 2x
https://bugs.webkit.org/show_bug.cgi?id=122146
Reviewed by Dean Jackson.
When running editing/spelling/grammar-markers-hidpi.html, the 2x
grammar/spelling dot resources are cached. If you then run
editing/spelling/grammar-markers.html without tearing down WebKit,
it re-uses the 2x dots. The difference between the two tests is a call
to testRunner.setBackingScaleFactor().
We create a NSColor from an NSImage, and remember it in a static
variable. However, NSColor inspects the current graphics context to
determine which resolution to use, and then remembers that decision.
Therefore, we want to recreate the NSColor whenever the device pixel
ratio changes. This patch adds a new static function to GraphicsContext
which recreates this NSColor every time the ratio changes.
Tests: editing/spelling/grammar-markers.html
editing/spelling/inline_spelling_markers.html
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::makePattern):
(WebCore::GraphicsContext::drawLineForDocumentMarker):
2013-10-21 Simon Fraser <simon.fraser@apple.com>
Use pink layer borders for compositing layers with a contents layer
https://bugs.webkit.org/show_bug.cgi?id=123118
Reviewed by Dean Jackson.
With the existing layer border colors, it's not possible to distinguish an empty
layer from one with solid color, image or video contents. So use a pink color
for those. This makes it easier to diagnose bugs like 122784.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::getDebugBorderInfo):
2013-10-21 Jer Noble <jer.noble@apple.com>
Limit use of display sleep assertion when <video> element is off-screen.
https://bugs.webkit.org/show_bug.cgi?id=123041
Reviewed by Darin Adler.
Use page visibility changes to suspend and resume the use of sleep assertions in
HTMLMediaElement.
Page will propogate the page visibility change notifications to its Documents, which
will further propogate those notifications to registered elements. Upon receiving
these notifications, HTMLMediaElement will release or take a DisplaySleepDisabler
token if necessary.
Also, rename HTMLMediaElement's updateDisableSleep() to updateSleepDisabling() and wrap
the implementation in a PLATFORM(MAC) guard rather than at each call site.
* dom/Document.cpp:
(WebCore::Document::registerForVisibilityStateCallbacks): Added registration method.
(WebCore::Document::unregisterForVisibilityStateCallbacks): Added unregistration method.
(WebCore::Document::visibilityStateChanged): Call all registered clients.
* dom/Document.h:
* dom/Element.h:
(WebCore::Element::visibilityStateChanged): Added default virtual method to be overridden
by subclasses.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Register for the notification, and check the
current status of Document::hidden().
(WebCore::HTMLMediaElement::~HTMLMediaElement): Unregister for the notification.
(WebCore::HTMLMediaElement::visibilityStateChanged): Set m_displaySleepDisablingSuspended
and call updateSleepDisabling().
(WebCore::HTMLMediaElement::shouldDisableSleep): Add a check for m_displaySleepDisablingSuspended.
* html/HTMLMediaElement.h:
* page/Page.cpp:
(WebCore::Page::setVisibilityState): Pass to every child document.
Rename updateDisableSleep() -> updateSleepDisabling():
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::mediaPlayerRateChanged):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::stop):
2013-10-21 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
MediaStreamTrack now tracks its own state
https://bugs.webkit.org/show_bug.cgi?id=123025
Reviewed by Jer Noble.
The spec says that a MediaStreamSource can be shared by different tracks,
so a track must have its own state tracking, synchronizing with its MediaStreamSource when
the underlying MediaStreamSource changes the readyState.
In the old implementation if a user invoked the stop method, its readyState method was still
returning the MediaStreamSource state, which was wrong.
This also adds a setEnabled method, which can be used to set the state of a track when a
remote peer ends it, for instance.
No new tests needed.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState):
(WebCore::MediaStreamTrack::setState):
(WebCore::MediaStreamTrack::stopProducingData):
(WebCore::MediaStreamTrack::ended):
(WebCore::MediaStreamTrack::sourceStateChanged):
(WebCore::MediaStreamTrack::trackDidEnd):
* Modules/mediastream/MediaStreamTrack.h:
2013-10-21 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Clean up transaction logging
https://bugs.webkit.org/show_bug.cgi?id=123116
Reviewed by Anders Carlsson.
* WebCore.exp.in:
Export some TextStream functions.
2013-10-21 Brady Eidson <beidson@apple.com>
Transition most use of IDBBackingStoreLevelDB to IDBBackingStoreInterface
https://bugs.webkit.org/show_bug.cgi?id=123105
Reviewed by Anders Carlsson.
Export more required headers:
* WebCore.xcodeproj/project.pbxproj:
Flesh out many of the pure virtual methods on IDBBackingStoreInterface, as well as
the RecordIdentifier and Cursor classes:
* Modules/indexeddb/IDBBackingStoreInterface.h:
(WebCore::IDBBackingStoreInterface::RecordIdentifier::~RecordIdentifier):
(WebCore::IDBBackingStoreInterface::Cursor::~Cursor):
Use IDBBackingStoreInterface, IDBBackingStoreInterface::RecordIdentifier, and
IDBBackingStoreInterface::Cursor wherever possible:
* Modules/indexeddb/IDBFactoryBackendInterface.cpp:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::ObjectStoreKeyCursorImpl::clone):
(WebCore::ObjectStoreCursorImpl::clone):
(WebCore::IndexKeyCursorImpl::clone):
(WebCore::IndexCursorImpl::clone):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
(WebCore::IDBBackingStoreLevelDB::Transaction::Transaction):
(WebCore::IDBBackingStoreLevelDB::Transaction::begin):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
(WebCore::IDBBackingStoreLevelDB::RecordIdentifier::RecordIdentifier):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
(WebCore::IDBCursorBackendLevelDB::create):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::create):
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
(WebCore::IDBDatabaseBackendLevelDB::backingStore):
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
(WebCore::IDBDatabaseBackendLevelDB::createTransaction):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::createTransactionBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
(WebCore::IDBObjectStoreBackendLevelDB::makeIndexWriters):
(WebCore::IDBObjectStoreBackendLevelDB::generateKey):
(WebCore::IDBObjectStoreBackendLevelDB::updateKeyGenerator):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::create):
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::GetOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
2013-10-21 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes][CSS Regions] Don't apply shape-inside when we have multiple auto-height regions and the height is not resolved
https://bugs.webkit.org/show_bug.cgi?id=123103
Reviewed by David Hyatt.
When we have multiple regions with auto-height, the region's height is not resolved from other elements we can't apply the
the shape on the region. This patch prevents to apply the shape and fixes the behavior for these cases.
Test: fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-21 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Backing store should take contentsScale into account
https://bugs.webkit.org/show_bug.cgi?id=123106
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export FloatRect::scale.
2013-10-21 Andreas Kling <akling@apple.com>
RenderScrollbarPart doesn't need styleWillChange().
<https://webkit.org/b/123113>
We will call setInline(false) in styleDidChange(), there's no need
to override styleWillChange() just to do it twice.
Reviewed by Darin Adler.
2013-10-21 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] The layers from the flow thread should be collected under the regions' layers.
https://bugs.webkit.org/show_bug.cgi?id=120457
Reviewed by David Hyatt.
This patch is based on the work of Alexandru Chiculita at https://bugs.webkit.org/attachment.cgi?id=203872&action=review
The composited layers inside the named flow threads are collected as part of the regions (as children of the
GraphicsLayer of the layer that corresponds to the region (which is attached to the parent renderer of
RenderNameFlowFragment)).
When a region displays a layer that needs accelerated compositing we activate the accelerated compositing for
that region too (inside RenderLayerCompositor::computeRegionCompositingRequirements).
This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.
Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
the element that has the flow-from property. When a composited layer is needed for the region, it sits in it's
parent renderer, not in the region renderer (RenderNamedFlowFragment).
Tests: compositing/regions/crash-transform-inside-region.html
compositing/regions/floated-region-with-transformed-child.html
compositing/regions/move-layer-from-one-region-to-another.html
compositing/regions/propagate-region-box-shadow-border-padding-for-video.html
compositing/regions/propagate-region-box-shadow-border-padding.html
compositing/regions/region-as-layer-in-another-flowthread.html
compositing/regions/transform-transparent-positioned-video-inside-region.html
compositing/regions/transformed-layer-inside-transformed-layer.html
compositing/regions/z-index-update.html
compositing/regions/z-index.html
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateRenderFlowThreadLayersIfNeeded):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::propagateStyleToAnonymousChildren): Not for RenderFlowThreads, as they are updated
through the RenderView::styleDidChange function.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout): When the layout of the flow thread is over (including the 2 phase layout),
we update all the mappings between the layers inside the flow thread and the regions where those layers will be
painted.
(WebCore::RenderFlowThread::hasCompositingRegionDescendant): Whether any of the regions has a compositing descendant.
(WebCore::RenderFlowThread::getLayerListForRegion):
(WebCore::RenderFlowThread::regionForCompositedLayer):
(WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
(WebCore::RenderFlowThread::collectsGraphicsLayersUnderRegions):
(WebCore::RenderFlowThread::updateLayerToRegionMappings): Triggers an update of the layers if a layer has moved
from a region to another since the last update.
(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
* rendering/RenderFlowThread.h:
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::pushRenderFlowThread):
* rendering/RenderGeometryMap.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::enclosingFlowThreadAncestor):
(WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions):
(WebCore::RenderLayer::hitTestList):
(WebCore::RenderLayer::calculateLayerBounds): When we calculate the bounds of the RenderView, we ignore those
flow threads that collect the graphics layers under the regions.
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyNormalFlowList):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldClipCompositedBounds): Not if it's a flow thread that collects the graphics
layers under the regions
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Now adjusts the ancestorCompositingBounds for the FlowThread.
(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): Make sure that the region propagates
its borders, paddings, outlines or box-shadows to layers inside it.
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Now calls computeRegionCompositingRequirements.
(WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Do not iterate the RenderFlowThread directly if
we are going to collect the composited layers as part of regions.
(WebCore::RenderLayerCompositor::rebuildRegionCompositingLayerTree):
(WebCore::RenderLayerCompositor::canBeComposited): CSS Regions flow threads do not need to be composited as we
use composited RenderRegions to render the background of the RenderFlowThread.
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason): If it's a container of a css region.
* rendering/RenderLayerCompositor.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.h:
(WebCore::RenderNamedFlowFragment::layerOwner): When the content inside the region requires the region to have a
layer, the layer will be created on the region's parent renderer instead. This method returns that renderer
holding the layer. The return value may be null.
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::nextRendererForNode):
(WebCore::RenderNamedFlowThread::previousRendererForNode):
(WebCore::RenderNamedFlowThread::addFlowChild):
(WebCore::RenderNamedFlowThread::removeFlowChild):
(WebCore::RenderNamedFlowThread::collectsGraphicsLayersUnderRegions):
* rendering/RenderNamedFlowThread.h: m_flowThreadChildList is now allocated through an OwnPtr to keep the render
arena under the size limit.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderRegion.h:
(WebCore::toRenderRegion):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
* WebCore.exp.in: WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions
2013-10-21 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Fixing mediastream debug build
https://bugs.webkit.org/show_bug.cgi?id=123104
Reviewed by Andreas Kling.
No new tests needed.
* Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
(WebCore::RTCDTMFToneChangeEvent::create):
2013-10-21 Andreas Kling <akling@apple.com>
Merge RenderListMarker::styleWillChange() into styleDidChange().
<https://webkit.org/b/123098>
If the marker's list-style-type or list-style-position changed, we
need to dirty the layout. Move this logic to styleDidChange() so we
can get rid of one styleWillChange() overload.
Reviewed by Antti Koivisto.
2013-10-21 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Fix WHITESPACE issues in the CSS grammar.
https://bugs.webkit.org/show_bug.cgi?id=123082
Reviewed by Andreas Kling.
This is a port of Rune Lillesveen's patch from https://codereview.chromium.org/25607005
Fix WHITESPACE issues in the CSS grammar.
A single WHITESPACE token consumes consecutive spaces, but does not consume
spaces separated by comments. That means S* and S+ in CSS grammars need to
accept multiple WHITESPACE tokens. Additionally, white spaces are not
mandatory to separate an @-symbol and the rest of the prelude.
Use space non-terminal instead of WHITESPACE for S+ in calc expressions.
Use maybe_space non-terminal instead of WHITESPACE for S* after @-webkit-filter
and @-webkit-region.
Tests: fast/css/calc-comments-allowed.html
fast/regions/webkit-region-syntax-space.html
* css/CSSGrammar.y.in:
2013-10-21 Anton Obzhirov <a.obzhirov@samsung.com>
[ATK] Use atk_object_notify_state_change instead of manually emitting signals
https://bugs.webkit.org/show_bug.cgi?id=122968
Reviewed by Mario Sanchez Prada.
Refactor emitting "state-change" event to use atk_object_notify_state_change
instead of using g_signal_emit_by_name.
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::notifyChildrenSelectionChange):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleDetach):
* editing/atk/FrameSelectionAtk.cpp:
(WebCore::maybeEmitTextFocusChange):
2013-10-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Make TYPE_CASTS_BASE more flexible
https://bugs.webkit.org/show_bug.cgi?id=122951
Reviewed by Andreas Kling.
TYPE_CASTS_BASE is being used by node|element type casts. However, it is difficult
to be used by other type casts. For instance, CSSValue, Accessibility and so on.
This patch modifies TYPE_CASTS_BASE which can support other type casts.
Besides TYPE_CASTS_BASE body is moved from node.h to Assertions.h.
No new tests, no behavior changes.
* dom/Document.h:
* dom/Node.h:
2013-10-21 Santosh Mahto <santosh.ma@samsung.com>
ASSERTION FAILED: !style->propertyIsImportant(propertyID) in WebCore::setTextDecorationProperty
https://bugs.webkit.org/show_bug.cgi?id=122097
Reviewed by Ryosuke Niwa.
When remove format command is called we pushdown the ancestor style
down to its children. Currently applying inline style to iframe
while pushing down style which causes iframe to be reinserted in tree and
triggres again subframe loading which repeats everytime and finally
crash happens. So we should avoid applying inline style to iframe
element as it doesnot reflect in its content while pushing down style
on it.
And ASSERT call has been removed from setTextDecoration property as
the scenario is perfectly valid case.
Test: editing/execCommand/remove-format-textdecoration-in-iframe.html
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Return if
element is iframe.
* editing/EditingStyle.cpp:
(WebCore::StyleChange::setTextDecorationProperty): Remove ASSERT.
2013-10-20 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Antti Koivisto.
- Move m_lineBoxes to RenderBlockFlow.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerTextIfTruncated):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::isSelfCollapsingBlock):
(WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet):
(WebCore::RenderBlock::paintContents):
(WebCore::blockDirectionOffset):
(WebCore::inlineDirectionOffset):
(WebCore::RenderBlock::inlineSelectionGaps):
(WebCore::RenderBlock::hitTestContents):
(WebCore::positionForPointRespectingEditingBoundaries):
(WebCore::RenderBlock::positionForPointWithInlineChildren):
(WebCore::RenderBlock::firstLineBoxBaseline):
(WebCore::RenderBlock::inlineBlockBaseline):
(WebCore::RenderBlock::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlock::addFocusRingRects):
(WebCore::RenderBlock::showLineTreeAndMark):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::addOverflowFromInlineChildren):
(WebCore::RenderBlock::hasInlineBoxChildren):
(WebCore::RenderBlock::paintInlineChildren):
(WebCore::RenderBlock::hitTestInlineChildren):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::RenderBlockFlow):
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::deleteLineBoxTree):
(WebCore::RenderBlockFlow::hitTestInlineChildren):
(WebCore::RenderBlockFlow::adjustForBorderFit):
(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):
(WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
(WebCore::RenderBlockFlow::firstLineBoxBaseline):
(WebCore::RenderBlockFlow::inlineBlockBaseline):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForBox):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::showLineTreeAndMark):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::lineBoxes):
(WebCore::RenderBlockFlow::firstLineBox):
(WebCore::RenderBlockFlow::lastLineBox):
(WebCore::RenderBlockFlow::firstRootBox):
(WebCore::RenderBlockFlow::lastRootBox):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):
2013-10-20 Andreas Kling <akling@apple.com>
Avoid unnecessary vector copy in AnimationController event dispatch.
<https://webkit.org/b/122994>
Use Vector's move constructor instead of making a copy of the pending
events queue and then clearing it.
Reviewed by Simon Fraser.
2013-10-19 Brady Eidson <beidson@apple.com>
Add abstract IDBBackingStoreInterface, use it to get IDBDatabaseBackendLevelDB closer to going cross-platform
https://bugs.webkit.org/show_bug.cgi?id=123074
Reviewed by Andreas Kling.
* Modules/indexeddb/IDBBackingStoreInterface.h: Added.
(WebCore::IDBBackingStoreInterface::~IDBBackingStoreInterface):
(WebCore::IDBBackingStoreInterface::Transaction::~Transaction):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStoreLevelDB::createObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
(WebCore::IDBBackingStoreLevelDB::getRecord):
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::clearObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::createIndex):
(WebCore::IDBBackingStoreLevelDB::deleteIndex):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
(WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
(WebCore::IDBBackingStoreLevelDB::Transaction::reset):
(WebCore::IDBBackingStoreLevelDB::Transaction::levelDBTransactionFrom):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::deleteFunction):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
(WebCore::IDBTransactionBackendLevelDB::backingStoreTransaction):
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:
2013-10-20 Andreas Kling <akling@apple.com>
Use PassRef for StyleSheetContents.
<https://webkit.org/b/123083>
Let functions that return newly-constructed StyleSheetContents
objects vend PassRef<StyleSheetContents> instead of PassRefPtr.
Updated functions that take StyleSheetContents in arguments
accordingly. And CSSStyleSheet now has a Ref internally. Woo!
Reviewed by Antti Koivisto.
2013-10-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Removing "unused parameter" compiling warnings from WebKit2 and WebCore
https://bugs.webkit.org/show_bug.cgi?id=123075
Reviewed by Andreas Kling.
No new tests needed.
* Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
(WebCore::RTCDTMFToneChangeEvent::create):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(lineAtPositionForAtkBoundary):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
2013-10-19 Andreas Kling <akling@apple.com>
Use PassRef for constructing StyleRules.
<https://webkit.org/b/123072>
Let functions that return newly-constructed StyleRuleFoo objects
vend PassRef<StyleRuleFoo> instead of PassRefPtr.
Since StyleRuleBase::copy() has to return something, we can't rely
on ASSERT_NOT_REACHED() + return nullptr anymore, so I've replaced
those with CRASH(). No call sites actually handled null anyway.
Reviewed by Sam Weinig.
2013-10-19 Jer Noble <jer.noble@apple.com>
Unreviewed roll out of r157695; broke Mac builds.
* Configurations/FeatureDefines.xcconfig:
2013-10-07 Jer Noble <jer.noble@apple.com>
[MSE] [Mac] Enable MediaSource on the Mac
https://bugs.webkit.org/show_bug.cgi?id=122484
Reviewed by Darin Adler.
Enable ENABLE_MEDIA_SOURCE.
* Configurations/FeatureDefines.xcconfig:
2013-10-19 Sam Weinig <sam@webkit.org>
CTTE: Tighten up type usage around InputType::innerTextElement()
https://bugs.webkit.org/show_bug.cgi?id=123078
Reviewed by Anders Carlsson.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement):
* html/HTMLElement.h:
(WebCore::HTMLElement::isTextControlInnerTextElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::innerTextElement):
* html/HTMLInputElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::innerTextElement):
* html/HTMLTextAreaElement.h:
* html/HTMLTextFormControlElement.cpp:
(WebCore::hasVisibleTextArea):
(WebCore::HTMLTextFormControlElement::selection):
(WebCore::HTMLTextFormControlElement::innerTextValue):
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
* html/HTMLTextFormControlElement.h:
* html/InputType.h:
(WebCore::InputType::innerTextElement):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent):
(WebCore::TextFieldInputType::innerTextElement):
* html/TextFieldInputType.h:
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerTextElement::renderer):
* html/shadow/TextControlInnerElements.h:
(WebCore::isTextControlInnerTextElement):
* rendering/RenderObject.h:
(WebCore::RenderObject::isTextControlInnerBlock):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::innerTextElement):
(WebCore::RenderTextControl::styleDidChange):
(WebCore::RenderTextControl::textBlockLogicalWidth):
(WebCore::RenderTextControl::updateFromElement):
(WebCore::RenderTextControl::computeLogicalHeight):
(WebCore::RenderTextControl::hitInnerTextElement):
* rendering/RenderTextControl.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
(WebCore::RenderTextControlSingleLine::styleDidChange):
(WebCore::RenderTextControlSingleLine::autoscroll):
(WebCore::RenderTextControlSingleLine::scroll):
(WebCore::RenderTextControlSingleLine::logicalScroll):
* rendering/RenderTextControlSingleLine.h:
(WebCore::toRenderTextControlInnerBlock):
2013-10-19 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Andreas Kling.
- Fix classes derived from RenderBlockFlow that were still calling
up to RenderBlock rather than RenderBlockFlow.
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::paint):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::computePreferredLogicalWidths):
(WebCore::RenderFieldset::paintBoxDecorations):
(WebCore::RenderFieldset::paintMask):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::styleDidChange):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::nodeAtPoint):
* rendering/RenderFullScreen.cpp:
(RenderFullScreenPlaceholder::willBeDestroyed):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::styleDidChange):
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::styleDidChange):
(WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
(WebCore::RenderMultiColumnBlock::addChild):
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::updateFromElement):
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsBlock::styleDidChange):
(WebCore::RenderRubyAsBlock::addChild):
(WebCore::RenderRubyAsBlock::removeChild):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::rubyBaseSafe):
(WebCore::RenderRubyRun::addChild):
(WebCore::RenderRubyRun::removeChild):
(WebCore::RenderRubyRun::layout):
* rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::textAlignmentForLine):
(WebCore::RenderRubyText::adjustInlineDirectionLineBounds):
* rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::willBeRemovedFromTree):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::willBeRemovedFromTree):
(WebCore::RenderTableCell::computePreferredLogicalWidths):
(WebCore::RenderTableCell::offsetFromContainer):
(WebCore::RenderTableCell::clippedOverflowRectForRepaint):
(WebCore::RenderTableCell::computeRectForRepaint):
(WebCore::RenderTableCell::styleDidChange):
(WebCore::RenderTableCell::borderLeft):
(WebCore::RenderTableCell::borderRight):
(WebCore::RenderTableCell::borderTop):
(WebCore::RenderTableCell::borderBottom):
(WebCore::RenderTableCell::borderStart):
(WebCore::RenderTableCell::borderEnd):
(WebCore::RenderTableCell::borderBefore):
(WebCore::RenderTableCell::borderAfter):
(WebCore::RenderTableCell::paint):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::styleDidChange):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::scrollWidth):
(WebCore::RenderTextControlSingleLine::scrollHeight):
(WebCore::RenderTextControlSingleLine::scrollLeft):
(WebCore::RenderTextControlSingleLine::scrollTop):
(WebCore::RenderTextControlSingleLine::scroll):
(WebCore::RenderTextControlSingleLine::logicalScroll):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::layout):
* rendering/RenderView.cpp:
(WebCore::RenderView::layoutContent):
(WebCore::RenderView::addChild):
(WebCore::RenderView::visualOverflowRect):
(WebCore::RenderView::styleDidChange):
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::setStyle):
(WebCore::RenderSVGBlock::updateFromStyle):
(WebCore::RenderSVGBlock::willBeDestroyed):
(WebCore::RenderSVGBlock::styleWillChange):
(WebCore::RenderSVGBlock::styleDidChange):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::flowBoxForRenderer):
2013-10-19 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Andreas Kling.
- Move containsNonZeroBidiLevel to RenderBlockFlow.
* editing/Editor.cpp:
(WebCore::Editor::hasBidiSelection):
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::containsNonZeroBidiLevel):
* rendering/RenderBlockFlow.h:
2013-10-18 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Antti Koivisto.
- Move truncation (e.g. line clamp and ellipse) support to RenderBlockFlow.
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::EllipsisBox):
(WebCore::EllipsisBox::paint):
(WebCore::EllipsisBox::markupBox):
(WebCore::EllipsisBox::selectionRect):
(WebCore::EllipsisBox::paintSelection):
(WebCore::EllipsisBox::nodeAtPoint):
* rendering/EllipsisBox.h:
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::shouldCheckLines):
(WebCore::RenderBlockFlow::lineAtIndex):
(WebCore::RenderBlockFlow::lineCount):
(WebCore::getHeightForLineCount):
(WebCore::RenderBlockFlow::heightForLineCount):
(WebCore::RenderBlockFlow::clearTruncation):
* rendering/RenderBlockFlow.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::placeEllipsis):
2013-10-19 Andreas Kling <akling@apple.com>
StyleResolver should deal in PassRef<RenderStyle> where possible.
<https://webkit.org/b/123061>
Make StyleResolver functions that returned or took RenderStyles
by PassRefPtr use PassRef instead where possible.
Reviewed by Anders Carlsson.
2013-10-19 Brady Eidson <beidson@apple.com>
Global rename of the class "IDBBackingStore" to "IDBBackingStoreLevelDB"
Rubberstamped by Anders Carlsson (And Andreas Kling wanted to, but he wasnt around)
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
2013-10-19 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Link fails.
https://bugs.webkit.org/show_bug.cgi?id=123019
Reviewed by Darin Adler.
Added empty CertificateInfo implementation for Curl.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* platform/network/curl/CertificateInfoCurl.cpp: Added.
(WebCore::CertificateInfo::CertificateInfo):
(WebCore::CertificateInfo::~CertificateInfo):
2013-10-19 Filip Pizlo <fpizlo@apple.com>
libWebCoreTestSupport should have explicit exports
https://bugs.webkit.org/show_bug.cgi?id=123053
Reviewed by Oliver Hunt.
No new tests because there is no change in behavior.
* Configurations/WebCoreTestSupport.xcconfig:
* testing/js/WebCoreTestSupport.h:
2013-10-18 Andreas Kling <akling@apple.com>
Start passing RenderStyle around with PassRef.
<https://webkit.org/b/123051>
Made the RenderStyle::create methods return PassRef<RenderStyle>
and RenderElement::setStyle take a PassRef<RenderStyle>.
Reviewed by Darin Adler.
2013-10-18 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Dan Bernstein.
- Make the RootInlineBox constructor take a RenderBlockFlow.
- Move createRootInlineBox, and createAndAppendRootInlineBox to RenderBlockFlow.
* editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
* rendering/InlineBox.cpp:
(WebCore::InlineBox::locationIncludingFlipping):
(WebCore::InlineBox::flipForWritingMode):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::createRootInlineBox):
(WebCore::RenderBlockFlow::createAndAppendRootInlineBox):
(WebCore::createInlineBoxForRenderer):
(WebCore::RenderBlockFlow::createLineBoxes):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionLineBox):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::localSelectionRect):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::localSelectionRect):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::rendererLineBoxes):
(WebCore::RootInlineBox::placeEllipsis):
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::setContainingRegion):
(WebCore::RootInlineBox::alignBoxesInBlockDirection):
(WebCore::RootInlineBox::beforeAnnotationsAdjustment):
(WebCore::RootInlineBox::lineSnapAdjustment):
(WebCore::RootInlineBox::lineSelectionGap):
(WebCore::RootInlineBox::computeCaretRect):
(WebCore::RootInlineBox::selectionTop):
(WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):
(WebCore::RootInlineBox::selectionBottom):
(WebCore::RootInlineBox::blockDirectionPointInLine):
(WebCore::RootInlineBox::blockFlow):
(WebCore::RootInlineBox::closestLeafChildForPoint):
(WebCore::RootInlineBox::removeLineBoxFromRenderObject):
(WebCore::RootInlineBox::extractLineBoxFromRenderObject):
(WebCore::RootInlineBox::attachLineBoxToRenderObject):
* rendering/RootInlineBox.h:
* rendering/TrailingFloatsRootInlineBox.h:
* rendering/svg/RenderSVGText.h:
(WebCore::toRenderSVGText):
* rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::SVGRootInlineBox):
(WebCore::SVGRootInlineBox::renderSVGText):
(WebCore::SVGRootInlineBox::paint):
(WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
(WebCore::SVGRootInlineBox::layoutRootBox):
* rendering/svg/SVGRootInlineBox.h:
2013-10-18 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Double-buffering and minimization of repaints
https://bugs.webkit.org/show_bug.cgi?id=123043
Reviewed by Simon Fraser.
No new tests, not yet testable.
* WebCore.exp.in:
Export one version of drawLayerContents and Region::contains.
* WebCore.xcodeproj/project.pbxproj:
Expose WebLayer.h as a private header.
* platform/graphics/mac/WebLayer.h:
Clean up this header, and add a new drawLayerContents that can operate without a CALayer.
* platform/graphics/mac/WebLayer.mm:
(WebCore::drawLayerContents):
Split drawLayerContents into one method that acquires properties CALayer,
and one that just does the painting.
2013-10-18 Anders Carlsson <andersca@apple.com>
Try to fix the Lion build.
* bindings/objc/ObjCNodeFilterCondition.h:
2013-10-18 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebSafe{GCActivityCallback, IncrementalSweeper}IOS
https://bugs.webkit.org/show_bug.cgi?id=123049
Reviewed by Mark Hahnenberg.
* WebCore.xcodeproj/project.pbxproj:
* platform/ios/WebSafeGCActivityCallbackIOS.h: Added.
* platform/ios/WebSafeIncrementalSweeperIOS.h: Added.
2013-10-18 Anders Carlsson <andersca@apple.com>
Remove spaces between template angle brackets
https://bugs.webkit.org/show_bug.cgi?id=123040
Reviewed by Andreas Kling.
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeys.h:
* Modules/geolocation/Geolocation.h:
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):
* Modules/geolocation/GeolocationController.h:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBEventDispatcher.cpp:
(WebCore::IDBEventDispatcher::dispatch):
* Modules/indexeddb/IDBEventDispatcher.h:
* Modules/indexeddb/IDBKey.h:
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBPendingTransactionMonitor.cpp:
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::onSuccessWithPrefetch):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::dispatchEvent):
* Modules/indexeddb/IDBTransaction.h:
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::sortedTrackListForMenu):
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::activeRanges):
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/MediaSourceBase.cpp:
(WebCore::MediaSourceBase::buffered):
* Modules/mediasource/MediaSourceBase.h:
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::unregisterURL):
* Modules/mediasource/MediaSourceRegistry.h:
* Modules/mediasource/SourceBufferList.h:
* Modules/mediasource/WebKitMediaSource.cpp:
(WebCore::WebKitMediaSource::activeRanges):
* Modules/mediasource/WebKitMediaSource.h:
* Modules/mediasource/WebKitSourceBufferList.h:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::scheduledEventTimerFired):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamRegistry.h:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::scheduledEventTimerFired):
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::scheduledEventTimerFired):
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCStatsResponse.h:
(WebCore::RTCStatsResponse::result):
* Modules/notifications/Notification.h:
* Modules/notifications/NotificationCenter.h:
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::getVoices):
* Modules/speech/SpeechSynthesis.h:
* Modules/webaudio/AudioBuffer.h:
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/AudioNodeOutput.h:
* Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):
* Modules/webaudio/PeriodicWave.h:
* Modules/webaudio/ScriptProcessorNode.h:
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/DatabaseBackend.h:
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::origins):
* Modules/webdatabase/DatabaseManager.h:
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::origins):
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/SQLStatementBackend.cpp:
* Modules/webdatabase/SQLTransactionBackend.cpp:
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::SQLTransactionCoordinator::shutdown):
* Modules/webdatabase/SQLTransactionCoordinator.h:
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback):
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveBinaryData):
* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::processFrame):
* Modules/websockets/WebSocketChannel.h:
* Modules/websockets/WebSocketChannelClient.h:
(WebCore::WebSocketChannelClient::didReceiveBinaryData):
* Modules/websockets/WebSocketExtensionDispatcher.h:
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::workerGlobalScopeDidReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::mainThreadSendArrayBuffer):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
* Modules/websockets/WorkerThreadableWebSocketChannel.h:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::ariaLabeledByText):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText):
* bindings/js/DOMWrapperWorld.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toRefPtrNativeArray):
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
* bindings/js/JSMutationCallback.h:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::getAttachedShaders):
* bindings/js/PageScriptDebugServer.h:
* bindings/js/ScheduledAction.h:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/js/ScriptController.h:
* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptProfile.cpp:
(WebCore::buildInspectorObjectFor):
* bindings/objc/ObjCNodeFilterCondition.h:
* bridge/objc/objc_class.h:
* bridge/runtime_root.cpp:
(JSC::Bindings::RootObject::invalidate):
* bridge/runtime_root.h:
* css/BasicShapeFunctions.cpp:
(WebCore::basicShapeForValue):
* css/CSSBasicShapes.h:
(WebCore::CSSBasicShapePolygon::values):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForFilter):
* css/CSSFontFace.h:
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::getFontFace):
(WebCore::CSSFontSelector::beginLoadTimerFired):
* css/CSSFontSelector.h:
* css/CSSGroupingRule.h:
* css/CSSImageGeneratorValue.h:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::adoptSelectorVector):
* css/CSSParserValues.h:
* css/CSSPropertySourceData.h:
* css/CSSRuleList.h:
(WebCore::StaticCSSRuleList::rules):
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontLoaded):
* css/CSSSegmentedFontFace.h:
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::adoptSelectorVector):
* css/CSSSelectorList.h:
* css/CSSStyleSheet.h:
* css/CSSValue.h:
(WebCore::compareCSSValueVector):
* css/CSSValuePool.h:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
* css/DocumentRuleSets.h:
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchedRuleList):
* css/ElementRuleCollector.h:
* css/FontLoader.h:
* css/InspectorCSSOMWrappers.cpp:
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents):
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheets):
* css/InspectorCSSOMWrappers.h:
* css/MediaList.cpp:
(WebCore::MediaQuerySet::parse):
(WebCore::MediaList::item):
(WebCore::reportMediaQueryWarningIfNeeded):
* css/MediaList.h:
(WebCore::MediaQuerySet::queryVector):
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::eval):
* css/MediaQueryMatcher.h:
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
* css/PropertySetCSSStyleDeclaration.h:
* css/RuleSet.cpp:
(WebCore::RuleSet::addToRuleSet):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
* css/RuleSet.h:
* css/SelectorFilter.h:
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getLayeredShorthandValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::styleRulesForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::resolveVariables):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::loadPendingShaders):
* css/StyleResolver.h:
* css/StyleRule.cpp:
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
(WebCore::StyleRuleGroup::StyleRuleGroup):
(WebCore::StyleRuleMedia::StyleRuleMedia):
(WebCore::StyleRuleSupports::StyleRuleSupports):
(WebCore::StyleRuleRegion::StyleRuleRegion):
* css/StyleRule.h:
(WebCore::StyleRule::parserAdoptSelectorVector):
(WebCore::StyleRulePage::parserAdoptSelectorVector):
(WebCore::StyleRuleGroup::childRules):
(WebCore::StyleRuleMedia::create):
(WebCore::StyleRuleSupports::create):
(WebCore::StyleRuleRegion::create):
(WebCore::StyleRuleHost::create):
(WebCore::StyleRuleHost::StyleRuleHost):
* css/StyleScopeResolver.h:
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parserAppendRule):
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* css/StyleSheetContents.h:
(WebCore::StyleSheetContents::childRules):
(WebCore::StyleSheetContents::importRules):
* css/StyleSheetList.cpp:
(WebCore::StyleSheetList::styleSheets):
(WebCore::StyleSheetList::item):
* css/StyleSheetList.h:
* css/WebKitCSSKeyframesRule.h:
(WebCore::StyleRuleKeyframes::keyframes):
* dom/CheckedRadioButtons.h:
* dom/ClientRectList.h:
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
* dom/CrossThreadTask.h:
* dom/Document.cpp:
(WebCore::Document::webkitCancelFullScreen):
(WebCore::Document::webkitExitFullscreen):
(WebCore::Document::fullScreenChangeDelayTimerFired):
(WebCore::Document::didAssociateFormControlsTimerFired):
* dom/Document.h:
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::removeMarkers):
* dom/DocumentMarkerController.h:
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
(WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
(WebCore::styleSheetsUseRemUnits):
(WebCore::filterEnabledNonemptyCSSStyleSheets):
(WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
* dom/DocumentStyleSheetCollection.h:
* dom/Element.cpp:
(WebCore::Element::attrNodeList):
(WebCore::Element::webkitGetRegionFlowRanges):
* dom/Element.h:
* dom/EventListenerMap.h:
* dom/EventSender.h:
(WebCore::EventSender::timerFired):
* dom/IdTargetObserverRegistry.h:
* dom/MutationCallback.h:
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::takeRecords):
(WebCore::MutationObserver::deliver):
(WebCore::MutationObserver::deliverAllMutations):
* dom/MutationObserver.h:
* dom/MutationObserverRegistration.h:
* dom/NamedFlowCollection.cpp:
(WebCore::NamedFlowCollection::namedFlows):
* dom/NamedFlowCollection.h:
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
* dom/Range.cpp:
(WebCore::Range::processContents):
(WebCore::Range::processNodes):
(WebCore::Range::processAncestorsAndTheirSiblings):
* dom/Range.h:
* dom/ScopedEventQueue.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportException):
* dom/ScriptExecutionContext.h:
* dom/ScriptedAnimationController.h:
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
* editing/CompositeEditCommand.h:
* editing/EditingStyle.cpp:
(WebCore::htmlElementEquivalents):
(WebCore::EditingStyle::conflictsWithImplicitStyleOfElement):
(WebCore::htmlAttributeEquivalents):
(WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
(WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
(WebCore::styleFromMatchedRulesForElement):
* editing/Editor.cpp:
(WebCore::Editor::countMatchesForText):
* editing/Editor.h:
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::getAncestorsInsideBlock):
(WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/InsertParagraphSeparatorCommand.h:
* editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):
* editing/RemoveNodePreservingChildrenCommand.cpp:
(WebCore::RemoveNodePreservingChildrenCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeUnrenderedNodes):
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
(WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove):
* editing/SimplifyMarkupCommand.h:
* editing/SpellChecker.h:
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::doUnapply):
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply):
(WebCore::WrapContentsInDummySpanCommand::doUnapply):
* editing/mac/AlternativeTextUIController.h:
* fileapi/FileList.h:
* history/BackForwardList.h:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::setRedirectURLs):
* history/HistoryItem.h:
* history/mac/HistoryItemMac.mm:
(WebCore::HistoryItem::setTransientProperty):
* html/FormController.h:
* html/HTMLAnchorElement.cpp:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::append):
* html/HTMLCollection.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::checkValidity):
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
(WebCore::HTMLFormElement::checkValidity):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
* html/HTMLFormElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::platformTextTracks):
(WebCore::HTMLMediaElement::configureTextTrackGroup):
* html/HTMLMediaElement.h:
* html/HTMLPlugInImageElement.cpp:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setLength):
* html/MediaController.cpp:
(MediaController::asyncEventTimerFired):
* html/MediaController.h:
* html/MediaFragmentURIParser.h:
* html/ValidationMessage.h:
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getAttachedShaders):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLTexture.h:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::startBackgroundParser):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLMetaCharsetParser.h:
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
* html/parser/HTMLResourcePreloader.h:
* html/parser/XSSAuditor.h:
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::ensureInsertionPointList):
(WebCore::ContentDistributor::distribute):
(WebCore::ContentDistributor::invalidate):
* html/shadow/ContentDistributor.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/shadow/MediaControlElements.h:
* html/track/InbandGenericTextTrack.h:
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newCuesParsed):
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::newCuesAvailable):
(WebCore::LoadableTextTrack::newRegionsAvailable):
* html/track/TextTrackCueList.h:
* html/track/TextTrackList.cpp:
(TextTrackList::invalidateTrackIndexesAfterTrack):
(TextTrackList::remove):
(TextTrackList::contains):
* html/track/TextTrackList.h:
* html/track/TrackListBase.cpp:
(TrackListBase::asyncEventTimerFired):
* html/track/TrackListBase.h:
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::getNewCues):
(WebCore::WebVTTParser::getNewRegions):
* html/track/WebVTTParser.h:
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::addToFrontend):
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
(WebCore::ContentSearchUtils::lineEndings):
(WebCore::ContentSearchUtils::searchInTextByLines):
* inspector/ContentSearchUtils.h:
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::diff):
(WebCore::DOMPatchSupport::innerPatchChildren):
* inspector/DOMPatchSupport.h:
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::getProperties):
(WebCore::InjectedScript::getInternalProperties):
(WebCore::InjectedScript::wrapCallFrames):
* inspector/InjectedScript.h:
* inspector/InjectedScriptHost.h:
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::enable):
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
(WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorBaseAgent.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::SelectorProfile::toInspectorObject):
(WebCore::UpdateRegionLayoutTask::onTimer):
(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::getComputedStyleForNode):
(WebCore::InspectorCSSAgent::getAllStyleSheets):
(WebCore::InspectorCSSAgent::getSupportedCSSProperties):
(WebCore::InspectorCSSAgent::getNamedFlowCollection):
(WebCore::InspectorCSSAgent::buildArrayForRuleList):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
(WebCore::InspectorCSSAgent::buildArrayForRegions):
(WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::RevalidateStyleAttributeTask::onTimer):
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::performSearch):
(WebCore::InspectorDOMAgent::getSearchResults):
(WebCore::InspectorDOMAgent::getAttributes):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
(WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
(WebCore::InspectorDOMAgent::styleAttributeInvalidated):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::setScriptSource):
(WebCore::InspectorDebuggerAgent::currentCallFrames):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorHistory.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::layersForNode):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::buildArrayForCookies):
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::searchInResource):
(WebCore::InspectorPageAgent::searchInResources):
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::getProfileHeaders):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::getProperties):
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorState.h:
* inspector/InspectorStyleSheet.cpp:
(WebCore::asCSSRuleList):
(WebCore::InspectorStyle::buildArrayForComputedStyle):
(WebCore::InspectorStyle::styleWithProperties):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::lineEndings):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::InspectorStyleSheetForInlineStyle::lineEndings):
* inspector/InspectorStyleSheet.h:
* inspector/InspectorValues.cpp:
(WebCore::InspectorArrayBase::writeJSON):
* inspector/InspectorValues.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):
* inspector/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::buildInspectorArray):
* inspector/ScriptCallStack.h:
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentLoader.cpp:
(WebCore::cancelAll):
(WebCore::setAllDefersLoading):
(WebCore::DocumentLoader::getSubresources):
* loader/DocumentLoader.h:
* loader/FormState.h:
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* loader/ProgressTracker.h:
* loader/ResourceLoadScheduler.h:
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::getNewCues):
(WebCore::TextTrackLoader::getNewRegions):
* loader/TextTrackLoader.h:
* loader/WorkerThreadableLoader.cpp:
(WebCore::workerGlobalScopeDidReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::removeResource):
(WebCore::ApplicationCache::dump):
* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::getOriginsWithCache):
* loader/archive/Archive.cpp:
(WebCore::Archive::clearAllSubframeArchives):
(WebCore::Archive::clearAllSubframeArchivesImpl):
* loader/archive/Archive.h:
(WebCore::Archive::subresources):
(WebCore::Archive::subframeArchives):
* loader/archive/ArchiveResourceCollection.cpp:
(WebCore::ArchiveResourceCollection::addAllResources):
* loader/archive/ArchiveResourceCollection.h:
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createPropertyListRepresentation):
(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):
* loader/archive/cf/LegacyWebArchive.h:
* loader/archive/mhtml/MHTMLParser.h:
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.h:
* loader/cache/MemoryCache.h:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::notifyPendingLoadDecisions):
* loader/icon/IconDatabase.h:
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
* page/CaptionUserPreferencesMediaAF.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::didAssociateFormControls):
* page/Console.h:
* page/ContentSecurityPolicy.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::getMatchedCSSRules):
* page/DeviceController.cpp:
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):
* page/DeviceController.h:
* page/EditorClient.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/EventHandler.h:
* page/FrameView.cpp:
(WebCore::FrameView::serviceScriptedAnimations):
* page/Page.cpp:
(WebCore::Page::findStringMatchingRanges):
* page/Page.h:
* page/PageGroup.h:
* page/Performance.cpp:
(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):
* page/Performance.h:
* page/PerformanceEntryList.cpp:
(WebCore::PerformanceEntryList::appendAll):
* page/PerformanceEntryList.h:
* page/SecurityOriginHash.h:
* page/SecurityPolicy.cpp:
* page/SpeechInputResult.h:
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
* page/animation/AnimationControllerPrivate.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* page/animation/CompositeAnimation.h:
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::appendChild):
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::children):
* page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
* page/scrolling/ScrollingThread.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::appendChild):
* page/scrolling/ScrollingTreeNode.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::syncChildPositions):
* platform/CrossThreadCopier.cpp:
* platform/CrossThreadCopier.h:
* platform/DragData.h:
* platform/MainThreadTask.h:
* platform/PODFreeListArena.h:
(WebCore::PODFreeListArena::freeObject):
(WebCore::PODFreeListArena::allocate):
* platform/PODIntervalTree.h:
* platform/PODRedBlackTree.h:
(WebCore::PODRedBlackTree::PODRedBlackTree):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::voiceList):
* platform/PlatformSpeechSynthesizer.h:
* platform/RunLoop.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::frameRectsChanged):
(WebCore::ScrollView::clipRectChanged):
(WebCore::ScrollView::setParentVisible):
(WebCore::ScrollView::show):
(WebCore::ScrollView::hide):
* platform/ScrollView.h:
* platform/SharedBuffer.h:
* platform/Supplementable.h:
(WebCore::Supplement::provideTo):
(WebCore::Supplementable::provideSupplement):
* platform/URL.cpp:
(WebCore::findHostnamesInMailToURL):
(WebCore::encodeHostnames):
* platform/audio/AudioBus.h:
* platform/audio/AudioDSPKernelProcessor.h:
* platform/audio/AudioResampler.h:
* platform/audio/DynamicsCompressor.h:
* platform/audio/DynamicsCompressorKernel.h:
* platform/audio/HRTFDatabase.h:
* platform/audio/HRTFKernel.h:
* platform/audio/MultiChannelResampler.h:
* platform/audio/Reverb.h:
* platform/audio/ReverbConvolver.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::copyBufferAndClear):
(WebCore::SharedBuffer::copySomeDataFromDataArray):
* platform/graphics/FloatPolygon.cpp:
(WebCore::FloatPolygon::FloatPolygon):
* platform/graphics/FloatPolygon.h:
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontData):
(WebCore::FontCache::purgeInactiveFontData):
* platform/graphics/GlyphMetricsMap.h:
(WebCore::::locatePageSlowCase):
* platform/graphics/GlyphPageTreeNode.h:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/PlatformTextTrackMenu.h:
* platform/graphics/SimpleFontData.h:
* platform/graphics/WidthCache.h:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::processLegacyClosedCaptionsTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):
(WebCore::GraphicsLayerCA::fetchCloneLayers):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/LayerPool.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimation::setValues):
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/cg/SubimageCacheWithTimer.h:
* platform/graphics/filters/CustomFilterParameterList.h:
* platform/graphics/filters/FilterEffect.h:
* platform/graphics/filters/FilterOperations.h:
(WebCore::FilterOperations::operations):
* platform/graphics/gpu/Texture.cpp:
(WebCore::Texture::Texture):
(WebCore::Texture::create):
* platform/graphics/gpu/Texture.h:
* platform/graphics/mac/ComplexTextController.h:
* platform/graphics/mac/SimpleFontDataCoreText.cpp:
(WebCore::SimpleFontData::getCFStringAttributes):
* platform/graphics/transforms/TransformOperations.h:
(WebCore::TransformOperations::operations):
* platform/ios/PasteboardIOS.mm:
(WebCore::documentFragmentWithRTF):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
* platform/mediastream/MediaStreamDescriptor.h:
* platform/mediastream/MediaStreamSource.h:
* platform/mediastream/RTCConfiguration.h:
* platform/network/BlobRegistryImpl.h:
* platform/network/HTTPHeaderMap.h:
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::parseCacheControlDirectives):
(WebCore::parseCacheHeader):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::clientCerts):
(WebCore::ResourceHandle::createCFURLConnection):
* platform/text/cf/HyphenationCF.cpp:
(WebCore::::createValueForNullKey):
(WebCore::::createValueForKey):
(WebCore::cfLocaleCache):
* plugins/PluginMainThreadScheduler.h:
* rendering/HitTestResult.h:
* rendering/InlineFlowBox.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintContinuationOutlines):
(WebCore::RenderBlock::removeFromTrackedRendererMaps):
* rendering/RenderBlock.h:
* rendering/RenderButton.h:
* rendering/RenderCounter.cpp:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator):
* rendering/RenderGrid.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
(WebCore::RenderLayer::rebuildZOrderLists):
(WebCore::RenderLayer::collectLayers):
* rendering/RenderLayer.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::getRanges):
* rendering/RenderRegion.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionBounds):
(WebCore::RenderView::setSelection):
* rendering/RootInlineBox.h:
* rendering/shapes/PolygonShape.cpp:
(WebCore::computeShapePaddingBounds):
(WebCore::computeShapeMarginBounds):
* rendering/shapes/PolygonShape.h:
(WebCore::PolygonShape::PolygonShape):
* rendering/shapes/Shape.cpp:
(WebCore::createPolygonShape):
(WebCore::Shape::createShape):
* rendering/shapes/ShapeInfo.h:
* rendering/shapes/ShapeInterval.h:
* rendering/style/QuotesData.cpp:
(WebCore::QuotesData::create):
(WebCore::QuotesData::QuotesData):
* rendering/style/QuotesData.h:
* rendering/style/RenderStyle.cpp:
(WebCore::requireTransformOrigin):
(WebCore::RenderStyle::applyTransform):
* rendering/style/StyleGridData.h:
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/SVGResourcesCache.h:
* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
* storage/StorageEventDispatcher.h:
* storage/StorageNamespaceImpl.h:
* storage/StorageThread.h:
* storage/StorageTracker.cpp:
(WebCore::StorageTracker::origins):
* storage/StorageTracker.h:
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
* svg/SVGAnimatedTypeAnimator.cpp:
(WebCore::SVGElementAnimatedProperties::SVGElementAnimatedProperties):
(WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
* svg/SVGAnimatedTypeAnimator.h:
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::startAnimations):
(WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
(WebCore::SVGDocumentExtensions::addElementReferencingTarget):
(WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget):
* svg/SVGDocumentExtensions.h:
* svg/SVGFontElement.h:
* svg/SVGGlyphMap.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::orientTypeAnimated):
* svg/SVGMarkerElement.h:
* svg/SVGPathSegList.h:
* svg/animation/SMILTimeContainer.h:
* svg/graphics/SVGImageCache.h:
* svg/graphics/filters/SVGFilterBuilder.h:
(WebCore::SVGFilterBuilder::addBuiltinEffects):
* svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
(WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
* svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::create):
* svg/properties/SVGAnimatedPropertyTearOff.h:
(WebCore::SVGAnimatedPropertyTearOff::create):
* svg/properties/SVGAnimatedStaticPropertyTearOff.h:
(WebCore::SVGAnimatedStaticPropertyTearOff::create):
* svg/properties/SVGAttributeToPropertyMap.cpp:
(WebCore::SVGAttributeToPropertyMap::animatedPropertiesForAttribute):
* svg/properties/SVGAttributeToPropertyMap.h:
* svg/properties/SVGStaticListPropertyTearOff.h:
(WebCore::SVGStaticListPropertyTearOff::create):
* svg/properties/SVGTransformListPropertyTearOff.h:
(WebCore::SVGTransformListPropertyTearOff::create):
(WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
(WebCore::SVGTransformListPropertyTearOff::consolidate):
* workers/DefaultSharedWorkerRepository.h:
* workers/WorkerMessagingProxy.h:
* xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):
* xml/XMLHttpRequestProgressEventThrottle.h:
* xml/XPathNodeSet.cpp:
(WebCore::XPath::NodeSet::sort):
(WebCore::XPath::NodeSet::traversalSort):
* xml/XSLStyleSheet.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
2013-10-18 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Cleaning warning messages from StyleResolveTree
https://bugs.webkit.org/show_bug.cgi?id=123030
Reviewed by Andreas Kling.
No new tests needed.
* style/StyleResolveTree.cpp:
(WebCore::Style::elementInsideRegionNeedsRenderer):
(WebCore::Style::createRendererIfNeeded):
2013-10-18 Brady Eidson <beidson@apple.com>
Get rid of IDBFactoryBackendLevelDB and IDBTransactionBackendLevelDB in IDBDatabaseBackendLevelDB.
https://bugs.webkit.org/show_bug.cgi?id=123039
Reviewed by Anders Carlsson.
Add a few concepts to the interfaces to make this work:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(WebCore::IDBTransactionBackendInterface::id):
(WebCore::IDBTransactionBackendInterface::IDBTransactionBackendInterface):
Adapt to using Interface ptrs instead of LevelDB ptrs:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::create):
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
(WebCore::IDBDatabaseBackendLevelDB::createObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::deleteObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::createIndex):
(WebCore::IDBDatabaseBackendLevelDB::deleteIndex):
(WebCore::IDBDatabaseBackendLevelDB::get):
(WebCore::IDBDatabaseBackendLevelDB::put):
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
(WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
(WebCore::IDBDatabaseBackendLevelDB::openCursor):
(WebCore::IDBDatabaseBackendLevelDB::count):
(WebCore::IDBDatabaseBackendLevelDB::deleteRange):
(WebCore::IDBDatabaseBackendLevelDB::clear):
(WebCore::IDBDatabaseBackendLevelDB::transactionStarted):
(WebCore::IDBDatabaseBackendLevelDB::transactionFinished):
(WebCore::IDBDatabaseBackendLevelDB::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackendLevelDB::transactionFinishedAndCompleteFired):
(WebCore::IDBDatabaseBackendLevelDB::runIntVersionChangeTransaction):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::makeIndexWriters):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::commit):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
2013-10-18 Dean Jackson <dino@apple.com>
Unable to upload <img src="foo.svg"> as WebGL texture
https://bugs.webkit.org/show_bug.cgi?id=123035
Reviewed by Tim Horton.
If the HTMLImageElement passed to texture2D is an SVG
image, paint it first into a bitmap buffer and upload that.
Note that the SVG image still needs to have an intrinsic
or explicit size - see how the test case must set width and
height.
I also renamed the cache of ImageBuffers since it is
no longer only being used for video frames.
Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-svg-image.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::WebGLRenderingContext): Rename m_videoCache to m_generatedImageCache.
(WebCore::WebGLRenderingContext::drawImageIntoBuffer): New method that creates an ImageBuffer
of the appropriate size and renders into that.
(WebCore::WebGLRenderingContext::texImage2D): If we see an SVG image, render it first.
(WebCore::WebGLRenderingContext::videoFrameToImage): Renamed m_generatedImageCache.
(WebCore::WebGLRenderingContext::texSubImage2D): If we see an SVG image, render it first.
* html/canvas/WebGLRenderingContext.h: Renaming.
2013-10-18 Brady Eidson <beidson@apple.com>
Move IDBTransactionBackend operations to the IDBTransactionBackend itself..
https://bugs.webkit.org/show_bug.cgi?id=123028
Reviewed by Alexey Proskuryakov.
This gets rid of a big blob of LevelDB specific code from IDBDatabaseBackendLevelDB.cpp,
bringing us much closer to having it be cross platform.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBTransactionBackendInterface.h: Added.
(WebCore::IDBTransactionBackendInterface::~IDBTransactionBackendInterface):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::CursorAdvanceOperation::perform): Update for new method signature.
(WebCore::IDBCursorBackendLevelDB::CursorIterationOperation::perform): Ditto.
(WebCore::IDBCursorBackendLevelDB::CursorPrefetchIterationOperation::perform): Ditto.
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp: Move all operations into
IDBTransactionBackendLevelDBOperations, then start scheduling them using the new
IDBTransactionBackendInterface scheduling methods.
(WebCore::IDBDatabaseBackendLevelDB::createObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::deleteObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::createIndex):
(WebCore::IDBDatabaseBackendLevelDB::deleteIndex):
(WebCore::IDBDatabaseBackendLevelDB::get):
(WebCore::IDBDatabaseBackendLevelDB::put):
(WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
(WebCore::IDBDatabaseBackendLevelDB::openCursor):
(WebCore::IDBDatabaseBackendLevelDB::count):
(WebCore::IDBDatabaseBackendLevelDB::deleteRange):
(WebCore::IDBDatabaseBackendLevelDB::clear):
(WebCore::IDBDatabaseBackendLevelDB::createTransaction):
(WebCore::IDBDatabaseBackendLevelDB::runIntVersionChangeTransaction):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h: Move definitions of PendingOpenCall and
PendingDeleteCall to the header.
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::create):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::callbacks):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::databaseCallbacks):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::version):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::transactionId):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::PendingOpenCall):
(WebCore::IDBDatabaseBackendLevelDB::PendingDeleteCall::create):
(WebCore::IDBDatabaseBackendLevelDB::PendingDeleteCall::callbacks):
(WebCore::IDBDatabaseBackendLevelDB::PendingDeleteCall::PendingDeleteCall):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp: Add a newly required include.
* Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp: Ditto.
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp: Implement the new interface to
handle scheduling of operations in a cross platform manner, then rely on the new
IDBTransactionBackendLevelDBOperations classes for the actual operations.
(WebCore::IDBTransactionBackendLevelDB::create):
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
(WebCore::IDBTransactionBackendLevelDB::scheduleCreateObjectStoreOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteObjectStoreOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleVersionChangeOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleCreateIndexOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteIndexOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleGetOperation):
(WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleSetIndexesReadyOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleOpenCursorOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleCountOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteRangeOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleClearOperation):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp: Added.
Move all the LevelDB transaction operations from IDBDatabaseBackendLevelDB to here.
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::GetOperation::perform):
(WebCore::PutOperation::perform):
(WebCore::SetIndexesReadyOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeOperation::perform):
(WebCore::CreateObjectStoreAbortOperation::perform):
(WebCore::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeAbortOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h: Added.
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeOperation::create):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeOperation::VersionChangeOperation):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeAbortOperation::create):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeAbortOperation::VersionChangeAbortOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
2013-10-18 Beth Dakin <bdakin@apple.com>
Rubber-banding is often not smooth on infinitely scrolling websites
https://bugs.webkit.org/show_bug.cgi?id=122985
Reviewed by Simon Fraser.
totalContentsSize is an important part of the calculation for
maximumScrollPosition(). This function is called repeatedly throughout the curve
of a rubber-band to determine the stretch amount. To keep the rubber-band
animation smooth, it should be allowed to finish its animation using the old
totalContentsSize. This patch does that by adding a new variable,
m_totalContentsSizeForRubberBand. This value should almost always be equivalent to
m_totalContentsSize. It will only vary if m_totalContentsSize has changed in the
middle of a rubber-band, and in that case, it will stay equivalent to the old
totalContentSize value until the rubber band animation finishes.
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand):
(WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
(WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
2013-10-18 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix for --no-svg option.
m_svgStyle of RenderStyle is guarded with the ENABLE_SVG flag.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
2013-10-17 Brady Eidson <beidson@apple.com>
Cleanup the Modules group in the WebCore.xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=123009
Rubberstamped by Antti Koivisto.
* WebCore.xcodeproj/project.pbxproj:
2013-10-18 Denis Nomiyama <d.nomiyama@samsung.com>
[ATK] Fix invalid signal to set objects to an unknown state "layout-complete"
https://bugs.webkit.org/show_bug.cgi?id=122970
Reviewed by Mario Sanchez Prada.
Removed an invalid signal to set objects to an unknown state
layout-complete. This signal was originally generated to notify DRT
and WKTR in case of page load complete.
It was replaced by ATK:AtkDocument:load-complete, which is already sent
by AXObjectCache::frameLoadingEventPlatformNotification().
There is no new test since the changes are covered by existing ones
(e.g. accessibility/loading-iframe-sends-notification.html).
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification): Removed an invalid
signal to set objects to an unknown state layout-complete.
2013-10-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Generate API documentation for GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=121538
Reviewed by Gustavo Noronha Silva.
* bindings/gobject/GNUmakefile.am: Add a explicit rule for all
.symbols file making them depend on the corresponding header file,
since the .symbols file is generated by the bindings generator.
2013-10-18 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Simplify implementation of atk_text_get_text
https://bugs.webkit.org/show_bug.cgi?id=122644
Reviewed by Chris Fleizach.
Simplified code so we only call textUnderElement() directly once
and only when needed. Also, moved the specific code for ColorWell
objects up to the beginning of that function, so we don't do any
additional efforts like computing text ranges in those cases.
No new tests are needed, just to make sure that the current layout
and unit tests are still passing, which they are.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(textForObject): Fixed a issue that got detected while working on
this patch, which was causing a '\n' to be artificially appended
at the end of text controls all the time.
(webkitAccessibleTextGetText): Simplified function.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::doAXStringForRange): Removed
the check that prevents from pass ranges exceeding the limits of
the element's text, since those will be checked anyway when
calling String::substring().
2013-10-18 Brendan Long <b.long@cablelabs.com>
[GStreamer][GTK] Add GRefPtr::outPtr()
https://bugs.webkit.org/show_bug.cgi?id=122996
Reviewed by Philippe Normand.
No new tests because this is just simplifying existing code.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp: Add GRefPtr specialization for GstToc.
* platform/graphics/gstreamer/GRefPtrGStreamer.h: Same.
* platform/graphics/gstreamer/GStreamerGWorld.cpp: Use GRefPtr::outPtr() to simplify code.
(WebCore::GStreamerGWorld::enterFullscreen):
(WebCore::GStreamerGWorld::exitFullscreen):
(WebCore::GStreamerGWorld::removePlatformVideoSink):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Same.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText):
(WebCore::MediaPlayerPrivateGStreamer::newTextSample):
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContents):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Same.
(WebCore::MediaPlayerPrivateGStreamerBase::currentVideoSinkCaps):
* platform/network/soup/ResourceHandleSoup.cpp: Same.
(WebCore::HostTLSCertificateSet::computeCertificateHash):
2013-10-17 Alexey Proskuryakov <ap@apple.com>
Don't add an include for return type of a [Custom] function in generated bindings code
https://bugs.webkit.org/show_bug.cgi?id=122972
Reviewed by Sam Weinig.
* bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): Don't.
2013-10-17 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLSpace always has a MathMLTextElement.
<https://webkit.org/b/122992>
The renderer is never anonymous and always has a corresponding
MathMLTextElement. Overload element() with a tighter return type.
Also marked the class FINAL and made most methods private.
Reviewed by Antti Koivisto.
* rendering/mathml/RenderMathMLSpace.cpp:
(WebCore::RenderMathMLSpace::RenderMathMLSpace):
(WebCore::RenderMathMLSpace::updateFromElement):
* rendering/mathml/RenderMathMLSpace.h:
2013-10-17 Tim Horton <timothy_horton@apple.com>
PlatformCALayer constructor should take layer type as an argument
https://bugs.webkit.org/show_bug.cgi?id=122915
Reviewed by Anders Carlsson.
No new tests, just restoring old code.
Un-do part of the patch for bug 122915; we can't early-return
in the constructor, there's still more work to do.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
2013-10-17 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: [CSS Regions] Crash when highlighting a node of a flow with no regions
https://bugs.webkit.org/show_bug.cgi?id=122993
Reviewed by Joseph Pecoraro.
Test: inspector-protocol/dom/highlight-flow-with-no-region.html
Even if a named flow has no regions the content of the flow will still have renderer objects created.
Removed the assumption that all renderers inside a RenderFlowThread will always have an enclosing RenderRegion.
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForRendererFragments):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode):
2013-10-17 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLOperator always has a MathMLElement.
<https://webkit.org/b/122988>
Reviewed by Antti Koivisto.
The renderer is never anonymous and always has a corresponding
MathMLElement. Overload element() with a tighter return type.
Also marked the class FINAL and made most methods private.
2013-10-17 Nico Weber <thakis@chromium.org>
Fix three bugs in the equals() implementations for css gradients.
https://bugs.webkit.org/show_bug.cgi?id=122987
Reviewed by Andreas Kling.
1. Linear gradients were considered equal if the first gradient has no x and y
position and the second has no x but does have y.
2. Same as 1, for radial gradients. (This doesn't happen in practice as
CSSParser::parseRadialGradient rejects such input, so no test for this case.)
3. Radial gradients without x and y position weren't considered equal even if
they were.
* css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::equals):
(WebCore::CSSRadialGradientValue::equals):
2013-10-17 Antoine Quint <graouts@apple.com>
Web Inspector: allow front-end to trigger the system beep sound to signal an error
https://bugs.webkit.org/show_bug.cgi?id=122955
Reviewed by Timothy Hatcher.
New beep() method exposed on InspectorFrontendHost calling into WebCore's systemBeep().
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::beep):
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
2013-10-17 Anders Carlsson <andersca@apple.com>
Remove PlatformCAAnimation::supportsValueFunction()
https://bugs.webkit.org/show_bug.cgi?id=122990
Reviewed by Tim Horton.
PlatformCAAnimation::supportsValueFunction always returns true now, so there's no need for it to exist anymore.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
2013-10-17 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLFenced always has a MathMLInlineContainerElement.
<https://webkit.org/b/122986>
This renderer is never anonymous and always has a corresponding
MathMLInlineContainerElement. Overload element() with a tighter
return type.
Also marked the class FINAL and made most methods private.
Reviewed by Anders Carlsson.
2013-10-17 Myles C. Maxfield <mmaxfield@apple.com>
Comment AffineTransform::xScale() and yScale() to make their meanings clearer
https://bugs.webkit.org/show_bug.cgi?id=122981
Reviewed by Simon Fraser.
* platform/graphics/transforms/AffineTransform.h:
2013-10-17 Vivek Galatage <vivek.vg@samsung.com>
Remove unnecessary check for RenderLayer and rename ensureLayer to createLayer in RenderLayerModelObject.
https://bugs.webkit.org/show_bug.cgi?id=122928
Reviewed by Darin Adler.
No new tests due to code refactoring.
RenderLayerModelObject::styleDidChange invokes the ensureLayer() only in case of !layer().
Again checking for layer existence would be deemed redundant in ensureLayer.
Replacing it with an ASSERT(!m_layer) and also renaming it to createLayer.
Blink review URL: https://codereview.chromium.org/27246003/
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::createLayer):
(WebCore::RenderLayerModelObject::styleDidChange):
* rendering/RenderLayerModelObject.h:
2013-10-17 Tim Horton <timothy_horton@apple.com>
Remove PlatformCALayerMac workaround for <rdar://problem/7390716>
https://bugs.webkit.org/show_bug.cgi?id=122983
Reviewed by Simon Fraser.
Remove a workaround for a bug fixed in Lion.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::setSublayers):
(PlatformCALayerMac::removeAllSublayers):
(PlatformCALayerMac::adoptSublayers):
2013-10-17 Robert Hogan <robert@webkit.org>
"border-collapse: collapse;" for table removes part of its border (was: Border disappears when close to some elements)
https://bugs.webkit.org/show_bug.cgi?id=8914
Reviewed by David Hyatt.
The table section's side of a collapsed border won't get painted if there are no cells there to paint it. So instead
of relying solely on cells to paint the collapsed border paint the appropriate section of the border if there's no
cell to take care of it.
Tests: fast/table/paint-section-borders-without-cells-rtl.html
fast/table/paint-section-borders-without-cells-vertical-lr-rtl.html
fast/table/paint-section-borders-without-cells-vertical-lr.html
fast/table/paint-section-borders-without-cells-vertical-rl.html
fast/table/paint-section-borders-without-cells.html
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintRowGroupBorder):
(WebCore::RenderTableSection::offsetLeftForRowGroupBorder):
(WebCore::RenderTableSection::offsetTopForRowGroupBorder):
(WebCore::RenderTableSection::verticalRowGroupBorderHeight):
(WebCore::RenderTableSection::horizontalRowGroupBorderWidth):
(WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
(WebCore::physicalBorderForDirection):
(WebCore::RenderTableSection::paintObject):
* rendering/RenderTableSection.h:
2013-10-17 Andreas Kling <akling@apple.com>
StyleRuleFoo::mutableProperties() should return a reference.
<https://webkit.org/b/122962>
The mutableProperties() functions always return objects, so make
them return MutableStylePropertySet&.
Also tweaked the StyleRuleCSSStyleDeclaration constructor to take
references to both the properties and the owner rule since both
are required.
Reviewed by Antti Koivisto.
2013-10-17 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Improve the performance of image valued shapes with large shape-margins
https://bugs.webkit.org/show_bug.cgi?id=122613
Reviewed by Andreas Kling.
The cost of computing the shape-margin boundary of an image-valued shape-outside
is now proportional to (2 * shape-margin + image.height) rather than
(2 * shape-margin * image.height). The performance improvement comes from skipping
sequences of rounded-rectangle intervals that will not contribute to the final
result. Each non-empty row in the original image contributes one rounded-rectangle
whose corner radius is shape-margin, height is 2 * shape-margin, and width is
2 * shape-margin plus the width of the limits of the intervals on the row.
Renamed private method RasterShape::getIntervals() to intervalsAt() to be a little
more consistent with WebKit naming conventions.
There are no new tests since is just an internal refactoring.
* rendering/shapes/RasterShape.cpp:
(WebCore::MarginIntervalGenerator::set): Changed the x1,x2 parameters to an IntShapeInterval.
(WebCore::RasterShapeIntervals::contains): Refactor for the getIntervals() => intervalsAt() rename.
(WebCore::RasterShapeIntervals::getIntervalX1Values): Ditto.
(WebCore::RasterShapeIntervals::getIncludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::getExcludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals): Performance tuning.
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::intervalsAt): Renamed getIntervals().
(WebCore::RasterShapeIntervals::limitIntervalAt): Return the min/max limits of the intervals at Y.
* rendering/shapes/ShapeInterval.h:
(WebCore::ShapeInterval::isEmpty): Added.
2013-10-15 Philippe Normand <pnormand@igalia.com>
[GTK] Add URLMediaStream in the build
https://bugs.webkit.org/show_bug.cgi?id=122833
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: Add mediastream/gstreamer in include directories list.
* GNUmakefile.list.am: Add DOMURLMediaStream files in the build.
2013-10-17 Andreas Kling <akling@apple.com>
Use PassRef for constructing StylePropertySets.
<https://webkit.org/b/122948>
Make functions that construct StylePropertySets return PassRef
instead of PassRefPtr. Since they never return null, this gets rid
of the extra branch in ~PassRefPtr everywhere.
Also StyleRule* classes now hold a Ref<StylePropertySet>, codifying
the fact that they always have a property set.
Reviewed by Antti Koivisto.
2013-10-17 Andreas Kling <akling@apple.com>
DataRef<T> should use Ref<T> internally.
<https://webkit.org/b/122953>
DataRef is used to hold RenderStyle substructures, and due to the
way style inheritance is implemented, DataRef will always point to
a live object.
Codify this by making DataRef::m_data a Ref, and making all methods
that create substructure objects return PassRef.
Reviewed by Antti Koivisto.
2013-10-17 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] Anonymous nested regions
https://bugs.webkit.org/show_bug.cgi?id=119135
Reviewed by David Hyatt.
Tests: fast/regions/table-caption-as-region.html
fast/regions/table-cell-as-region.html
This patch allows any non-replaced block to behave like a region. When an element is styled with the
-webkit-flow-from property, instead of making the renderer a RenderRegion, we let the original
renderer be created the same way and we add a region as an anonymous child for the renderer.
The anonymous block child, modeled by the new RenderNamedFlowFragment class, will be responsible
for the fragmentation of the named flow thread content.
A RenderBlockFlow object will keep a reference to a RenderNamedFlowFragment(RenderRegion) inside its
rare data structures.
Contains code contributed by Catalin Badea.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Element.cpp: Changed to take the anonymous region into account.
(WebCore::Element::renderRegion):
(WebCore::Element::webkitGetRegionFlowRanges):
* dom/WebKitNamedFlow.cpp: Ditto.
(WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
* inspector/InspectorOverlay.cpp: Take into account the new model for regions, with an anonymous region inside a block.
(WebCore::buildObjectForRegionHighlight):
(WebCore::buildObjectForElementInfo):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeShapeSize): For a render named flow fragment, there is no need to recompute the shape inside
we can take it from the parent.
(WebCore::RenderBlock::renderName): Make the block that contains a render named flow fragment (region) report RenderRegion.
A future patch that will change this will need to rebase a lot of tests.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::insertedIntoTree): Create the anonymous region if needed (change of -webkit-flow-from determines Node reattach).
(WebCore::RenderBlockFlow::willBeDestroyed): Clean-up the anonymous region if necessary.
(WebCore::RenderBlockFlow::clearFloats): Small style change to make sure that check-webkit-style reports 0 failures on RenderBlockFlow.cpp.
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::styleDidChange): Update the style of the anonymous region too.
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded): Helper function to create the anonymous region
and to add it as a child to the block.
(WebCore::RenderBlockFlow::canHaveChildren):
(WebCore::RenderBlockFlow::canHaveGeneratedChildren):
(WebCore::RenderBlockFlow::namedFlowFragmentNeedsUpdate): Force a layout of the anonymous region if the
parent block has percentage height (similar to RenderBlock::updateBlockChildDirtyBitsBeforeLayout)
(WebCore::RenderBlockFlow::updateLogicalHeight): Update the logical height of anonymous region when the height of parent is updated.
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
(WebCore::RenderBlockFlow::renderNamedFlowFragment):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor): Remove the direct creation of RenderRegion objects since they will be
created as anonymous children of block flow objects.
* rendering/RenderElement.h:
(WebCore::RenderElement::generatingElement): Account for anonymous region if necessary.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent): Take anonymous region into account
and use the anonymous region parent offset/border.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly): Check for style instead of isRenderRegion since
the parent of the anonymous region will get the layer.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::insertedIntoTree): Call RenderBlockFlow method instead.
* rendering/RenderNamedFlowFragment.cpp: Added. Model the behaviour of the anonymous region.
Has RenderRegion as a base class.
(WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::~RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::setStyleForNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::styleDidChange):
(WebCore::RenderNamedFlowFragment::shouldHaveAutoLogicalHeight):
(WebCore::RenderNamedFlowFragment::maxPageLogicalHeight):
* rendering/RenderNamedFlowFragment.h: Added.
(WebCore::RenderNamedFlowFragment::isPseudoElementRegion):
(WebCore::RenderNamedFlowFragment::renderName):
(WebCore::toRenderNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isRenderNamedFlowFragmentContainer):
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderNamedFlowFragment):
* rendering/RenderRegion.h:
* rendering/RenderTableCaption.cpp: Call RenderBlockFlow method instead.
(WebCore::RenderTableCaption::insertedIntoTree):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::writeRenderRegionList):
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::shapeSize):
* style/StyleResolveTree.cpp:
(WebCore::Style::elementInsideRegionNeedsRenderer):
2013-10-17 Krzysztof Czech <k.czech@samsung.com>
[EFL] Properly expose tables in accessibility
https://bugs.webkit.org/show_bug.cgi?id=122894
Reviewed by Chris Fleizach.
All tables should exposed as tables.
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
(WebCore::AccessibilityTable::addChildren):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored):
2013-10-17 Brendan Long <b.long@cablelabs.com>
[GStreamer] Too many arguments for format in WebKitWebAudioSourceGStreamer.cpp
https://bugs.webkit.org/show_bug.cgi?id=122932
Reviewed by Philippe Normand.
No new tests because this just fixes a build warning.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop): Add another %s for the second part of the pad name.
2013-10-16 Tim Horton <timothy_horton@apple.com>
Attempt to fix the Windows build after http://trac.webkit.org/changeset/157547.
The relevant conversion doesn't happen implicitly.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
2013-10-16 Tim Horton <timothy_horton@apple.com>
Attempt to fix the Windows build after http://trac.webkit.org/changeset/157547.
Apparently some Windows code uses setFrame and I missed it.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
2013-10-16 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Complete support for simple layer properties
https://bugs.webkit.org/show_bug.cgi?id=122933
Reviewed by Anders Carlsson.
No new tests, not yet testable.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setName):
Don't dump the CALayer pointer if we own a PlatformCALayerRemote.
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
Fix the visible tile wash (my fault!), and make it use setPosition and
setBounds instead of setFrame; while more convenient, it is the only
caller of setFrame, so we'll remove it.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::isRemote): Added.
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(nullActionsDictionary):
(toCAFilterType):
(PlatformCALayerMac::synchronouslyDisplayTilesInRect):
(PlatformCALayerMac::playerLayer):
Remove setFrame, fix some pointer sides.
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWin.h:
Remove setFrame.
2013-10-16 Andreas Kling <akling@apple.com>
Take RenderObjects out of the arena.
<https://webkit.org/b/122895>
Reviewed by Antti Koivisto.
Stop arena-allocating renderers so we can move forward on improving
render tree memory management. This will also allow rendering code
to take advantage of malloc optimizations.
Line boxes and BiDi runs remain in the arena for now.
2013-10-16 Roger Fong <roger_fong@apple.com>
[Windows] Speculative fix for test, media/video-canvas-drawing-output.html.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::createImageForTimeInRect):
2013-10-16 Tim Horton <timothy_horton@apple.com>
PlatformCALayer constructor should take layer type as an argument
https://bugs.webkit.org/show_bug.cgi?id=122915
Reviewed by Simon Fraser.
No new tests, just a minor refactoring.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::PlatformCALayer):
Add a LayerType argument.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::PlatformCALayerWin):
Use the new LayerType argument, and early-return in the case where we
are wrapping a custom PlatformLayer.
Drive-by un-indent the switch in the Mac version.
2013-10-15 Brady Eidson <beidson@apple.com>
Flesh out the DatabaseProcess (and launch it!)
https://bugs.webkit.org/show_bug.cgi?id=122884
Reviewed by Tim Horton.
* English.lproj/Localizable.strings: Add a localizable string.
* WebCore.xcodeproj/project.pbxproj: Export some more headers.
2013-10-16 Tim Horton <timothy_horton@apple.com>
RemoteLayerTree: Add support for more layer properties and transform layers
https://bugs.webkit.org/show_bug.cgi?id=122906
Reviewed by Anders Carlsson.
No new tests, this code is not yet testable.
* WebCore.exp.in:
Export some TextStream and TransformationMatrix stuff.
2013-10-16 KyungTae Kim <ktf.kim@samsung.com>
During editing, merge inline style with overriding other author styles
https://bugs.webkit.org/show_bug.cgi?id=122874
Reviewed by Ryosuke Niwa.
Inline styles need to override other author styles even on DoNotOverrideValues mode.
So, merge and override inline styles to other author styles before merging them to m_mutableStyle.
Test: editing/deleting/merge-div-with-inline-style.html
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
2013-10-16 peavo@outlook.com <peavo@outlook.com>
Emphasis marks has wrong color.
https://bugs.webkit.org/show_bug.cgi?id=122829
Reviewed by Antti Koivisto.
Tests: fast/text/text-emphasis.html.
fast/text/text-emphasis-expected.html.
Emphasis color should be set as fill color, not stroke color.
* rendering/TextPaintStyle.cpp:
(WebCore::updateGraphicsContext):
* rendering/TextPaintStyle.h:
2013-10-16 Antti Koivisto <antti@apple.com>
Move code for finding rendered character offset to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122892
Reviewed by Andreas Kling.
* rendering/RenderText.cpp:
(WebCore::RenderText::countRenderedCharacterOffsets):
(WebCore::RenderText::containsRenderedCharacterOffset):
Renamed for consistency.
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::countCharacterOffsets):
This used to be Position::renderedPosition.
2013-10-16 Andreas Kling <akling@apple.com>
RenderElement::removeChild() should take child as a reference.
<https://webkit.org/b/122888>
We can't remove a child without a child to remove.
Reviewed by Antti Koivisto.
2013-10-16 Antti Koivisto <antti@apple.com>
Move test for contained caret offset to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122887
Reviewed by Andreas Kling.
* dom/Position.cpp:
(WebCore::Position::renderedOffset):
(WebCore::Position::isCandidate):
Remove isRenderedText, call RenderText::containsCaretOffset instead.
(WebCore::Position::isRenderedCharacter):
(WebCore::Position::rendersInDifferentPosition):
* dom/Position.h:
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate):
* rendering/InlineTextBox.cpp:
* rendering/InlineTextBox.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::containsCharacterOffset):
(WebCore::RenderText::containsCaretOffset):
* rendering/RenderText.h:
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::containsOffset):
Combined implementations of Position::isRenderedCharacter and Position::isRenderedText.
* rendering/RenderTextLineBoxes.h:
Remove containsCaretOffset(), functionality is now in RenderTextLineBoxes::containsOffset.
2013-10-16 Andreas Kling <akling@apple.com>
RenderElement::isChildAllowed() should take const references.
<https://webkit.org/b/122870>
Reviewed by Anders Carlsson.
The isChildAllowed() functions expect non-null values to be passed,
so enforce this at compile-time.
Reordered some checks to do bit tests before virtual calls.
2013-10-15 Philippe Normand <pnormand@igalia.com>
[GStreamer] video info unset if upstream doesn't query allocation
https://bugs.webkit.org/show_bug.cgi?id=122834
Reviewed by Gustavo Noronha Silva.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRender): If the sink didn't process any allocation
query then use the configured source pad caps and don't rely on
invalid video info.
2013-10-16 Philippe Normand <pnormand@igalia.com>
[GStreamer] move Logging.h include to GStreamerUtilities.h
https://bugs.webkit.org/show_bug.cgi?id=122886
Reviewed by Gustavo Noronha Silva.
Include Logging.h from GStreamerUtilities.h so the modules using
the LOG_MEDIA macros don't need to bother, especially for Debug builds.
* platform/graphics/gstreamer/GStreamerUtilities.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2013-10-16 Mark Rowe <mrowe@apple.com>
Fix the build after r157478.
Rubber-stamped by Tim Horton.
Due to the way WebCore.exp.in is used, it can't be used to export a differing set of symbols
for different architectures. We often work around this by tweaking code slightly to avoid
needing to export different symbols. However, in this case the symbol name itself encodes an
architecture-specific detail and there's no clear way to avoid the requirement to export it.
To deal with this case we turn to ld's support for wildcards in the symbol export list.
* WebCore.exp.in: Use wildcards in place of the number that represents by how much "this"
should be adjusted when calling through the vtable thunk. Also sort the remainder of the file.
* make-export-file-generator: Don't attempt to verify symbol names that contain wildcard characters.
2013-10-15 Tim Horton <timothy_horton@apple.com>
Two more exports for 32-bit build fix.
The duality of CGFloat means that we use a different
version of getRGBA (and the cast operator)
on 32-bit systems.
* WebCore.exp.in:
2013-10-15 Tim Horton <timothy_horton@apple.com>
Another shot at a build fix; apparently these
do need exporting for some reason, but are different
on 32-bit.
* WebCore.exp.in:
2013-10-15 Alexey Proskuryakov <ap@apple.com>
GenerateIsReachable=ImplContext is confusing
https://bugs.webkit.org/show_bug.cgi?id=122864
Reviewed by Geoffrey Garen.
Renamed to ImplWebGLRenderingContext.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* html/canvas/EXTDrawBuffers.idl:
* html/canvas/EXTTextureFilterAnisotropic.idl:
* html/canvas/OESElementIndexUint.idl:
* html/canvas/OESStandardDerivatives.idl:
* html/canvas/OESTextureFloat.idl:
* html/canvas/OESTextureHalfFloat.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGLCompressedTextureATC.idl:
* html/canvas/WebGLCompressedTexturePVRTC.idl:
* html/canvas/WebGLCompressedTextureS3TC.idl:
* html/canvas/WebGLDebugRendererInfo.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLDepthTexture.idl:
* html/canvas/WebGLLoseContext.idl:
* WebCore.xcodeproj/project.pbxproj: While at it, added OESElementIndexUint.idl
to Xcode project.
2013-10-15 Tim Horton <timothy_horton@apple.com>
Unreviewed build fix; I don't know how to export.
This may not help.
* WebCore.exp.in:
2013-10-15 Dean Jackson <dino@apple.com>
Add ENABLE_WEB_ANIMATIONS flag
https://bugs.webkit.org/show_bug.cgi?id=122871
Reviewed by Tim Horton.
Eventually might be http://dev.w3.org/fxtf/web-animations/
but this is just engine-internal work at the moment.
* Configurations/FeatureDefines.xcconfig:
2013-10-15 Tim Horton <timothy_horton@apple.com>
Add a PlatformCALayer subclass that proxies its property changes across the process boundary
https://bugs.webkit.org/show_bug.cgi?id=122773
Reviewed by Anders Carlsson.
No new tests, the new drawing area is not yet testable.
* WebCore.exp.in:
Export lots of GraphicsLayerCA stuff so we can inherit from it in WebKit2.
* WebCore.xcodeproj/project.pbxproj:
Make PlatformCAFilters.h a private header.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::initialize):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayer::create):
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::initialize):
* platform/graphics/ca/GraphicsLayerCA.h:
Defer creation of the main PlatformCALayer until just after the constructor is finished
so that GraphicsLayerCA subclasses can successfully override createPlatformCALayer.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::platformLayer):
Make platformLayer virtual so that subclasses which don't have PlatformLayers can override.
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION: Crash in XMLDocumentParser::startElementNs
https://bugs.webkit.org/show_bug.cgi?id=122817
Reviewed by Darin Adler.
Exit early in startElementNs when listeners and handlers of synchronous events such as load event
removes the inserted node inside parserAppendChild.
Test: fast/parser/xhtml-synchronous-detach-crash.html
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
2013-10-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove old frontend localizedStrings.js
https://bugs.webkit.org/show_bug.cgi?id=122846
Reviewed by Timothy Hatcher.
* Configurations/WebCore.xcconfig:
* English.lproj/localizedStrings.js: Removed.
* WebCore.xcodeproj/project.pbxproj:
Remove the file and references to it. We no longer need to exclude
localizedString.js from some builds.
2013-10-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove Windows old front-end related code
https://bugs.webkit.org/show_bug.cgi?id=122845
Reviewed by Brent Fulgham.
* WebCore.vcxproj/copyWebCoreResourceFiles.cmd:
2013-10-15 Morten Stenshorne <mstensho@opera.com>
Add support for the column-fill property
https://bugs.webkit.org/show_bug.cgi?id=117693
Reviewed by David Hyatt.
This is only supported in the (new) region based multicol implementation.
With column-fill support, a lot of multicol tests needed an update.
The old implementation behaved as if column-fill were 'auto', but the
initial value is 'balance', so now we need to be explicit about that.
For auto-height tests it doesn't really matter - such multicols are always
balanced anyway.
Tests: fast/multicol/newmulticol/fixed-height-fill-auto.html
fast/multicol/newmulticol/fixed-height-fill-balance.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ColumnFill):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* rendering/RenderMultiColumnBlock.h:
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleMultiColData.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::operator==):
* rendering/style/StyleMultiColData.h:
2013-10-15 Andreas Kling <akling@apple.com>
Skip unnecessary null check in RenderText::textLength().
<https://webkit.org/b/122841>
Reviewed by Antti Koivisto.
RenderText will never have a null String in m_text, so textLength()
can grab at the StringImpl directly, avoiding a null check.
2013-10-15 Andreas Kling <akling@apple.com>
FontGenericFamilies should not be ref-counted.
<https://webkit.org/b/122835>
Reviewed by Anders Carlsson.
FontGenericFamilies is singly-owned by Settings.
2013-10-15 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Move RenderBlock::layoutShapeInsideInfo into RenderBlock.cpp
http://bugs.webkit.org/show_bug.cgi?id=122843
Reviewed by Oliver Hunt.
Historically, layoutShapeInsideInfo was a static function in RenderBlockLineLayout, then it has changed to be a member of RenderBlock,
but at that time it hasn't been moved to RenderBlock.cpp. This patch moves it into RenderBlock.cpp next to the Shapes functions. I removed
an unnecessary CSS_SHAPES #ifdef as well from RenderBlock.cpp.
No new tests, no behavior change.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::markShapeInsideDescendantsForLayout):
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlockLineLayout.cpp:
2013-10-15 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Build fails.
https://bugs.webkit.org/show_bug.cgi?id=122830
Reviewed by Brent Fulgham.
* platform/network/NetworkStorageSessionStub.cpp:
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Update to new return type.
2013-10-15 Andreas Kling <akling@apple.com>
FileIconLoader should not be ref-counted.
<https://webkit.org/b/122827>
FileIconLoader is singly-owned by FileInputType.
Reviewed by Antti Koivisto.
2013-10-15 Andreas Kling <akling@apple.com>
RenderText should cache RenderStyle in locals more.
<https://webkit.org/b/122823>
Reviewed by Antti Koivisto.
Now that fetching the RenderStyle has to go through the parent,
we should avoid unnecessary loads by caching style() in a local.
2013-10-15 Ryosuke Niwa <rniwa@webkit.org>
Remove redundant Document::getElementById
https://bugs.webkit.org/show_bug.cgi?id=122813
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/4e8f1c5316415614b84370c602beae4a1008299f
This function simply calls virtual TreeScope::getElementById and Document inherits from TreeScope.
* WebCore.exp.in:
* dom/Document.cpp:
* dom/Document.h:
2013-10-14 Santosh Mahto <santosh.ma@samsung.com>
in safari,the background-color of input[type="search"] can't work
https://bugs.webkit.org/show_bug.cgi?id=119967
Reviewed by Ryosuke Niwa.
When input type=search is styled with css background property then
it does not change the background-color of field. Its happening becasue
search field is not counted as styled control. Thus theme ignores the
css background property. With this patch search field is also counted as
styled control so background property reflects on search field.
Test: fast/forms/search/search-field-background-color.html
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isControlStyled):Now search field is also
a styled control.
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
EventPath::updateTouchLists traverses through EventPath thrice
https://bugs.webkit.org/show_bug.cgi?id=122804
Reviewed by Benjamin Poulain.
Instead of traversing through EventPath for each TouchList, traverse through TouchList for every EventContext.
This paves our way to have one-pass traversal over EventPath, and evetually to remove EventContext altogether.
This change should also improve the cache hit rate since all Touch objects tend to be allocated at the same time
but this performance improvement is probably not observable.
* dom/EventContext.h:
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedNodeResolver::EventRelatedNodeResolver): Added a new constructor that takes Touch and
and TouchListType. We need to store these two values in order to update EventContext later.
(WebCore::EventRelatedNodeResolver::touch): Added,
(WebCore::EventRelatedNodeResolver::touchListType): Added.
(WebCore::addRelatedNodeResolversForTouchList): Extracted from updateTouchListsInEventPath.
(WebCore::EventPath::updateTouchLists): Moved the loop over m_path here. Notice that the outer loop iterates
over m_path instead of touchList as done in updateTouchListsInEventPath. The inner loop goes through resolvers
and adds Touch objects each EventContext as needed.
2013-10-14 Alexey Proskuryakov <ap@apple.com>
Don't generate a wasteful isObservable check in isReachableFromOpaqueRoots
https://bugs.webkit.org/show_bug.cgi?id=122802
Reviewed by Mark Hahnenberg.
* bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): Don't.
* 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/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
Updated results.
2013-10-14 Samuel White <samuel_white@apple.com>
AX: fieldset should have GroupRole and legend should be description.
https://bugs.webkit.org/show_bug.cgi?id=122534
Reviewed by Chris Fleizach.
Changes fieldset to derive AXDescription from legend if one is available. Added
convenience method to AccessibilityObject to fetch element if available.
Test: accessibility/fieldset-element.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren):
(WebCore::AccessibilityNodeObject::alternativeText):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::element):
(WebCore::AccessibilityObject::isARIAHidden):
(WebCore::AccessibilityObject::isDOMHidden):
(WebCore::AccessibilityObject::defaultObjectInclusion):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isHidden):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::getAttribute):
(WebCore::AccessibilitySlider::valueForRange):
(WebCore::AccessibilitySlider::maxValueForRange):
(WebCore::AccessibilitySlider::minValueForRange):
(WebCore::AccessibilitySlider::setValue):
(WebCore::AccessibilitySlider::inputElement):
* accessibility/AccessibilitySlider.h:
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::legend):
* html/HTMLFieldSetElement.h:
2013-10-14 Roger Fong <roger_fong@apple.com>
Windows select element doesn't draw RTL properly.
https://bugs.webkit.org/show_bug.cgi?id=122785.
Reviewed by Brent Fulgham.
Covered by fast/text/international/pop-up-button-text-alignment-and-direction.html.
Problems include the popup items not drawing on the right hand side and
not respecting the direction or the directional override styling of the option.
The selected element (drawn in the actual select element) also doesn't respect
the style settings of the selected menu option.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::paint):
2013-10-14 Roger Fong <roger_fong@apple.com>
[Windows] Unreviewed build fix.
* WebCore.vcxproj/WebCoreCommon.props:
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
Crash in WebCore::BidiResolver<WebCore::InlineIterator, WebCore::BidiRun>::createBidiRunsForLine
https://bugs.webkit.org/show_bug.cgi?id=122776
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/aca89bc4d984705a1f94b623dae0ab03e239a248
Fix modification of whitespace endpoints to not assume it's operating on RenderTexts
During line layout, we use midpoints to identify RenderObjects, or parts of
RenderObjects, that don't need InlineBoxes, usually because of collapsed whitespace.
Prior to actually creating BidiRuns (the precursor to InlineBoxes), we use
checkMidpoints to fix up our lineMidpointState to handle the case where we start
ignoring spaces in our line, but don't stop until somewhere on the following line.
Previously, this function assumed that the final midpoint (called an endpoint)
was a RenderText, but this assumption is wrong if we have a beginning midpoint
created by shouldSkipWhitespaceAfterStartObject (which handles inlines and list
markers) and no endpoint on that line. In that case, we'd instead adjust the
position backwards on the beginning midpoint, which would cause us to fail to
create an InlineBox for the inline or list marker. In the new test added, this
would actually trigger a crash due to an assumption when visually re-ordering
BidiRuns that a non-empty line would actually contain at least one such run.
Test: fast/text/whitespace/whitespace-and-margin-wrap-after-list-marker-crash.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::checkMidpoints):
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
Assertion failure in Range::processContentsBetweenOffsets
https://bugs.webkit.org/show_bug.cgi?id=122777
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/c15de182774c7859c20d97126eb844ae97b792a4
This patch changes ASSERT statements for checking |endOffset| inbound in Range::processContentsBetweenOffsets()
to limit |endOffset|. This is necessary when DOMNodeRemovedFromDocument event handler splits text nodes,
Range::insertNode() on text node, in the range calling Range::deleteContents().
Test: fast/dom/Range/range-delete-contents-mutation-event-crash.html
* dom/Range.cpp:
(WebCore::Range::processContentsBetweenOffsets):
2013-10-14 Alexey Proskuryakov <ap@apple.com>
Add an empty window.crypto.webkitSubtle
https://bugs.webkit.org/show_bug.cgi?id=122778
Reviewed by Mark Hahnenberg.
Tests: security/crypto-subtle-gc-2.html
security/crypto-subtle-gc-3.html
security/crypto-subtle-gc.html
* DerivedSources.make: Process SubtleCrypto.idl.
* crypto: Added.
* WebCore.xcodeproj/project.pbxproj:
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* bindings/js/JSSubtleCryptoCustom.cpp: Added. Empty for now, but we'll certainly
need custom bindings code here.
* crypto/SubtleCrypto.cpp: Added.
(WebCore::SubtleCrypto::SubtleCrypto):
(WebCore::SubtleCrypto::document):
* crypto/SubtleCrypto.h: Added.
* crypto/SubtleCrypto.idl: Added.
* page/Crypto.cpp:
(WebCore::Crypto::subtle):
* page/Crypto.h:
* page/Crypto.idl:
2013-10-14 Nick Diego Yamane <nick.yamane@openbossa.org>
Remove GestureEvent leftovers from WebCore
<https://webkit.org/b/122780>
Reviewed by Anders Carlsson.
- Removed some remaining references to PlatformGestureEvent, supposed to
be removed by r157316
- TOUCH_ADJUSTMENT should be reworked after GestureEvent feature
removal
* page/EventHandler.cpp:
(WebCore::EventHandler::bestZoomableAreaForTouchPoint):
* page/EventHandler.h:
* platform/PlatformEvent.h:
* platform/ScrollAnimatorNone.cpp:
* platform/ScrollableArea.h:
2013-10-14 Nick Diego Yamane <nick.yamane@openbossa.org>
Build fix after r157366
http://bugs.webkit.org/show_bug.cgi?id=122783
When TOUCH_AJUSTMENT is enabled build fails due to some
refactors in TextRender functions.
Reviewed by Anders Carlsson.
* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::appendContextSubtargetsForNode):
2013-10-14 Alexandru Chiculita <achicu@adobe.com>
The content of the DOM panel for iframes is not updated until the "onload" event
https://bugs.webkit.org/show_bug.cgi?id=122653
Reviewed by Darin Adler.
Test: http/tests/inspector-protocol/loading-iframe-document-node.html
Renamed InspectorDOMAgent::loadEventFired to InspectorDOMAgent::didCommitLoad and moved the call site
from InspectorInstrumentation::loadEventFiredImpl to InspectorInstrumentation::didCommitLoadImpl.
This is to make sure that it will invalidate the content of the iframe as soon as the frame navigates
to a different page. This way the new node can be retrieved as soon as the page has some content, and
not just when the page is fully loaded.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didCommitLoad): Renamed from loadEventFired, as it is now called from
didCommitLoadImpl instead.
(WebCore::InspectorDOMAgent::frameDocumentUpdated): Updated comment to point to the new function name.
* inspector/InspectorDOMAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::loadEventFiredImpl): Removed call do InspectorDOMAgent.loadEventFired.
(WebCore::InspectorInstrumentation::didCommitLoadImpl): Added call to InspectorDOMAgent.didCommitLoad.
2013-10-14 Roger Fong <roger_fong@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=122774.
<rdar://problem/6138855>.
Reviewed by Brent Fulgham.
Add a field to keep track of hovered over index.
Use index to determine whether or not to use the existing selected index on the mouse down event.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::PopupMenuWin):
(WebCore::PopupMenuWin::show):
(WebCore::PopupMenuWin::wndProc):
* platform/win/PopupMenuWin.h:
2013-10-14 Tim Horton <timothy_horton@apple.com>
Virtualize PlatformCALayer
https://bugs.webkit.org/show_bug.cgi?id=122672
Reviewed by Anders Carlsson.
No new tests, just a refactoring.
* WebCore.exp.in:
setGeometryFlipped is on PlatformCALayerMac now.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Add PlatformCALayer.cpp, PlatformCALayerWin.h, and let VS do its
thing with some other files.
* WebCore.xcodeproj/project.pbxproj:
Add PlatformCALayer.cpp and PlatformCALayerMac.h.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::platformLayer):
Make a PlatformCALayerWin explicitly.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createPlatformCALayer):
Added. Decide whether to make a PlatformCALayer{Mac, Win} based on the platform.
Later, we will decide between other subclasses based on other things.
(WebCore::GraphicsLayerCA::filtersCanBeComposited):
Do the same thing for filtersCanBeComposited.
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToMedia):
(WebCore::GraphicsLayerCA::setContentsToCanvas):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
Use createPlatformCALayer instead of PlatformCALayer::create.
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
For now, use the PlatformCALayerMac version of filtersCanBeComposited,
since this code is heavily tied to having CALayers in the Web process.
* platform/graphics/ca/GraphicsLayerCA.h:
Include PlatformCALayer.h here so we can get the LayerType enum.
(NOTE-to-be-removed: if there's a better way to do this, I'm open to
suggestions; I couldn't puzzle out nested 'enum class' stuff).
Add the createPlatformCALayers.
* platform/graphics/ca/PlatformCAAnimation.h:
Friend the subclasses too.
* platform/graphics/ca/PlatformCALayer.cpp: Added.
(WebCore::PlatformCALayer::~PlatformCALayer):
Pull the shared part of the PlatformCALayer destructor out.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::platformLayer):
(WebCore::PlatformCALayer::setOwner):
(WebCore::PlatformCALayer::PlatformCALayer):
Virtualize all the things. Move platform specific members to their new subclasses.
* platform/graphics/ca/mac/PlatformCALayerMac.h: Added.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
Move the PLATFORM(MAC) implementations from PlatformCALayer to PlatformCALayerMac.
(PlatformCALayer::platformCALayer):
The platformCALayer lookup function is static on PlatformCALayer, so it can't
be moved to the subclasses. It might be a good idea in the future to move towards
a platform-independent mechanism for looking up PlatformCALayers from PlatformLayers,
and to avoid needing to do this as often as we do now.
* platform/graphics/ca/win/CACFLayerTreeHost.cpp:
(WebCore::CACFLayerTreeHost::CACFLayerTreeHost):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
Move the PLATFORM(WIN) implementations from PlatformCALayer to PlatformCALayerWin.
(PlatformCALayerWin::create):
(PlatformCALayer::platformCALayer):
* platform/graphics/ca/win/PlatformCALayerWin.h: Added.
* platform/graphics/win/GraphicsContext3DWin.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::createLayerForMovie):
Include PlatformCALayerWin.h and explicitly make PlatformCALayerWins here.
2013-10-14 Hugo Parente Lima <hugo.lima@openbossa.org>
[cmake] MediaControlsApple is used only by Efl port and is on CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=122772
Reviewed by Anders Carlsson.
* CMakeLists.txt: Removed MediaControlsApple.cpp
* PlatformEfl.cmake: Added MediaControlsApple.cpp
2013-10-14 Alexey Proskuryakov <ap@apple.com>
window.crypto doesn't preserve custom properties
https://bugs.webkit.org/show_bug.cgi?id=122770
Reviewed by Mark Hahnenberg.
Test: security/crypto-gc.html
Generate isReachableFromOpaqueRoots that makes Crypto live as long as the document
lives (because that's when it's observable through window object).
* page/Crypto.cpp:
(WebCore::Crypto::Crypto):
(WebCore::Crypto::~Crypto):
(WebCore::Crypto::document):
* page/Crypto.h:
(WebCore::Crypto::create):
Made Crypto a ContextDestructionObserver, so that it can report its document to bindings.
Removed ScriptWrappable, because it seems to have served no purpose in this class.
* page/Crypto.idl: Added GenerateIsReachable. Removed ImplementationLacksVTable,
because the class now has a vtable, and can be checked for bindings integrity.
* page/DOMWindow.cpp: (WebCore::DOMWindow::crypto): Pass a document when creating
crypto.
2013-10-14 Andreas Kling <akling@apple.com>
CTTE: NamedNodeMap always has a corresponding Element.
<https://webkit.org/b/122769>
Reviewed by Anders Carlsson.
Made NamedNodeMap::m_element a reference and remove an assertion
that it's never null.
2013-10-14 Andreas Kling <akling@apple.com>
REGRESSION(r157408): Crashes in RenderFullScreen::wrapRenderer().
Unreviewed crash fix for these two tests:
- fullscreen/full-screen-restrictions.html
- fullscreen/empty-anonymous-block-continuation-crash.html
* rendering/RenderFullScreen.cpp:
(RenderFullScreen::wrapRenderer):
Get the RenderArena from Document like we did before this patch.
2013-10-14 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Image valued shape-outside shapes should update the layout after the image has been loaded
https://bugs.webkit.org/show_bug.cgi?id=122340
Reviewed by Simon Fraser.
Ensure that the an image-valued shape-outside layout is updated after the image has
been loaded.
Test: http/tests/css/css-image-valued-shape.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::imageChanged): Added code for the shape-outside case.
(WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Ditto.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::~RenderElement): Ditto.
(WebCore::RenderElement::setStyle): Ditto.
2013-10-14 Andreas Kling <akling@apple.com>
Remove some silly null checks in Element/NamedNodeMap.
<https://webkit.org/b/122767>
Reviewed by Darin Adler.
Make shouldIgnoreAttributeCase() take a const Element&, exposing
some unnecessary null checks.
2013-10-14 Brent Fulgham <bfulgham@apple.com>
[Win] Build fix after r122737.
* dom/Node.h: Add explicit WebCore namespace to macro definition to work around
Visual Studio bug.
2013-10-14 Andreas Kling <akling@apple.com>
Pass Document directly to anonymous renderer constructors.
<https://webkit.org/b/122752>
Reviewed by Antti Koivisto.
Added separate constructors for creating anonymous renderers that
take a Document& instead of a null Element*/Text*.
Removed setDocumentForAnonymous() and all createAnonymous() helpers.
...and RenderObject::m_node is now a Node&, wohoo!
2013-10-13 Sam Weinig <sam@webkit.org>
CTTE: Add more node conversion helpers
https://bugs.webkit.org/show_bug.cgi?id=122737
Reviewed by Darin Adler.
- Factor NODE_TYPE_CASTS into TYPE_CASTS_BASE(ToClassName, FromClassName)
to allow for DOCUMENT_TYPE_CASTS.
- Replace more static_casts<>.
2013-10-14 Zan Dobersek <zdobersek@igalia.com>
Reintroduce PassRefPtr<Event> copy in ScopedEventQueue::dispatchEvent
https://bugs.webkit.org/show_bug.cgi?id=122742
Reviewed by Alexey Proskuryakov.
This is a follow-up to r157219 which introduced a workaround for the GCC's quirky behavior that
was resulting in crashes due to the PassRefPtr<Event> object passed to EventDispatcher::dispatchEvent
being copied and nullified first before retrieving the EventTarget of the Event object wrapped in that
PassRefPtr.
The implementation is now adjusted to first retrieve the pointer to the Event's EventTarget and store
it in a local variable. That variable is then passed as the first parameter to EventDispatcher::dispatchEvent,
and the PassRefPtr<Event> passed directly as the second parameter. Previously the pointer of that PassRefPtr
object was passed in, with a new PassRefPtr being created which would increase the reference count of the
ref-counted object. Passing in the original PassRefPtr avoids the unnecessary reference count increase by creating
a copy. That still nullifies the original PassRefPtr, but that's not a problem anymore.
* dom/ScopedEventQueue.cpp:
(WebCore::ScopedEventQueue::dispatchEvent):
2013-10-14 Bear Travis <betravis@adobe.com>
[CSS Shapes] Shape-Margin should be animatable
https://bugs.webkit.org/show_bug.cgi?id=122524
Reviewed by Darin Adler.
Mark content for relayout after shape-margin changes, and add shape-margin
to the list of animatable properties.
Tests: fast/shapes/shape-outside-floats/shape-outside-dynamic-shape-margin.html
fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Add
shape-margin to the map of animatable CSS properties.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::updateShapeOutsideInfoAfterStyleChange): Compare shape-margins,
and mark dependent content for relayout if they have changed.
2013-10-14 Arvid Nilsson <anilsson@blackberry.com>
Don't crash after OpenGL robustness reset
https://bugs.webkit.org/show_bug.cgi?id=122750
Reviewed by George Staikos.
JIRA 517132.
Just log the incident and pretend like nothing happened.
No new tests, we don't have repeatable steps to reproduce a robustness
reset.
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::makeContextCurrent):
2013-10-14 Krzysztof Czech <k.czech@samsung.com>
[EFL] Buildfix after r157393
https://bugs.webkit.org/show_bug.cgi?id=122749
Reviewed by Andreas Kling.
Buildfix with error enumeration value 'CSS_FR' not handled in switch.
* css/CSSCalculationValue.cpp:
(WebCore::hasDoubleValue):
2013-10-14 Krzysztof Czech <k.czech@samsung.com>
[EFL] Present replaced objects with 0xFFFC character
https://bugs.webkit.org/show_bug.cgi?id=122744
Reviewed by Mario Sanchez Prada.
Replaced elements should be emitted in GTK/EFL and
marked their presence with the replacement character.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
2013-09-16 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Implement support for <flex>
https://bugs.webkit.org/show_bug.cgi?id=115362
Reviewed by Andreas Kling.
From Blink r149134, r149480, r149532, r150287 and r156127 by <jchaffraix@chromium.org>
From Blink r157820 by <svillar@igalia.com>
Added support for flexible lengths ('fr' unit) in CSS Grid Layout
code. This requires the addition of GridLength class to
encapsulate the knowledge of <flex> to the grid layout code.
Also updated the algorithm that computes the layout. It increases
the value of 1fr based on the grid tracks' usedBreath to fraction
ratio (called normalizedFractionValue). This enables increasing
the fraction value while updating the available space to account
for processed grid tracks. The algorithm stops when we run out of
grid tracks or available space (one grid item has an intrinsic
size too big). This matches the specs to the letter for the known
available space case (both the unknown case and the interaction
with 'span' are left out of this patch).
Tests: fast/css-grid-layout/flex-and-minmax-content-resolution-columns.html
fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html
fast/css-grid-layout/flex-content-resolution-columns.html
fast/css-grid-layout/flex-content-resolution-rows.html
* GNUmakefile.list.am: Added GridLength.h to the build system.
* Target.pri: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth): Replace Length by GridLength.
* css/CSSGrammar.y.in: Added FR support.
* css/CSSParser.cpp: Ditto.
(WebCore::CSSParser::parseGridBreadth):
(WebCore::CSSParser::detectNumberToken):
* css/CSSParserValues.cpp: Added FR support.
(WebCore::CSSParserValue::createCSSValue):
* css/CSSParserValues.h:
(WebCore::CSSParserString::operator[]):
(WebCore::CSSParserString::equalIgnoringCase):
* css/CSSPrimitiveValue.cpp: Added FR support.
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::customCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):
* css/CSSPrimitiveValue.h: Added a couple of missing const.
(WebCore::CSSPrimitiveValue::isFlex):
* css/StyleResolver.cpp: Added FR support.
(WebCore::createGridTrackBreadth):
(WebCore::createGridTrackSize):
* rendering/RenderGrid.cpp:
(WebCore::GridTrackForNormalization::GridTrackForNormalization):
New helper struct to ease the computation of track breadths with
flexible lengths.
(WebCore::GridTrackForNormalization::operator=):
(WebCore::RenderGrid::computePreferredTrackWidth): Replaced Length by GridLength.
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Grow grid lines
having a fraction as the MaxTrackSizingFunction.
(WebCore::RenderGrid::computeUsedBreadthOfMinLength): Replaced Length by GridLength.
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength): Ditto.
(WebCore::sortByGridNormalizedFlexValue):
(WebCore::RenderGrid::computeNormalizedFractionBreadth): Increase
the fraction value while updating the available space to account
for processed grid tracks.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::distributeSpaceToTracks): Never shrink track sizes.
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
* rendering/RenderGrid.h:
* rendering/style/GridLength.h: Added.
(WebCore::GridLength::GridLength):
(WebCore::GridLength::isLength):
(WebCore::GridLength::isFlex):
(WebCore::GridLength::length):
(WebCore::GridLength::flex):
(WebCore::GridLength::setFlex):
(WebCore::GridLength::operator==):
* rendering/style/GridTrackSize.h: Replaced Length by GridLength.
(WebCore::GridTrackSize::length):
(WebCore::GridTrackSize::setLength):
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
(WebCore::GridTrackSize::setMinMax):
(WebCore::GridTrackSize::hasMinOrMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMinOrMaxContentMaxTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMaxTrackBreadth):
2013-10-14 peavo@outlook.com <peavo@outlook.com>
Broken text rendering when input field has selection.
https://bugs.webkit.org/show_bug.cgi?id=122716
Reviewed by Antti Koivisto.
Tests: fast/text/text-rendering-with-input-selection.html.
fast/text/text-rendering-with-input-selection-expected.html.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Check that text has selection.
2013-10-14 Zalan Bujtas <zalan@apple.com>
Unexpected word wrapping for wrapped content then raw content.
https://bugs.webkit.org/show_bug.cgi?id=121130
Reviewed by Antti Koivisto.
When deciding whether a line is considered empty, we need to check if the current
object is fully responsible for the currently uncommitted width. It helps differentiating
<span></span><span>abcd</span> from <span>a</span><span>bcd</span>, where in the first
case when we hit the second <span> the line is still considered empty, as opposed to the
second example.
Test: fast/css/unexpected-word-wrapping-with-non-empty-spans.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineBreaker::nextSegmentBreak):
2013-10-14 Andreas Kling <akling@apple.com>
Be more efficient about passing RenderStyle to attachRenderTree().
<https://webkit.org/b/122743>
Reviewed by Antti Koivisto.
Have attachRenderTree() and createRendererTreeIfNeeded() pass the
RenderStyle in a PassRefPtr to avoid churning the ref count.
2013-10-14 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] 2 span positions are not resolved correctly
https://bugs.webkit.org/show_bug.cgi?id=119717
Reviewed by Andreas Kling.
From Blink r155397 by <jchaffraix@chromium.org>
Test: fast/css-grid-layout/grid-item-bad-resolution-double-span.html
Two opposite 'span' or 'auto' positions should be resolved using
the auto placement algorithm. We were only checking for the 'auto'
case. This also covers the case of other positions that, according
to the spec, should be treated as 'auto'.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
2013-10-13 Andreas Kling <akling@apple.com>
Use RenderElement instead of RenderObject in more places.
<https://webkit.org/b/122734>
Reviewed by Antti Koivisto.
Convert some sites to use RenderElement (or type inference) instead
of RenderObject for less branchy code.
2013-10-13 Darin Adler <darin@apple.com>
Deprecate or remove deleteAllValues functions; there are only a few call sites left
https://bugs.webkit.org/show_bug.cgi?id=122738
Reviewed by Anders Carlsson.
* platform/blackberry/CookieMap.cpp:
(WebCore::CookieMap::deleteAllCookiesAndDomains):
* platform/network/blackberry/rss/RSSParserBase.cpp:
(WebCore::RSSFeed::clear):
* platform/win/WCDataObject.cpp:
(WebCore::WCDataObject::~WCDataObject):
Renamed deleteAllValues to deprecatedDeleteAllValues.
2013-10-13 Sam Weinig <sam@webkit.org>
Merge NODE_TYPE_CASTS and ELEMENT_TYPE_CASTS
https://bugs.webkit.org/show_bug.cgi?id=122735
Reviewed by Antti Koivisto.
NODE_TYPE_CASTS and ELEMENT_TYPE_CASTS are identical. Let them become one
with one another.
2013-10-13 Andreas Kling <akling@apple.com>
Uncrashify Document::head() too. (Why am I even awake?)
2013-10-13 Andreas Kling <akling@apple.com>
REGRESSION(r157381): Make Document::body() crash less when there is no documentElement.
Unreviewed.
2013-10-13 Darin Adler <darin@apple.com>
Rewrite Document::body and Document::head in modern style, way clearer and shorter
https://bugs.webkit.org/show_bug.cgi?id=122717
Reviewed by Andreas Kling.
* dom/Document.cpp:
(WebCore::Document::body): Use iterator to make this way easier to read.
(WebCore::Document::head): Ditto.
* html/HTMLTagNames.in: Added generateTypeHelpers for body and head.
== Rolled over to ChangeLog-2013-10-13 ==