WebKit-https.git
6 years agoCodeBlock refactoring broke profile dumping
fpizlo@apple.com [Sun, 1 Sep 2013 02:02:47 +0000 (02:02 +0000)]
CodeBlock refactoring broke profile dumping
https://bugs.webkit.org/show_bug.cgi?id=120551

Reviewed by Michael Saboff.

Fix the bug, and did a big clean-up of how Executable returns CodeBlocks. A lot
of the problems we have with code like CodeBlock::baselineVersion() is that we
were trying *way too hard* to side-step the fact that Executable can't return a
CodeBlock*. Previously it could only return CodeBlock&, so if it didn't have a
CodeBlock yet, you were screwed. And if you didn't know, or weren't sure, if it
did have a CodeBlock, you were really going to have a bad time. Also it really
bugs me that the methods were called generatedBytecode(). In all other contexts
if you ask for a CodeBlock, then method to call is codeBlock(). So I made all
of those changes.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::baselineVersion):
(JSC::ProgramCodeBlock::replacement):
(JSC::EvalCodeBlock::replacement):
(JSC::FunctionCodeBlock::replacement):
(JSC::CodeBlock::globalObjectFor):
* bytecode/CodeOrigin.cpp:
(JSC::InlineCallFrame::hash):
* dfg/DFGOperations.cpp:
* interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
* jit/JITCode.h:
(JSC::JITCode::isExecutableScript):
(JSC::JITCode::isLowerTier):
* jit/JITStubs.cpp:
(JSC::lazyLinkFor):
(JSC::DEFINE_STUB_FUNCTION):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::traceFunctionPrologue):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setUpCall):
* runtime/ArrayPrototype.cpp:
(JSC::isNumericCompareFunction):
* runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::arityCheckFor):
* runtime/Executable.cpp:
(JSC::ScriptExecutable::installCode):
* runtime/Executable.h:
(JSC::EvalExecutable::codeBlock):
(JSC::ProgramExecutable::codeBlock):
(JSC::FunctionExecutable::eitherCodeBlock):
(JSC::FunctionExecutable::codeBlockForCall):
(JSC::FunctionExecutable::codeBlockForConstruct):
(JSC::FunctionExecutable::codeBlockFor):
* runtime/FunctionExecutableDump.cpp:
(JSC::FunctionExecutableDump::dump):

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

6 years agowarning: unused parameter point and area in EwkView.cpp:1390
commit-queue@webkit.org [Sun, 1 Sep 2013 00:21:16 +0000 (00:21 +0000)]
warning: unused parameter point and area in EwkView.cpp:1390
https://bugs.webkit.org/show_bug.cgi?id=120545

Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-08-31
Reviewed by Darin Adler.

* UIProcess/API/efl/EwkView.cpp:
(EwkView::didFindZoomableArea): Added UNUSED_PARAM.

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

6 years agoFix typo in r154931 that caused assertions in continuation tests.
akling@apple.com [Sat, 31 Aug 2013 21:56:25 +0000 (21:56 +0000)]
Fix typo in r154931 that caused assertions in continuation tests.

* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint):

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

6 years agoXMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
rwlbuis@webkit.org [Sat, 31 Aug 2013 21:05:58 +0000 (21:05 +0000)]
XMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
https://bugs.webkit.org/show_bug.cgi?id=120490

Reviewed by Ryosuke Niwa.

Source/WebCore:

Retain the key of the namespaces map by using AtomicString as key instead of AtomicStringImpl*.

* editing/MarkupAccumulator.h:

LayoutTests:

Unskip these previously failing tests.

* TestExpectations:

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

6 years agoInlineBox::renderer() and pals should return references.
akling@apple.com [Sat, 31 Aug 2013 18:34:23 +0000 (18:34 +0000)]
InlineBox::renderer() and pals should return references.
<https://webkit.org/b/120562>

Reviewed by Antti Koivisto.

Make InlineBox::renderer() and its friends return references instead of pointers.
Every box always has a renderer, so this clears up any ambiguity, and a number of
weird assertions in SVG code.

Made InlineBox::m_renderer private so subclasses have to go through renderer().
The next step will be to replace renderer() with tightly-typed accessors where
applicable (e.g InlineTextBox's renderer is always a RenderText.)

Also added reference versions of these RenderObject casts:

    - toRenderBox()
    - toRenderBlock()
    - toRenderInline()
    - toRenderSVGInlineText()

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

6 years agoRemove unused variable in LayerTreeHost
commit-queue@webkit.org [Sat, 31 Aug 2013 15:18:34 +0000 (15:18 +0000)]
Remove unused variable in LayerTreeHost
https://bugs.webkit.org/show_bug.cgi?id=118950

Patch by Jae Hyun Park <jae.park@company100.net> on 2013-08-31
Reviewed by Anders Carlsson.

m_waitingForUIProcess has been renamed to m_isWaitingForRenderer as of
r152183, and it is a private variable in CoordinatedLayerTreeHost. Thus,
we don't need m_waitingForUIProcess in LayerTreeHost.

* WebProcess/WebPage/LayerTreeHost.h:

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

6 years agoPostAttachCallbackDisabler should take a ContainerNode&.
akling@apple.com [Sat, 31 Aug 2013 14:14:23 +0000 (14:14 +0000)]
PostAttachCallbackDisabler should take a ContainerNode&.
<https://webkit.org/b/120560>

Reviewed by Antti Koivisto.

Let PostAttachCallbackDisabler take a reference and remove an ugly assertion.

* dom/ContainerNode.h:
(WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
(WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachRenderTree):

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

6 years agoRename ChildIterator -> ElementChildIterator, DescendantIterator -> ElementDescendant...
antti@apple.com [Sat, 31 Aug 2013 14:12:00 +0000 (14:12 +0000)]
Rename ChildIterator -> ElementChildIterator, DescendantIterator -> ElementDescendantIterator
https://bugs.webkit.org/show_bug.cgi?id=120561

Reviewed by Andreas Kling.

New names are more descriptive and consistent. They also put related iterator files close by in file lists.
The types are always used with auto so longer names don't make them any clumsier to use.

For simplicity included all Element iterator types from ElementIterator.h so it is the only file that has
to be included by the clients.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityTable.cpp:
* css/CSSFontFaceSource.cpp:
* dom/ChildIterator.h: Removed.
* dom/DescendantIterator.h: Removed.
* dom/Document.cpp:
* dom/ElementChildIterator.h: Copied from Source/WebCore/dom/ChildIterator.h.
(WebCore::::ElementChildIterator):
(WebCore::::operator):
(WebCore::::ElementChildConstIterator):
(WebCore::::ElementChildIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementChildConstIteratorAdapter):
(WebCore::elementChildren):
(WebCore::childrenOfType):
* dom/ElementDescendantIterator.h: Copied from Source/WebCore/dom/DescendantIterator.h.
(WebCore::::ElementDescendantIterator):
(WebCore::::operator):
(WebCore::::ElementDescendantConstIterator):
(WebCore::::ElementDescendantIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementDescendantConstIteratorAdapter):
(WebCore::elementDescendants):
(WebCore::descendantsOfType):
* dom/ElementIterator.h:
* dom/Node.cpp:
* dom/TreeScope.cpp:
* editing/ApplyStyleCommand.cpp:
* editing/markup.cpp:
* html/HTMLAppletElement.cpp:
* html/HTMLFieldSetElement.cpp:
* html/HTMLLabelElement.cpp:
* html/HTMLMapElement.cpp:
* html/HTMLMediaElement.cpp:
* html/HTMLObjectElement.cpp:
* loader/PlaceholderDocument.cpp:
* rendering/FilterEffectRenderer.cpp:
* style/StyleResolveTree.cpp:
* svg/SVGElement.cpp:
* svg/SVGSVGElement.cpp:
* svg/animation/SMILTimeContainer.cpp:
* svg/graphics/SVGImage.cpp:

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

6 years agoDon't do document style recalc unless there's a RenderView.
akling@apple.com [Sat, 31 Aug 2013 14:07:05 +0000 (14:07 +0000)]
Don't do document style recalc unless there's a RenderView.
<https://webkit.org/b/120558>

Reviewed by Antti Koivisto.

There's no sense in computing style for a Document that has no RenderView.
Checking this before continuing also lets us know that there's a Frame & FrameView
present, simplifying some things later on.

* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):

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

6 years agoAdd common base for element iterators
antti@apple.com [Sat, 31 Aug 2013 13:04:33 +0000 (13:04 +0000)]
Add common base for element iterators
https://bugs.webkit.org/show_bug.cgi?id=120557

Reviewed by Andreas Kling.

Add ElementIterator and use it as the base for child and descendant iterators. The only difference is the definition of operator++.

Also renamed DescendantIteratorAssertions to ElementIteratorAssertions.

* GNUmakefile.list.am:
* Target.pri:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/ChildIterator.h:
(WebCore::::ChildIterator):
(WebCore::::operator):
(WebCore::::ChildConstIterator):
(WebCore::::begin):
(WebCore::::end):
* dom/DescendantIterator.h:
(WebCore::::DescendantIterator):
(WebCore::::operator):
(WebCore::::DescendantConstIterator):
* dom/DescendantIteratorAssertions.h: Removed.
* dom/ElementIterator.h: Added.
(WebCore::::ElementIterator):
(WebCore::::traverseNext):
(WebCore::::traversePrevious):
(WebCore::::traverseNextSibling):
(WebCore::::traversePreviousSibling):
(WebCore::::operator):
(WebCore::=):
(WebCore::::ElementConstIterator):
* dom/ElementIteratorAssertions.h: Copied from Source/WebCore/dom/DescendantIteratorAssertions.h.
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
(WebCore::ElementIteratorAssertions::domTreeHasMutated):
(WebCore::ElementIteratorAssertions::dropEventDispatchAssertion):

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

6 years agoFix the Mac results.
simon.fraser@apple.com [Sat, 31 Aug 2013 02:16:42 +0000 (02:16 +0000)]
Fix the Mac results.

* platform/mac/compositing/video/video-object-fit-expected.txt:

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

6 years ago[Windows] Build fix after r154921.
bfulgham@apple.com [Sat, 31 Aug 2013 01:10:45 +0000 (01:10 +0000)]
[Windows] Build fix after r154921.

AVFoundationCF uses an internal wrapper object around the C-API. The call point
in the original patch was inside the wrapper, which did not (yet) provide
a method implementation.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
(WebCore::AVFWrapper::updateVideoLayerGravity):

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

6 years ago[Windows] Unreviewed build fix.
bfulgham@apple.com [Sat, 31 Aug 2013 00:24:54 +0000 (00:24 +0000)]
[Windows] Unreviewed build fix.

* win/AssembleBuildLogs/AssembleLogs.cmd: Make sure WebInspectorUI build output is reported
from the build machines.

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

6 years agoSource/WebInspectorUI: [Windows] Correct windows build. Get rid of unnecessary pre...
bfulgham@apple.com [Sat, 31 Aug 2013 00:22:48 +0000 (00:22 +0000)]
Source/WebInspectorUI: [Windows] Correct windows build. Get rid of unnecessary pre-build step. We don't build anything
in this project, just copy some files into the WebKit resource folder. This was fooling the
build system into thinking something failed, resulting in a build error.

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove reference to WebInspectorUIPreBuild.cmd
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
* WebInspectorUI.vcxproj/WebInspectorUIPreBuild.cmd: Removed.

Source/WebKit: [Windows] Unreviewed build correction.
Update project dependencies so that build logs on machines will include output from the
WebInspectorUI project.

* WebKit.vcxproj/WebKit.sln:

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

6 years agoVideo with object-fit: cover can spill outside the box
simon.fraser@apple.com [Sat, 31 Aug 2013 00:14:41 +0000 (00:14 +0000)]
Video with object-fit: cover can spill outside the box
https://bugs.webkit.org/show_bug.cgi?id=52103

Source/WebCore:

Reviewed by Dean Jackson.

object-fit on renderers which use accelerated compositing needs special
treatment.

For directly composited images, and video, GraphicsLayer needs to know
both the size of the content layer, and also a rectangle at which this
should be clipped (because, for the first time, that content layer can be
larger than the renderer's content box).

AVFoundation would always aspect-ratio fit video by default, so plumb
through MediaPlayer a way to override that when object-fit requires it.

Added a LAYER_TREE_INCLUDES_CONTENT_LAYERS enum to the layerTreeAsText()
flags so we can dump content layers for testing.

Tests: compositing/images/direct-image-object-fit.html
       compositing/reflections/direct-image-object-fit-reflected.html
       compositing/video/video-object-fit.html

* page/Frame.h: New LayerTreeFlagsIncludeContentLayers flag.
* platform/graphics/GraphicsLayer.h: New flag.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::shouldMaintainAspectRatio):
(WebCore::MediaPlayer::setShouldMaintainAspectRatio):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::shouldMaintainAspectRatio):
(WebCore::MediaPlayerPrivateInterface::setShouldMaintainAspectRatio):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::setShouldMaintainAspectRatio):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
(WebCore::AVFWrapper::platformLayer):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
* platform/graphics/ca/GraphicsLayerCA.cpp: We need a new m_contentsClippingLayer to
clip the contents layer, which only gets created when necessary. It has to be cloned
for reflections.
(WebCore::GraphicsLayerCA::willBeDestroyed):
(WebCore::GraphicsLayerCA::setContentsRect):
(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateSublayerList):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsMediaLayer):
(WebCore::GraphicsLayerCA::updateContentsCanvasLayer):
(WebCore::GraphicsLayerCA::updateContentsColorLayer):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
(WebCore::GraphicsLayerCA::ensureCloneLayers):
(WebCore::GraphicsLayerCA::removeCloneLayers):
(WebCore::GraphicsLayerCA::fetchCloneLayers):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp: Need to push both the contentsRect and
the contentsClippingRect down to the GraphicsLayers. Most of the time they
are the same, unless object-fit makes them different.
(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::RenderLayerBacking::updateImageContents):
(WebCore::RenderLayerBacking::contentsBox):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText):
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::updatePlayer):
* testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Reviewed by Dean Jackson.

Test cases for directly composited image with object-fit, the same with
reflections, and one with video.

Tests dump content GraphicsLayers, so have platform-specific results.

* compositing/images/direct-image-object-fit-expected.txt: Added.
* compositing/images/direct-image-object-fit.html: Added.
* compositing/reflections/direct-image-object-fit-reflected-expected.txt: Added.
* compositing/reflections/direct-image-object-fit-reflected.html: Added.
* compositing/video/video-object-fit-expected.txt: Added.
* compositing/video/video-object-fit.html: Added.
* media/video-object-fit-change.html: Fixed
* platform/mac/TestExpectations: Unskip two tests.
* platform/mac/compositing/images/direct-image-object-fit-expected.txt: Added.
* platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt: Added.
* platform/mac/compositing/video/video-object-fit-expected.txt: Added.

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

6 years agoFix expected output
oliver@apple.com [Fri, 30 Aug 2013 23:57:04 +0000 (23:57 +0000)]
Fix expected output

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

6 years agoSource/WebInspectorUI: [Windows] Build correction after dependency change.
bfulgham@apple.com [Fri, 30 Aug 2013 23:45:45 +0000 (23:45 +0000)]
Source/WebInspectorUI: [Windows] Build correction after dependency change.

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove circular dependency on
WebKit, and control this at the solution level. The prior change broke external
builders.

Source/WebKit: [Windows] Unreviewed build fix after r154917

* WebKit.vcxproj/WebKit.sln: Establish build dependency from WebInspectorUI against
WebKit. Remove reverse dependency.

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

6 years agohttp://webkit.org/b/120490
dino@apple.com [Fri, 30 Aug 2013 23:34:48 +0000 (23:34 +0000)]
http://webkit.org/b/120490
Skip some XML namespace serialization tests temporarily.

* TestExpectations: Skip these on debug builds:
fast/dom/XMLSerializer-attribute-namespace-prefix-conflicts.html
fast/dom/XMLSerializer-same-prefix-different-namespaces-conflict.html
fast/dom/XMLSerializer-setAttributeNS-namespace-no-prefix.html
svg/custom/xlink-prefix-generation-in-attributes.html

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

6 years ago[Windows] Unreviewed build gardening.
bfulgham@apple.com [Fri, 30 Aug 2013 23:13:57 +0000 (23:13 +0000)]
[Windows] Unreviewed build gardening.

* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Adjust build dependencies so
that WebInspectorUI 'builds' after WebKit so that the expected resource directory
structure is always in place.

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

6 years agoImplement ES6 Set class
oliver@apple.com [Fri, 30 Aug 2013 22:55:25 +0000 (22:55 +0000)]
Implement ES6 Set class
https://bugs.webkit.org/show_bug.cgi?id=120549

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

We simply reuse the MapData type from JSMap making the
it much simpler.

* JavaScriptCore.xcodeproj/project.pbxproj:
* runtime/CommonIdentifiers.h:
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):
* runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::setStructure):
* runtime/JSSet.cpp: Added.
(JSC::JSSet::visitChildren):
(JSC::JSSet::finishCreation):
* runtime/JSSet.h: Added.
(JSC::JSSet::createStructure):
(JSC::JSSet::create):
(JSC::JSSet::mapData):
(JSC::JSSet::JSSet):
* runtime/SetConstructor.cpp: Added.
(JSC::SetConstructor::finishCreation):
(JSC::callSet):
(JSC::constructSet):
(JSC::SetConstructor::getConstructData):
(JSC::SetConstructor::getCallData):
* runtime/SetConstructor.h: Added.
(JSC::SetConstructor::create):
(JSC::SetConstructor::createStructure):
(JSC::SetConstructor::SetConstructor):
* runtime/SetPrototype.cpp: Added.
(JSC::SetPrototype::finishCreation):
(JSC::getMapData):
(JSC::setProtoFuncAdd):
(JSC::setProtoFuncClear):
(JSC::setProtoFuncDelete):
(JSC::setProtoFuncForEach):
(JSC::setProtoFuncHas):
(JSC::setProtoFuncSize):
* runtime/SetPrototype.h: Added.
(JSC::SetPrototype::create):
(JSC::SetPrototype::createStructure):
(JSC::SetPrototype::SetPrototype):

LayoutTests:

Add tests

* fast/js/basic-set-expected.txt: Added.
* fast/js/basic-set.html: Added.
* fast/js/script-tests/basic-set.js: Added.
(set new):
(otherString.string_appeared_here.set add):
(try.set forEach):
(set forEach):
(set gc):

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

6 years ago[Windows] Update to incorporate additional suggestions
bfulgham@apple.com [Fri, 30 Aug 2013 22:51:41 +0000 (22:51 +0000)]
[Windows] Update to incorporate additional suggestions
https://bugs.webkit.org/show_bug.cgi?id=120448

Reviewed by Darin Adler

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Add
notes as to why AVFoundationCF needs this extra method call.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h: Use OVERRIDE
* rendering/RenderVideo.cpp: Replace ternary operator with logical &&.

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

6 years ago[Windows] Vide element in page always uses non-hw accelerated mode.
bfulgham@apple.com [Fri, 30 Aug 2013 22:37:51 +0000 (22:37 +0000)]
[Windows] Vide element in page always uses non-hw accelerated mode.
https://bugs.webkit.org/show_bug.cgi?id=120448

Reviewed by Darin Adler

This patch is unfortunately larger than my original idea, but seems to make the
layout system happier. Instead of switching into composited mode when building
the media player, we now build the original layout tree with compositing active
if the underlying media element requires it. The AVFoundationCF player needs to
have the compositor available at construction time so it can attach to the
rendering device. Otherwise it falls back to CPU-only mode.

* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::requiresImmediateCompositing): Added
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::requiresImmediateCompositing): Added
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Added
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
(WebCore::MediaPlayerPrivateAVFoundationCF::requiresImmediateCompositing):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForVideo): Uses new
'requiresImmediateCompositing' to short-circuit check for whether a
compositor is required.
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::requiresImmediateCompositing):
* rendering/RenderVideo.h:

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

6 years agoWeb Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
joepeck@webkit.org [Fri, 30 Aug 2013 21:43:01 +0000 (21:43 +0000)]
Web Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
https://bugs.webkit.org/show_bug.cgi?id=120544

Take 2, remove some more runAfterPendingDispatches which were somehow
causing WebKit 2 tests to fail. This requires us to be a bit more
careful when running the pending handlers as well.

Unreviewed test fix.

* inspector/storage-panel-dom-storage-update.html:

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

6 years agoWeb Inspector: Breakpoints should have Automatically Continue Option
joepeck@webkit.org [Fri, 30 Aug 2013 21:42:59 +0000 (21:42 +0000)]
Web Inspector: Breakpoints should have Automatically Continue Option
https://bugs.webkit.org/show_bug.cgi?id=120187

Reviewed by Timothy Hatcher.

Source/WebCore:

Tests: inspector-protocol/debugger/removeBreakpoint.html
       inspector-protocol/debugger/setBreakpoint-autoContinue.html
       inspector-protocol/debugger/setBreakpoint-column.html
       inspector-protocol/debugger/setBreakpoint-condition.html
       inspector-protocol/debugger/setBreakpoint.html

* inspector/Inspector.json:
Convert the "condition" argument of setBreakpoint and setBreakpointByUrl
to a BreakpointOptions object with optional properties. One of which
is "condition" and a new option "autoContinue".

* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::hasBreakpoint):
(WebCore::ScriptDebugServer::pauseIfNeeded):
Automatically continue if the breakpoint was hit and has autoContinue.

* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::buildObjectForBreakpointCookie):
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::setBreakpoint):
(WebCore::InspectorDebuggerAgent::continueToLocation):
(WebCore::InspectorDebuggerAgent::didParseSource):
* inspector/ScriptBreakpoint.h:
(WebCore::ScriptBreakpoint::ScriptBreakpoint):
Handle the new incoming BreakpointOptions type, and set the
autoContinue state on ScriptBreakpoints.

* inspector/front-end/DebuggerModel.js:
(WebInspector.DebuggerModel.prototype.setBreakpointByURL):
(WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
Update old front-end to be compatible with the new API.

Source/WebInspectorUI:

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Breakpoint.css:
(#edit-breakpoint-popoover-auto-continue):
Misc. changes for UI.

* UserInterface/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get autoContinue):
(WebInspector.Breakpoint.prototype.set autoContinue):
(WebInspector.Breakpoint.prototype.get options):
(WebInspector.Breakpoint.prototype.get info):
General maintenance of the autoContinue state.

(WebInspector.Breakpoint.prototype._popoverToggleEnabledCheckboxChanged):
(WebInspector.Breakpoint.prototype._popoverToggleAutoContinueCheckboxChanged):
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
Edit Breakpoint UI for setting autoContinue state.

* UserInterface/InspectorBackend.js:
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype._supports):
Extension to check if a BackendCommands method supports a particular param.

* UserInterface/DebuggerManager.js:
(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
* UserInterface/InspectorBackendCommands.js:
Change to backend agent calls for the new protocol API.

LayoutTests:

* http/tests/inspector-protocol/resources/InspectorTest.js:
(InspectorTest.checkForError):
Helper for checking for, and logging, protocol error responses.

* inspector/debugger/set-breakpoint.html:
Update this test for the protocol change.

* inspector-protocol/debugger/removeBreakpoint-expected.txt: Added.
* inspector-protocol/debugger/removeBreakpoint.html: Added.
* inspector-protocol/debugger/resources/breakpoint.js: Added.
* inspector-protocol/debugger/setBreakpoint-autoContinue-expected.txt: Added.
* inspector-protocol/debugger/setBreakpoint-autoContinue.html: Added.
* inspector-protocol/debugger/setBreakpoint-column.html: Renamed from LayoutTests/inspector-protocol/debugger/column-breakpoint.html.
* inspector-protocol/debugger/setBreakpoint-column.txt: Renamed from LayoutTests/inspector-protocol/debugger/column-breakpoint-expected.txt.
* inspector-protocol/debugger/setBreakpoint-condition-expected.txt: Added.
* inspector-protocol/debugger/setBreakpoint-condition.html: Added.
* inspector-protocol/debugger/setBreakpoint-expected.txt: Added.
* inspector-protocol/debugger/setBreakpoint.html: Added.
Protocol tests for setting breakpoints. These test different aspects of
the Debugger domain (setBreakpoint variants and removeBreakpoint).

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

6 years agoAnimations should use double for key values, not floats
dino@apple.com [Fri, 30 Aug 2013 21:32:17 +0000 (21:32 +0000)]
Animations should use double for key values, not floats
https://bugs.webkit.org/show_bug.cgi?id=120547

Reviewed by Simon Fraser.

Merge https://chromium.googlesource.com/chromium/blink/+/71de046541c77120874b9bff82958ee9e0e20c7c

Some files have been renamed in the Blink port, and they have made some
improvements, but I took what applied to us.

All our existing tests passed.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::keyframeStylesForAnimation):
* css/WebKitCSSKeyframeRule.cpp:
(WebCore::StyleKeyframe::parseKeyString):
* css/WebKitCSSKeyframeRule.h:
(WebCore::StyleKeyframe::getKeys):
* platform/graphics/GraphicsLayer.h:
(WebCore::AnimationValue::keyTime):
(WebCore::AnimationValue::AnimationValue):
(WebCore::FloatAnimationValue::create):
(WebCore::FloatAnimationValue::FloatAnimationValue):
(WebCore::TransformAnimationValue::create):
(WebCore::TransformAnimationValue::TransformAnimationValue):
(WebCore::FilterAnimationValue::create):
(WebCore::FilterAnimationValue::FilterAnimationValue):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation):
* rendering/style/KeyframeList.h:
(WebCore::KeyframeValue::KeyframeValue):
(WebCore::KeyframeValue::key):
(WebCore::KeyframeValue::setKey):

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

6 years agoSource/WebCore: [GStreamer] support in-band text tracks
commit-queue@webkit.org [Fri, 30 Aug 2013 20:17:27 +0000 (20:17 +0000)]
Source/WebCore: [GStreamer] support in-band text tracks
https://bugs.webkit.org/show_bug.cgi?id=103771

Patch by Brendan Long <b.long@cablelabs.com> on 2013-08-30
Reviewed by Eric Carlson.

Tests: New tests added because existing tests were too specific.
   media/track/in-band/track-in-band-kate-ogg-cues-added-once.html
   media/track/in-band/track-in-band-kate-ogg-kind.html
   media/track/in-band/track-in-band-kate-ogg-language.html
   media/track/in-band/track-in-band-kate-ogg-mode.html
   media/track/in-band/track-in-band-kate-ogg-style.html
   media/track/in-band/track-in-band-kate-ogg-track-order.html
   media/track/in-band/track-in-band-srt-mkv-cues-added-once.html
   media/track/in-band/track-in-band-srt-mkv-kind.html
   media/track/in-band/track-in-band-srt-mkv-language.html
   media/track/in-band/track-in-band-srt-mkv-mode.html
   media/track/in-band/track-in-band-srt-mkv-style.html
   media/track/in-band/track-in-band-srt-mkv-track-order.html

* CMakeLists.txt: Add InbandTextTrackPrivateGStreamer, InbandGenericTextTrack, InbandWebVTTTextTrack, and TextCombinerGStreamer files.
* GNUmakefile.list.am: Same.
* PlatformEfl.cmake: Same.
* Target.pri: Same.
* WebCore.vcxproj/WebCore.vcxproj: Same.
* WebCore.vcxproj/WebCore.vcxproj.filters: Same.
* WebCore.xcodeproj/project.pbxproj: Same.
* html/track/InbandGenericTextTrack.cpp: Split out code for handling generic cues.
(WebCore::GenericTextTrackCueMap::GenericTextTrackCueMap): Move from InbandTextTrack.
(WebCore::GenericTextTrackCueMap::~GenericTextTrackCueMap): Same.
(WebCore::GenericTextTrackCueMap::add): Same.
(WebCore::GenericTextTrackCueMap::find): Same.
(WebCore::GenericTextTrackCueMap::remove): Same.
(WebCore::InbandGenericTextTrack::create): Same.
(WebCore::InbandGenericTextTrack::updateCueFromCueData): Same.
(WebCore::InbandGenericTextTrack::addGenericCue): Same.
(WebCore::InbandGenericTextTrack::updateGenericCue): Same.
(WebCore::InbandGenericTextTrack::removeGenericCue): Same.
(WebCore::InbandGenericTextTrack::removeCue): Same.
(WebCore::InbandGenericTextTrack::InbandGenericTextTrack): Empty.
(WebCore::InbandGenericTextTrack::~InbandGenericTextTrack): Empty.
* html/track/InbandGenericTextTrack.h: Copied from Source/WebCore/html/track/InbandTextTrack.h.
The only addition is the ASSERT_NOT_REACHED() for WebVTT cues.
* html/track/InbandTextTrack.cpp: Add label and language changed callbacks.
(WebCore::InbandTextTrack::create): Return a generic or WebVTT text track based on the private CueFormat.
(WebCore::InbandTextTrack::labelChanged): Added.
(WebCore::InbandTextTrack::languageChanged): Added.
* html/track/InbandTextTrack.h: Add label and language changed callbacks.
* html/track/InbandWebVTTTextTrack.cpp: Added, based on InbandTextTrack.
(WebCore::InbandWebVTTTextTrack::create): Same.
(WebCore::InbandWebVTTTextTrack::InbandWebVTTTextTrack): Empty.
(WebCore::InbandWebVTTTextTrack::~InbandWebVTTTextTrack): Empty.
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): Sends data to a WebVTTParser.
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Adds cues when WebVTTParser parses them.
(WebCore::InbandWebVTTTextTrack::fileFailedToParse): Prints a warning when WebVTTParser has a problem.
* html/track/InbandWebVTTTextTrack.h: Added.
* platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::cueFormat): For determining if the track will have generic or WebVTT cues.
(WebCore::InbandTextTrackPrivate::InbandTextTrackPrivate): Pass CueFormat in the constructor.
* platform/graphics/InbandTextTrackPrivateClient.h: Same.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Pass CueFormat (Generic) to InbandTextTrackPrivate.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp: Add GRefPtr specializations for GstSample and GstEvent.
* platform/graphics/gstreamer/GRefPtrGStreamer.h: Same.
* platform/graphics/gstreamer/GStreamerUtilities.h: Add WARN_MEDIA_MESSAGE.
* platform/graphics/gstreamer/GStreamerVersioning.h: Add a function to check GStreamer version at runtime.
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: Added.
(WebCore::textTrackPrivateEventCallback): Watches for tag and stream start events.
(WebCore::textTrackPrivateSampleTimeoutCallback): See notifyTrackOfSample();
(WebCore::textTrackPrivateStreamTimeoutCallback): See notifyTrackOfStreamChanged();
(WebCore::textTrackPrivateTagsChangeTimeoutCallback): See notifyTrackOfTagsChanged();
(WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer): Initializes tags and stream and sets up event callback.
(WebCore::InbandTextTrackPrivateGStreamer::~InbandTextTrackPrivateGStreamer): Calls disconnect:
(WebCore::InbandTextTrackPrivateGStreamer::disconnect): Removes signal handlers and frees some memory.
(WebCore::InbandTextTrackPrivateGStreamer::handleSample): Adds samples to a list and sets up callback.
(WebCore::InbandTextTrackPrivateGStreamer::streamChanged): Sets up callback.
(WebCore::InbandTextTrackPrivateGStreamer::tagsChanged): Same.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample): Parses all queued samples with WebVTTParser.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfStreamChanged): Keeps track of current stream.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfTagsChanged): Sets label and language from tags.
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h: Added.
(WebCore::InbandTextTrackPrivateGStreamer::create): Basic RefPtr create function.
(WebCore::InbandTextTrackPrivateGStreamer::pad): Returns the pad this track is associated with (used
to determine if a playbin text stream has already been associated with a text track).
(WebCore::InbandTextTrackPrivateGStreamer::setIndex): Sets the track index (used for sorting).
(WebCore::InbandTextTrackPrivateGStreamer::streamId): Returns the stream ID (used to handle new samples).
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateTextChangedCallback): Called for playbin "text-changed" event. See textChanged().
(WebCore::mediaPlayerPrivateTextChangeTimeoutCallback): See notifyPlayerOfText().
(WebCore::mediaPlayerPrivateNewTextSampleCallback): See newTextSample().
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Initialize m_textTimerHandler.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Disconnect text tracks (they don't necessarily
get freed here, since a script could hold a reference).
(WebCore::MediaPlayerPrivateGStreamer::textChanged): Setup callback for notifyPlayerOfText.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Create text tracks.
(WebCore::MediaPlayerPrivateGStreamer::newTextSample): Handle new samples by giving them to a text track
with a matching stream. This method is syncryonous because we need to get the stream start sticky event
immediately.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/TextCombinerGStreamer.cpp: Added. This element forwards buffers from all
of its input pads, but also converts plain text to WebVTT as needed.
(webkit_text_combiner_init): Setup internal funnel.
(webkitTextCombinerPadEvent): If the caps are plain text make sure we have a webvttenv, otherwise connect
directly to the funnel.
(webkitTextCombinerRequestNewPad): Setup ghostpad and event callback.
(webkitTextCombinerReleasePad): Release pad and optional associated webvttenc.
(webkit_text_combiner_class_init): Setup pad templates and request/release pad functions.
(webkitTextCombinerNew): Returns a new WebKitTextCombiner.
* platform/graphics/gstreamer/TextCombinerGStreamer.h: Added.
* platform/graphics/gstreamer/TextSinkGStreamer.cpp: Added.
(webkit_text_sink_init): Set sync=false.
(webkitTextSinkGetProperty): Ignore sync property.
(webkitTextSinkSetProperty): Same.
(webkitTextSinkQuery): Ignore position and duration queries, forward everything else to appsink.
(webkit_text_sink_class_init): Setup property and query functions.
(webkitTextSinkNew): Return a new WebKitTextSink.
* platform/graphics/gstreamer/TextSinkGStreamer.h: Added.

LayoutTests: <https://webkit.org/b/103771> [GStreamer] support in-band text tracks

Patch by Brendan Long <b.long@cablelabs.com> on 2013-08-30
Reviewed by Eric Carlson.

* media/content/counting-subtitled-kate.ogv: Added.
* media/content/counting-subtitled-srt.mkv: Added.
* media/in-band-cues.js: Added.
* media/track/in-band/track-in-band-kate-ogg-cues-added-once-expected.txt: Added.
* media/track/in-band/track-in-band-kate-ogg-cues-added-once.html: Added.
* media/track/in-band/track-in-band-kate-ogg-kind-expected.txt: Added.
* media/track/in-band/track-in-band-kate-ogg-kind.html: Added.
* media/track/in-band/track-in-band-kate-ogg-language-expected.txt: Added.
* media/track/in-band/track-in-band-kate-ogg-language.html: Added.
* media/track/in-band/track-in-band-kate-ogg-mode-expected.txt: Added.
* media/track/in-band/track-in-band-kate-ogg-mode.html: Added.
* media/track/in-band/track-in-band-kate-ogg-style-expected.txt: Added.
* media/track/in-band/track-in-band-kate-ogg-style.html: Added.
* media/track/in-band/track-in-band-kate-ogg-track-order-expected.txt: Added.
* media/track/in-band/track-in-band-kate-ogg-track-order.html: Added.
* media/track/in-band/track-in-band-srt-mkv-cues-added-once-expected.txt: Added.
* media/track/in-band/track-in-band-srt-mkv-cues-added-once.html: Added.
* media/track/in-band/track-in-band-srt-mkv-kind-expected.txt: Added.
* media/track/in-band/track-in-band-srt-mkv-kind.html: Added.
* media/track/in-band/track-in-band-srt-mkv-language-expected.txt: Added.
* media/track/in-band/track-in-band-srt-mkv-language.html: Added.
* media/track/in-band/track-in-band-srt-mkv-mode-expected.txt: Added.
* media/track/in-band/track-in-band-srt-mkv-mode.html: Added.
* media/track/in-band/track-in-band-srt-mkv-style-expected.txt: Added.
* media/track/in-band/track-in-band-srt-mkv-style.html: Added.
* media/track/in-band/track-in-band-srt-mkv-track-order-expected.txt: Added.
* media/track/in-band/track-in-band-srt-mkv-track-order.html: Added.
* platform/mac/TestExpectations: Skip MKV and OGG tests.

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

6 years agoWeb Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
commit-queue@webkit.org [Fri, 30 Aug 2013 20:01:38 +0000 (20:01 +0000)]
Web Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
https://bugs.webkit.org/show_bug.cgi?id=120544

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-08-30
Reviewed by Dean Jackson.

Explicitly listen for events instead of running callbacks after a delay.

* inspector/storage-panel-dom-storage-update.html:

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

6 years agoAnimate CSS Image filter() function
krit@webkit.org [Fri, 30 Aug 2013 19:29:03 +0000 (19:29 +0000)]
Animate CSS Image filter() function
https://bugs.webkit.org/show_bug.cgi?id=119938

Reviewed by Simon Fraser.

Source/WebCore:

With this patch, the new introduced CSS Image function filter() can be
animated. According to the spec, just filter functions can be
interpolated.

The patch also prepares StyleImage blending for interpolation of other
generated images like gradients or cross-fade().

http://dev.w3.org/fxtf/filters/#interpolating-filter-image

Test: fast/filter-image/filter-image-animation.html

* css/CSSComputedStyleDeclaration.cpp: Reuse the code that creates a
    CSSValueList from ComputeStyle logic.
(WebCore::valueForPixel):
    For StyleRules we want to have not-adjusted length values.
(WebCore::ComputedStyleExtractor::valueForShadow):
    Add argument to switch between adjusted and not-adjusted length.
(WebCore::ComputedStyleExtractor::valueForFilter):
    Ditto.
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSComputedStyleDeclaration.h:
* css/CSSFilterImageValue.h: Add helper functions
    for animating filters. We need to pass the FilterOperations for
    the image generation and the CSSValueList for StyleRule.
(WebCore::CSSFilterImageValue::filterOperations):
(WebCore::CSSFilterImageValue::setFilterOperations):
(WebCore::CSSFilterImageValue::cachedImage):
* page/animation/CSSPropertyAnimation.cpp:
    Add animation code to support animations between two filter()
    function values.
(WebCore::blendFilterOperations):
(WebCore::blendFunc):
(WebCore::filterBlend):
* rendering/style/StyleGeneratedImage.h: Add helper functions.
(WebCore::CSSFilterImageValue::imageValue):

LayoutTests:

Add tests to test animation between two filter() function values.
Furthermore, extended animation-test-helpers.js to parse all kind of CSS
image function where we support animations. CSS Image function can be
deeply nested as well now:

    -wekit-filter(-webkit-cross-fade(url(a.png), url(b.png), 50%), sepia(0.5))

Even the 50% can now be checked with a tolerance. If we should ever support
animations on nested CSS Images, the new code in animation-test-helpers.js
is prepared for it.

Fixed a bunch of tests that passed by accident or needed an update to the new
infrastructure.

* animations/resources/animation-test-helpers.js:
(parseCSSImage): For parsing of all kind of supported CSS Image functions.
    Currently supported: -webkit-cross-fade, -webkit-filter, url, none
    Still missing: linear and radial gradients (can not be animated yet).
    CSS Image functions are allowed to be nested as deep JS allows.
(parseCrossFade): Add parsing of input CSS images.
(parseFilterImage): Parse -webkit-filter image function as well as input images.
(parseFilterFunctionList): Parse filter function list. We now parse the
    function name as well. Added rudimentary support for drop-shadow and url.
(parseDeprecatedCustomFilterFunction): Special case old syntax of custom
    filter function. Shall be removed in the future.
(compareCSSImages): Compares all kind (even deep nested) CSS images.
(compareFilterFunctions): Now compare filter function names as well.
(comparePropertyValue): Use new compareCSSImages function.
* fast/filter-image/filter-image-animation-expected.txt: Added.
* fast/filter-image/filter-image-animation.html: Added.

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

6 years agoMake sure remove CachedResourceClient when destructing IconLoader
commit-queue@webkit.org [Fri, 30 Aug 2013 19:21:31 +0000 (19:21 +0000)]
Make sure remove CachedResourceClient when destructing IconLoader
https://bugs.webkit.org/show_bug.cgi?id=120541

Patch by Leo Yang <leoyang@blackberry.com> on 2013-08-30
Reviewed by Darin Adler.

It's a good practice to call CachedResource::removeClient(client)
when the client is being destructed. We need to do this for InconLoader
to prevent m_resource from keeping dangling client in case m_resource
is referenced by someone else in the future.

Found by code inspection. Just a defensive enhancement no new tests.

* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::~IconLoader):

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

6 years ago[CSS Shapes] Redefine the ShapeIntervals class as a template
hmuller@adobe.com [Fri, 30 Aug 2013 18:58:54 +0000 (18:58 +0000)]
[CSS Shapes] Redefine the ShapeIntervals class as a template
https://bugs.webkit.org/show_bug.cgi?id=120381

Reviewed by Alexandru Chiculita.

No new tests, this was just an internal refactoring.

The existing ShapeIntervals class has been converted into a template whose
type specifies the type of the interval's x1 and x2 horizontal endpoints
(formerly float). There were several other minor changes, all in the realm
of refactoring:

- The original type was a struct with public x1 and x2 fields. It's now a class
with x1 and x2 accessors. ASSERTS are now used to maintain the x2 >= x1 invariant.
In the original code the invariant was not checked.

- The logical comparison operators have been overloaded for ShapeInterval.
This obviates the IntervalX1Comparator class which has been removed.

- The names of the global ShapeInterval Vector set operation methods have been
changed to reflect the fact that they're now members of the template class,
rather than globals.

PolygonShape.cpp depended on the ShapeInterval class. In the one or two places
where an interval's x1 or x1 fields had been set explicitly, ShapeInterval::set()
is now used to set both fields. This also enables the invariant check mentioned
earlier. The other changes to this class are syntatic, to account for the ShapeInterval
class's changes.

* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/shapes/PolygonShape.cpp:
(WebCore::appendIntervalX):
(WebCore::computeXIntersections):
(WebCore::computeOverlappingEdgeXProjections):
(WebCore::PolygonShape::getExcludedIntervals):
(WebCore::PolygonShape::getIncludedIntervals):
* rendering/shapes/PolygonShape.h:
* rendering/shapes/ShapeInterval.cpp: Removed.
* rendering/shapes/ShapeInterval.h: The entire implementation is now here.
(WebCore::ShapeInterval::ShapeInterval):
(WebCore::ShapeInterval::x1):
(WebCore::ShapeInterval::x2):
(WebCore::ShapeInterval::set):
(WebCore::ShapeInterval::overlaps):
(WebCore::ShapeInterval::intersect):
(WebCore::ShapeInterval::sortVector):
(WebCore::ShapeInterval::uniteVectors):
(WebCore::ShapeInterval::intersectVectors):
(WebCore::ShapeInterval::subtractVectors):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::operator< ):
(WebCore::operator> ):
(WebCore::operator<=):
(WebCore::operator>=):

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

6 years agoUse Element& in StyleResolveTree
antti@apple.com [Fri, 30 Aug 2013 18:43:29 +0000 (18:43 +0000)]
Use Element& in StyleResolveTree
https://bugs.webkit.org/show_bug.cgi?id=120540

Reviewed by Andreas Kling.

* dom/ContainerNode.cpp:
(WebCore::attachChild):
(WebCore::detachChild):
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
(WebCore::Document::createRenderTree):
(WebCore::Document::detach):
* dom/Element.cpp:
(WebCore::Element::lazyReattach):
(WebCore::Element::updateExistingPseudoElement):
(WebCore::Element::createPseudoElementIfNeeded):
(WebCore::disconnectPseudoElement):
* dom/ShadowRoot.cpp:
(WebCore::ShadowRoot::setResetStyleInheritance):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::parseAttribute):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::parseAttribute):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderFallbackContent):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::willRecalcStyle):
(WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
(WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
(WebCore::HTMLSelectElement::parseMultipleAttribute):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable):
(WebCore::HTMLViewSourceDocument::addSpanWithClassName):
(WebCore::HTMLViewSourceDocument::addLine):
(WebCore::HTMLViewSourceDocument::finishLine):
(WebCore::HTMLViewSourceDocument::addBase):
(WebCore::HTMLViewSourceDocument::addLink):
* html/parser/HTMLConstructionSite.cpp:
(WebCore::executeTask):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
* html/shadow/InsertionPoint.cpp:
(WebCore::InsertionPoint::willAttachRenderers):
(WebCore::InsertionPoint::willDetachRenderers):
* loader/PlaceholderDocument.cpp:
(WebCore::PlaceholderDocument::createRenderTree):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachChildren):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachChildren):
(WebCore::Style::detachRenderTree):
(WebCore::Style::resolveLocal):
(WebCore::Style::updateTextStyle):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::resolveTree):

    Documents only ever have one child element. Remove the loop.

(WebCore::Style::detachRenderTreeInReattachMode):
(WebCore::Style::reattachRenderTree):
* style/StyleResolveTree.h:
* svg/SVGTests.cpp:
(WebCore::SVGTests::handleAttributeChange):
* xml/XMLErrors.cpp:
(WebCore::XMLErrors::insertErrorMessageBlock):
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):

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

6 years agoMake JSValue bool conversion less dangerous
oliver@apple.com [Fri, 30 Aug 2013 18:30:41 +0000 (18:30 +0000)]
Make JSValue bool conversion less dangerous
https://bugs.webkit.org/show_bug.cgi?id=120505

Reviewed by Darin Adler.

Source/JavaScriptCore:

Replaces JSValue::operator bool() with a operator UnspecifiedBoolType* as
we do elsewhere.  Then fix the places where terrible type coercion was
happening.  All of the changes made had no fundamental behavioural impact
as they were coercion results that were ignored (returning undefined
after an exception).

* dfg/DFGOperations.cpp:
* interpreter/CallFrame.h:
(JSC::ExecState::hadException):
* runtime/JSCJSValue.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::operator UnspecifiedBoolType*):
* runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncEval):
* runtime/PropertyDescriptor.cpp:
(JSC::PropertyDescriptor::equalTo)

Source/WTF:

Make LIKELY and UNLIKELY macros coerce to bool before
passing to expect.

* wtf/Compiler.h:

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

6 years agoDocument style resolve should take Document&.
akling@apple.com [Fri, 30 Aug 2013 18:16:11 +0000 (18:16 +0000)]
Document style resolve should take Document&.
<https://webkit.org/b/120534>

Reviewed by Darin Adler.

Tweak Style::resolveTree(Document*) and Style::resolveForDocument(Document*) to take Document& instead.

* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
* style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
* style/StyleResolveForDocument.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::resolveTree):
* style/StyleResolveTree.h:

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

6 years ago[Mac] No need for Pasteboard::getDataSelection
darin@apple.com [Fri, 30 Aug 2013 18:02:36 +0000 (18:02 +0000)]
[Mac] No need for Pasteboard::getDataSelection
https://bugs.webkit.org/show_bug.cgi?id=120536

Reviewed by Anders Carlsson.

* editing/Editor.h: Added some Mac-only private member functions.

* editing/mac/EditorMac.mm:
(WebCore::Editor::selectionInWebArchiveFormat): Added.
(WebCore::Editor::adjustedSelectionRange): Added.
(WebCore::attributedStringForRange): Added.
(WebCore::dataInRTFDFormat): Added.
(WebCore::dataInRTFFormat): Added.
(WebCore::Editor::dataSelectionForPasteboard): Moved the implementation
of Pasteboard::getDataSelection here, refactoring to share code with the
writeSelectionToPasteboard function.
(WebCore::Editor::writeSelectionToPasteboard): Refactored to share code
with the new function above.

* platform/Pasteboard.h: Removed getDataSelection. One less layering violation.
* platform/mac/PasteboardMac.mm: Ditto.

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

6 years ago[GTK] [WK2] TestWebKitWebView snapshot fails
commit-queue@webkit.org [Fri, 30 Aug 2013 18:00:36 +0000 (18:00 +0000)]
[GTK] [WK2] TestWebKitWebView snapshot fails
https://bugs.webkit.org/show_bug.cgi?id=120404

Patch by Brian Holt <brian.holt@samsung.com> on 2013-08-30
Reviewed by Darin Adler.

Fixed the snapshot test failure caused by GTK no longer allowing
widgets to resize.  Instead, resize the WebView by resizing the
window and waiting for the event to complete asynchronously.

* UIProcess/API/gtk/tests/WebViewTest.cpp:
(WebViewTest::resizeView):

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

6 years agoMake incrementing and decrementing numbers by 0.1 require the control key, and not...
timothy@apple.com [Fri, 30 Aug 2013 17:58:36 +0000 (17:58 +0000)]
Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.

https://bugs.webkit.org/show_bug.cgi?id=120492
<rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases

Reviewed by Joseph Pecoraro.

* UserInterface/CodeMirrorAdditions.js:
(alterNumber): Remove near zero check.

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

6 years agoOnly modify numbers if they are identified by CodeMirror as a number.
timothy@apple.com [Fri, 30 Aug 2013 17:58:27 +0000 (17:58 +0000)]
Only modify numbers if they are identified by CodeMirror as a number.

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

<rdar://problem/13877085> REGRESSION: Alt-up and Alt-down don't work when cursor is in unit
<rdar://problem/13058697> PARITY: Option-Up arrow in "translate3d" should not modify number to make" translate4d"

Reviewed by Joseph Pecoraro.

* UserInterface/CodeMirrorAdditions.js:
(CodeMirror.prototype.alterNumberInRange): Correctly preserve the selection, even if it differs from
the range passed in.
(alterNumber): Find number tokens and pass those to alterNumberInRange.
(alterNumber.findNumberToken): Added. Helper.

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

6 years agoSVG error parsing empty path
rwlbuis@webkit.org [Fri, 30 Aug 2013 17:51:53 +0000 (17:51 +0000)]
SVG error parsing empty path
https://bugs.webkit.org/show_bug.cgi?id=78980

Reviewed by Darin Adler.

Source/WebCore:

According to the spec (http://www.w3.org/TR/SVG/paths.html#PathData), path 'd' attribute can be empty.
No error should be reported in this case.

* svg/SVGPathParser.cpp:
(WebCore::SVGPathParser::parsePathDataFromSource):
* svg/SVGPathUtilities.cpp:
(WebCore::buildPathFromString):
(WebCore::buildSVGPathByteStreamFromSVGPathSegList):
(WebCore::buildPathFromByteStream):
(WebCore::buildSVGPathSegListFromByteStream):
(WebCore::buildStringFromByteStream):
(WebCore::buildStringFromSVGPathSegList):
(WebCore::buildSVGPathByteStreamFromString):
(WebCore::buildAnimatedSVGPathByteStream):
(WebCore::addToSVGPathByteStream):

LayoutTests:

Adapt fuzz-path-parser.html and dynamic-empty-path.svg to also test empty paths.
Adjust expectations to not expect an error message for empty paths.

* platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
* platform/gtk/svg/custom/dynamic-empty-path-expected.txt:
* platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
* platform/qt/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
* platform/qt/svg/custom/dynamic-empty-path-expected.txt:
* svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
* svg/custom/dynamic-empty-path-expected.txt:
* svg/dom/fuzz-path-parser-expected.txt:
* svg/dom/fuzz-path-parser.html: also test empty path
* svg/dom/path-parser-expected.txt:
* svg/dom/script-tests/path-parser.js: also test empty path

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

6 years agoAdd USE(PROTECTION_SPACE_AUTH_CALLBACK) guards to canAuthenticateAgainstProtectionSpace()
ossy@webkit.org [Fri, 30 Aug 2013 17:50:52 +0000 (17:50 +0000)]
Add USE(PROTECTION_SPACE_AUTH_CALLBACK) guards to canAuthenticateAgainstProtectionSpace()
https://bugs.webkit.org/show_bug.cgi?id=120351

Reviewed by Darin Adler.

* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
* NetworkProcess/AsynchronousNetworkLoaderClient.h:
* NetworkProcess/NetworkLoaderClient.h:
* NetworkProcess/SynchronousNetworkLoaderClient.cpp:
* NetworkProcess/SynchronousNetworkLoaderClient.h:

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

6 years agoTry to fix CSS_VARIABLES and CSS_DEVICE_ADAPTATION builds.
akling@apple.com [Fri, 30 Aug 2013 17:46:50 +0000 (17:46 +0000)]
Try to fix CSS_VARIABLES and CSS_DEVICE_ADAPTATION builds.

* css/StyleResolver.cpp:
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::resolveVariables):

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

6 years agoUnreviewed, rolling out r154891.
ossy@webkit.org [Fri, 30 Aug 2013 17:43:46 +0000 (17:43 +0000)]
Unreviewed, rolling out r154891.
http://trac.webkit.org/changeset/154891
https://bugs.webkit.org/show_bug.cgi?id=120539

broke the mac build (Requested by Ossy on #webkit).

Patch by Commit Queue <commit-queue@webkit.org> on 2013-08-30

* platform/network/SynchronousLoaderClient.h:

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

6 years agoCleaning errorDescriptionForValue after r154839
commit-queue@webkit.org [Fri, 30 Aug 2013 17:02:48 +0000 (17:02 +0000)]
Cleaning errorDescriptionForValue after r154839
https://bugs.webkit.org/show_bug.cgi?id=120531

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-30
Reviewed by Darin Adler.

Changed the assert to ASSERT_NOT_REACHED, now that r154839 has landed. errorDescriptionForValue
can assert again that the parameterized JSValue is !isEmpty().

* runtime/ExceptionHelpers.cpp:
(JSC::errorDescriptionForValue):

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

6 years agoAdd USE(CFNETWORK) guard to SynchronousLoaderClient::didReceiveAuthenticationChalleng...
ossy@webkit.org [Fri, 30 Aug 2013 16:45:58 +0000 (16:45 +0000)]
Add USE(CFNETWORK) guard to SynchronousLoaderClient::didReceiveAuthenticationChallengedidReceiveAuthenticationChallenge()
https://bugs.webkit.org/show_bug.cgi?id=120532

Reviewed by Darin Adler.

* platform/network/SynchronousLoaderClient.h:

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

6 years ago[Windows] Video inside page always uses non-hardware accelerated playback
bfulgham@apple.com [Fri, 30 Aug 2013 16:44:00 +0000 (16:44 +0000)]
[Windows] Video inside page always uses non-hardware accelerated playback
https://bugs.webkit.org/show_bug.cgi?id=120448

Reviewed by Eric Carlson.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Check for
D3D device. If it doesn't exist, switch to compositing mode and try again.

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

6 years agoPossible dangling CachedResourceClient of StyleRuleImport and XSLImportRule
commit-queue@webkit.org [Fri, 30 Aug 2013 16:40:01 +0000 (16:40 +0000)]
Possible dangling CachedResourceClient of StyleRuleImport and XSLImportRule
https://bugs.webkit.org/show_bug.cgi?id=120479

Patch by Leo Yang <leoyang@blackberry.com> on 2013-08-30
Reviewed by Darin Adler.

In StyleRuleImport::requestStyleSheet() and XSLImportRule::loadSheet() we
didn't call removeClient() for m_cachedSheet before assigning m_cachedSheet
a new value. This could leave the client as a client of the old cached
sheet and dangling after the client is deleted. Fix them by calling removeClient()
before assigning m_cacheSheet a new value.

Found by code inspection. Seems no way to test it automatically.

* css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::requestStyleSheet):
* xml/XSLImportRule.cpp:
(WebCore::XSLImportRule::loadSheet):

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

6 years agoFix unused parameter warning in graphics/cairo/GraphicsContextCairo.cpp file.
commit-queue@webkit.org [Fri, 30 Aug 2013 16:39:12 +0000 (16:39 +0000)]
Fix unused parameter warning in graphics/cairo/GraphicsContextCairo.cpp file.
https://bugs.webkit.org/show_bug.cgi?id=120524

Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::fillRectWithRoundedHole):

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

6 years agoStyleResolver & friends should use Document&.
akling@apple.com [Fri, 30 Aug 2013 16:18:11 +0000 (16:18 +0000)]
StyleResolver & friends should use Document&.
<https://webkit.org/b/120527>

Reviewed by Antti Koivisto.

Document&-ify StyleResolver, ElementRuleCollector and SelectorChecker.

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

6 years ago[Windows] Unreviewed build correction after r154835. Only seen when doing a
bfulgham@apple.com [Fri, 30 Aug 2013 16:07:34 +0000 (16:07 +0000)]
[Windows] Unreviewed build correction after r154835. Only seen when doing a
full (clean) rebuild.

* DerivedSources.cpp: Remove reference to deleted JSHTMLDialogElement.cpp

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

6 years agoFix, remove unused parameter in UIProcess/WebColorPicker.cpp.
commit-queue@webkit.org [Fri, 30 Aug 2013 15:28:34 +0000 (15:28 +0000)]
Fix, remove unused parameter in UIProcess/WebColorPicker.cpp.
https://bugs.webkit.org/show_bug.cgi?id=120525

Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

* UIProcess/WebColorPicker.cpp:
(WebKit::WebColorPicker::showColorPicker):

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

6 years agoResolve unused parameter warning in WebPlatformStrategies.cpp
commit-queue@webkit.org [Fri, 30 Aug 2013 15:25:53 +0000 (15:25 +0000)]
Resolve unused parameter warning in WebPlatformStrategies.cpp
https://bugs.webkit.org/show_bug.cgi?id=120515

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

* WebProcess/WebPage/TapHighlightController.cpp:
(WebKit::TapHighlightController::drawRect):

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

6 years agoResolve unused parameter warning in FindController.cpp
commit-queue@webkit.org [Fri, 30 Aug 2013 15:25:24 +0000 (15:25 +0000)]
Resolve unused parameter warning in FindController.cpp
https://bugs.webkit.org/show_bug.cgi?id=120516

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

* WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::drawRect):

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

6 years agoResolve unused parameter warning in FindController.cpp
commit-queue@webkit.org [Fri, 30 Aug 2013 15:24:21 +0000 (15:24 +0000)]
Resolve unused parameter warning in FindController.cpp
https://bugs.webkit.org/show_bug.cgi?id=120407

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(wordAtPositionForAtkBoundary):

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

6 years agosetAttributeNode() does not set the new value to an existing attribute if specified...
a.bah@samsung.com [Fri, 30 Aug 2013 15:21:17 +0000 (15:21 +0000)]
setAttributeNode() does not set the new value to an existing attribute if specified attribute is in a different case.
https://bugs.webkit.org/show_bug.cgi?id=120293

Reviewed by Darin Adler.

Source/WebCore:

setAttributeNode() performs a case-insensitive search for an existing
attribute. If an existing attribute is found, it retrieves the index of
such an attribute. For setting the attribute's new value, we call upon
setAttributeInternal() to which both the index as well as the name of
the attribute is passed.
The name passed to this method is the same as the one passed to the
setAttributeNode() API from the webpage and thus can be in any case.

However, setAttributeInternal() uses this name to get the corresponding
existing attribute node. Since this retrieval is not case-insensitive,
the existing node is not returned and thus the new value is not set on
the existing node.
We should instead use the passed index and use that to retrieve the
existing node.

Note that obtaining the attribute's value using getAttributeNode() would
still return the correct value, i.e. the new one.

Also, this change shall make our behavior similar to that of FF and IE.

Test: fast/dom/Element/setAttributeNode-for-existing-attribute.html

* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
If the passed index is not equal to attributeNotFound, we use that index
to retrieve the existing attribute.

LayoutTests:

* fast/dom/Element/setAttributeNode-for-existing-attribute-expected.txt: Added.
* fast/dom/Element/setAttributeNode-for-existing-attribute.html: Added.
Layout testcase for verifying that the new attribute value is set properly
if an existing attribute with the same name exists.

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

6 years agoWindows build fix for Document& Node::document().
akling@apple.com [Fri, 30 Aug 2013 14:58:51 +0000 (14:58 +0000)]
Windows build fix for Document& Node::document().

* DOMCoreClasses.cpp:
(DOMNode::createInstance):

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

6 years ago[Qt] Skip failing grammar checking test.
kadam@inf.u-szeged.hu [Fri, 30 Aug 2013 14:57:00 +0000 (14:57 +0000)]
[Qt] Skip failing grammar checking test.
Unreviewed gardening.

* platform/qt/TestExpectations:

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

6 years agoSimpleClassVectorTraits shall be used for RuleData
mikhail.pozdnyakov@intel.com [Fri, 30 Aug 2013 14:31:49 +0000 (14:31 +0000)]
SimpleClassVectorTraits shall be used for RuleData
https://bugs.webkit.org/show_bug.cgi?id=120526

Reviewed by Andreas Kling.

Whereas RuleData is POD type and whereas there are quite a lot of Vector<RuleData> occurrences in the code,
it makes sense to use SimpleClassVectorTraits for RuleData and hence to allow using more efficient mem functions
in vectors.

* css/RuleSet.h:

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

6 years agoNode::document() should return a reference.
akling@apple.com [Fri, 30 Aug 2013 14:30:12 +0000 (14:30 +0000)]
Node::document() should return a reference.
<https://webkit.org/b/120496>

Reviewed by Antti Koivisto.

Now that orphan DocumentType nodes also have document pointers, it's no longer
possible to have a null Node::document().

Cement this by making document() return a reference, and remove the various
null checks exposed by this.

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

6 years ago[Qt] Added platform specific expected files after r15470 and r154780.
kadam@inf.u-szeged.hu [Fri, 30 Aug 2013 13:40:38 +0000 (13:40 +0000)]
[Qt] Added platform specific expected files after r15470 and r154780.
Unreviewed gardening.

* platform/qt-wk1/compositing/columns/composited-lr-paginated-repaint-expected.txt: Added.
* platform/qt-wk1/compositing/columns/composited-rl-paginated-repaint-expected.txt: Added.
* platform/qt-wk1/compositing/repaint/repaint-on-layer-grouping-change-expected.png: Added.
* platform/qt-wk1/compositing/repaint/repaint-on-layer-grouping-change-expected.txt: Added.
* platform/qt-wk2/compositing/columns/ancestor-clipped-in-paginated-expected.txt: Added.
* platform/qt-wk2/compositing/columns/clipped-in-paginated-expected.txt: Added.
* platform/qt-wk2/compositing/columns/composited-columns-expected.txt: Added.
* platform/qt-wk2/compositing/columns/composited-columns-vertical-rl-expected.txt: Added.
* platform/qt-wk2/compositing/columns/composited-in-paginated-rl-expected.txt: Added.
* platform/qt-wk2/compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt: Added.
* platform/qt-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt: Added.
* platform/qt-wk2/compositing/columns/composited-nested-columns-expected.txt: Added.
* platform/qt-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt: Added.
* platform/qt-wk2/compositing/columns/hittest-composited-in-paginated-expected.txt: Added.
* platform/qt-wk2/compositing/columns/rotated-in-paginated-expected.txt: Added.
* platform/qt-wk2/compositing/columns/untransformed-composited-in-paginated-expected.txt: Added.
* platform/qt-wk2/compositing/repaint/repaint-on-layer-grouping-change-expected.txt: Added.

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

6 years agoSource/WebCore: [CSS Masking] -webkit-mask-repeat: space does not work
commit-queue@webkit.org [Fri, 30 Aug 2013 12:58:10 +0000 (12:58 +0000)]
Source/WebCore: [CSS Masking] -webkit-mask-repeat: space does not work
Added the space option to background-repeat and -webkit-mask-repeat.
With the property value 'space', the background or mask image gets repeated as often as it fits within the background positioning
area. The repeated images are spaced equally to fill the unused area.
https://bugs.webkit.org/show_bug.cgi?id=119324

Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-30
Reviewed by Dirk Schulze.

Tests: css3/background/background-repeat-space-border.html
       css3/background/background-repeat-space-content.html
       css3/background/background-repeat-space-padding.html
       css3/masking/mask-repeat-space-border.html
       css3/masking/mask-repeat-space-content.html
       css3/masking/mask-repeat-space-padding.html

* platform/graphics/GeneratorGeneratedImage.cpp:
(WebCore::GeneratorGeneratedImage::drawPattern): Passed the space values to the image buffer.
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled): Added the space values when computing the location of the tile.
* platform/graphics/Image.h: Added the space property.
(WebCore::Image::spaceSize):
(WebCore::Image::setSpaceSize):
* platform/graphics/ImageBuffer.h: Added the space property.
(WebCore::ImageBuffer::spaceSize):
(WebCore::ImageBuffer::setSpaceSize):
* platform/graphics/cg/ImageBufferCG.cpp: Passed the space values when copying an image.
(WebCore::ImageBuffer::copyImage):
* platform/graphics/cg/ImageCG.cpp: Added the space values when creating a platform pattern.
(WebCore::Image::drawPattern):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Computed the space values on x and y axis.
(WebCore::getSpace):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Pass the space values to the Image class.
* rendering/RenderBoxModelObject.h: Added the space property.
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize):
* svg/graphics/SVGImage.cpp: Passed the space property to the created image.
(WebCore::SVGImage::drawPatternForContainer):
* svg/graphics/SVGImageForContainer.cpp: Passed the space property to the image property.
(WebCore::SVGImageForContainer::drawPattern):

LayoutTests: [CSS Masking] -webkit-mask-repeat: space does not work
Added tests to verify correct usage of background-repeat: space and mask-repeat: space.
Added one test for each possible mask/background clip: border, padding and content
https://bugs.webkit.org/show_bug.cgi?id=119324

Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-30
Reviewed by Dirk Schulze.

* css3/background/background-repeat-space-border-expected.html: Added.
* css3/background/background-repeat-space-border.html: Added.
* css3/background/background-repeat-space-content-expected.html: Added.
* css3/background/background-repeat-space-content.html: Added.
* css3/background/background-repeat-space-padding-expected.html: Added.
* css3/background/background-repeat-space-padding.html: Added.
* css3/masking/mask-repeat-space-border-expected.html: Added.
* css3/masking/mask-repeat-space-border.html: Added.
* css3/masking/mask-repeat-space-content-expected.html: Added.
* css3/masking/mask-repeat-space-content.html: Added.
* css3/masking/mask-repeat-space-padding-expected.html: Added.
* css3/masking/mask-repeat-space-padding.html: Added.

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

6 years agoResolve unused parameter warning in WKBundlePageOverlay.cpp
commit-queue@webkit.org [Fri, 30 Aug 2013 12:56:52 +0000 (12:56 +0000)]
Resolve unused parameter warning in WKBundlePageOverlay.cpp
https://bugs.webkit.org/show_bug.cgi?id=120521

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Andreas Kling.

* WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:
(WKBundlePageOverlayFractionFadedIn):

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

6 years agoRemove AttachContext
antti@apple.com [Fri, 30 Aug 2013 12:33:15 +0000 (12:33 +0000)]
Remove AttachContext
https://bugs.webkit.org/show_bug.cgi?id=120518

Reviewed by Andreas Kling.

This type is not useful anymore. Just pass the precomputed style to attachRenderTree and reattach-or-not flag to detachRenderTree.

* style/StyleResolveTree.cpp:
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::attachChildren):
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachChildren):
(WebCore::Style::detachShadowRoot):
(WebCore::Style::detachRenderTree):
(WebCore::Style::reattachRenderTree):
(WebCore::Style::resolveLocal):
* style/StyleResolveTree.h:

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

6 years ago[Qt] Remove qt-5.0-wk2 from the baseline search paths because the migration of expect...
commit-queue@webkit.org [Fri, 30 Aug 2013 12:13:27 +0000 (12:13 +0000)]
[Qt] Remove qt-5.0-wk2 from the baseline search paths because the migration of expectations to qt-wk2 is done.
https://bugs.webkit.org/show_bug.cgi?id=120464

Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Jocelyn Turcotte.

* Scripts/webkitpy/port/qt.py:
(QtPort._search_paths):
* Scripts/webkitpy/port/qt_unittest.py:
(QtPortTest):

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

6 years agoUnreviewed, rolling out r154826.
commit-queue@webkit.org [Fri, 30 Aug 2013 09:34:35 +0000 (09:34 +0000)]
Unreviewed, rolling out r154826.
http://trac.webkit.org/changeset/154826
https://bugs.webkit.org/show_bug.cgi?id=120517

Still breaks icloud.com (Requested by mwenge_ on #webkit).

Source/WebCore:

* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalHeight):
* rendering/RenderBox.h:
(WebCore::RenderBox::intrinsicSize):
* rendering/RenderButton.h:
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::RenderListBox):
(WebCore::RenderListBox::computePreferredLogicalWidths):
(WebCore::RenderListBox::computeLogicalHeight):
* rendering/RenderListBox.h:
* rendering/RenderMenuList.h:
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::RenderTextControl):
(WebCore::RenderTextControl::computeLogicalHeight):
* rendering/RenderTextControl.h:

LayoutTests:

* fast/replaced/intrinsic-button-and-input-height-expected.txt: Removed.
* fast/replaced/intrinsic-button-and-input-height.html: Removed.
* fast/replaced/width-and-height-of-positioned-replaced-elements.html: Removed.
* platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.png: Removed.
* platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Removed.

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

6 years agoRemove code behind ENABLE(DIALOG_ELEMENT)
antti@apple.com [Fri, 30 Aug 2013 09:29:05 +0000 (09:29 +0000)]
Remove code behind ENABLE(DIALOG_ELEMENT)
https://bugs.webkit.org/show_bug.cgi?id=120467

Reviewed by Darin Adler.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/blackberry:

* WebCoreSupport/AboutDataEnableFeatures.in:

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

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

6 years agoTEST COMPLETE does not appear at the end of spellchecking tests
g.czajkowski@samsung.com [Fri, 30 Aug 2013 06:57:19 +0000 (06:57 +0000)]
TEST COMPLETE does not appear at the end of spellchecking tests
https://bugs.webkit.org/show_bug.cgi?id=120405

Reviewed by Alexey Proskuryakov.

Fix this by setting 'jsTestIsAsync = true' and calling finishJSTest()
when the asynchronous spellchecking tests end.

* editing/spelling/grammar-markers-hidpi.html:
* editing/spelling/grammar-markers.html:
Those have a correct output. However, remove unnecessary notifyDone due to
finishJSTest() already calls it.

* editing/spelling/grammar-paste-expected.txt:
* editing/spelling/grammar-paste.html:
* editing/spelling/script-tests/spellcheck-paste.js:
* editing/spelling/spellcheck-async-expected.txt:
* editing/spelling/spellcheck-async.html:
* editing/spelling/spellcheck-paste-expected.txt:
* editing/spelling/spellcheck-queue-expected.txt:
* editing/spelling/spellcheck-queue.html:
Change waitUntilDone() to 'jsTestIsAsync = true'
and notifyDone() to finishJSTest().

* editing/spelling/spellcheck-input-search-crash-expected.txt:
* editing/spelling/spellcheck-input-search-crash.html:
Call 'test()' before js-test-post.js to ensure right order of messages.

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

6 years agoUnduplicate the code to convert between VisiblePosition and index
rniwa@webkit.org [Fri, 30 Aug 2013 05:01:55 +0000 (05:01 +0000)]
Unduplicate the code to convert between VisiblePosition and index
https://bugs.webkit.org/show_bug.cgi?id=120506

Reviewed by Darin Adler.

Encapsulate the conversion between VisiblePosition and index into indexForVisiblePosition
and visiblePositionForIndexUsingCharacterIterator. It's unfortunate that these two functions
are different from the two other existing functions of similar names but we've at least
confined problems into a single cpp file now.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionForIndex):
(WebCore::AccessibilityRenderObject::indexForVisiblePosition):
* editing/Editor.cpp:
(WebCore::findFirstMarkable):
* editing/htmlediting.cpp:
(WebCore::indexForVisiblePosition):
(WebCore::visiblePositionForIndexUsingCharacterIterator):
* editing/htmlediting.h:
* html/HTMLTextFormControlElement.cpp:
(WebCore::hasVisibleTextArea):
(WebCore::HTMLTextFormControlElement::setSelectionRange):
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
(WebCore::HTMLTextFormControlElement::visiblePositionForIndex):
* html/HTMLTextFormControlElement.h:
* rendering/RenderTextControl.cpp:
* rendering/RenderTextControl.h:

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

6 years agoJust linking LLVM into JSC causes all plugin tests to fail
fpizlo@apple.com [Fri, 30 Aug 2013 03:30:00 +0000 (03:30 +0000)]
Just linking LLVM into JSC causes all plugin tests to fail
https://bugs.webkit.org/show_bug.cgi?id=113915

Tools:

Reviewed by Oliver Hunt.

Hide all LLVM symbols. This should prevent us from exporting LLVM's overrides for
raise/abort/__assert_rtn.

* Scripts/configure-llvm:

WebKitLibraries:

Reviewed by Oliver Hunt.

Updated the binary drops to r189627 of llvm.org, and used the new configure-llvm that does CPPFLAGS=-fvisibility=hidden.

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

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

6 years agoDe-bork Qt build.
akling@apple.com [Fri, 30 Aug 2013 02:43:40 +0000 (02:43 +0000)]
De-bork Qt build.

* Target.pri:

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

6 years agoUnreviewed build fix attempt for Windows.
ryuan.choi@samsung.com [Fri, 30 Aug 2013 02:15:47 +0000 (02:15 +0000)]
Unreviewed build fix attempt for Windows.

* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
Renamed JSMapConstructor and JSMapPrototype.

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

6 years agoFix build break after r154861
ryuan.choi@samsung.com [Fri, 30 Aug 2013 02:08:32 +0000 (02:08 +0000)]
Fix build break after r154861
https://bugs.webkit.org/show_bug.cgi?id=120503

Reviewed by Geoffrey Garen.

Unreviewed build fix attempt for GTK, Qt Windows and CMake based ports.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
* Target.pri:
* runtime/MapData.h:
(JSC::MapData::KeyType::KeyType):

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

6 years agoCodeBlock: LLIntCallLinkInfo vector can be sized-to-fit at creation.
akling@apple.com [Fri, 30 Aug 2013 01:21:23 +0000 (01:21 +0000)]
CodeBlock: LLIntCallLinkInfo vector can be sized-to-fit at creation.
<https://webkit.org/b/120487>

Reviewed by Oliver Hunt.

CodeBlock::m_llintCallLinkInfos never changes size after creation, so make it a Vector
instead of a SegmentedVector. Use resizeToFit() instead of grow() since we know the
exact amount of space needed.

* bytecode/CodeBlock.h:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::shrinkToFit):

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

6 years agoFix issues found by MSVC (which also happily fixes an unintentional pessimisation)
oliver@apple.com [Fri, 30 Aug 2013 01:10:18 +0000 (01:10 +0000)]
Fix issues found by MSVC (which also happily fixes an unintentional pessimisation)

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

6 years agoImplement ES6 Map object
oliver@apple.com [Fri, 30 Aug 2013 00:55:34 +0000 (00:55 +0000)]
Implement ES6 Map object
https://bugs.webkit.org/show_bug.cgi?id=120333

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Implement support for the ES6 Map type and related classes.

* JavaScriptCore.xcodeproj/project.pbxproj:
* heap/CopyToken.h: Add a new token to track copying the backing store
* runtime/CommonIdentifiers.h: Add new identifiers
* runtime/JSGlobalObject.cpp:
* runtime/JSGlobalObject.h:
    Add new structures and prototypes

* runtime/JSMap.cpp: Added.
* runtime/JSMap.h: Added.
    New JSMap class to represent a Map instance

* runtime/MapConstructor.cpp: Added.
* runtime/MapConstructor.h: Added.
    The Map constructor

* runtime/MapData.cpp: Added.
* runtime/MapData.h: Added.
    The most interesting data structure.  The roughly corresponds
    to the ES6 notion of MapData.  It provides the core JSValue->JSValue
    map implementation.  We implement it using 2 hashtables and a flat
    table.  Due to the different semantics of string comparisons vs.
    all others we need have one map keyed by String and the other by
    generic JSValue.  The actual table is represented more or less
    exactly as described in the ES6 draft - a single contiguous list of
    key/value pairs.  The entire map could be achieved with just this
    table, however we need the HashMaps in order to maintain O(1) lookup.

    Deleted values are simply cleared as the draft says, however the
    implementation compacts the storage on copy as long as the are no
    active iterators.

* runtime/MapPrototype.cpp: Added.
* runtime/MapPrototype.h: Added.
    Implement Map prototype functions

* runtime/VM.cpp:
    Add new structures.

LayoutTests:

Tests

* fast/js/basic-map-expected.txt: Added.
* fast/js/basic-map.html: Added.
* fast/js/script-tests/basic-map.js: Added.

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

6 years ago[Mac] Web Inspector: inspector/storage-panel-dom-storage-update.html fails
commit-queue@webkit.org [Fri, 30 Aug 2013 00:39:09 +0000 (00:39 +0000)]
[Mac] Web Inspector: inspector/storage-panel-dom-storage-update.html fails
https://bugs.webkit.org/show_bug.cgi?id=116241

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-08-29
Reviewed by Darin Adler.

* platform/mac/TestExpectations:

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

6 years agoAvoid Node references from AXObjectCache from leaking
rniwa@webkit.org [Fri, 30 Aug 2013 00:27:13 +0000 (00:27 +0000)]
Avoid Node references from AXObjectCache from leaking
https://bugs.webkit.org/show_bug.cgi?id=120501

Reviewed by Darin Adler.

Merge https://chromium.googlesource.com/chromium/blink/+/454f31497613b6d0fbcfb0df757254b64a177c06
without any tests since we don't have the same infrastructure to detect leaks in WebKit.

A real world example of this would be selecting an <option> item inside frame by keyboard. The node will not be deref()-ed until the topDocument() is detached.

The issue was that AccessibilityMenuListOption is created in childrenChanged()
hook called when its RenderObject is being destroyed. This patch modifies AccessibilityMenuListPopup so it won't create AccessibilityMenuListOption if its
element is already detached.

* accessibility/AccessibilityMenuListPopup.cpp:
(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::didUpdateActiveOption):

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

6 years agoImplement object-fit CSS property
simon.fraser@apple.com [Fri, 30 Aug 2013 00:23:23 +0000 (00:23 +0000)]
Implement object-fit CSS property
https://bugs.webkit.org/show_bug.cgi?id=52040

Source/WebCore:

Reviewed by Antti Koivisto, Sam Weinig.

Merge object-fit patch from Blink r156535, which started as a patch
by me.

Since then, the spec has gone to CR. This patch is an
implementation of object-fit as described in
http://www.w3.org/TR/2012/CR-css3-images-20120417/#object-fit

Object-fit is used to maintain the aspect ratio of replaced content
within its content box. All object-fit values but the initial one
('fill') will always ensure that the aspect ratio is retained, in
different ways (fit inside the content box, cover the content box, or
use intrinsic size). Painting is always clipped against the content
box, regardless of the 'overflow' property.

Tests: fast/css/object-fit/object-fit-canvas.html
       fast/css/object-fit/object-fit-embed.html
       fast/css/object-fit/object-fit-grow-landscape.html
       fast/css/object-fit/object-fit-grow-portrait.html
       fast/css/object-fit/object-fit-img-svg.html
       fast/css/object-fit/object-fit-img-svg2.html
       fast/css/object-fit/object-fit-img.html
       fast/css/object-fit/object-fit-input-image.html
       fast/css/object-fit/object-fit-object.html
       fast/css/object-fit/object-fit-shrink.html
       fast/css/object-fit/object-fit-video-poster.html
       fast/css/parsing-object-fit.html
       http/tests/css/object-fit-delayed-img-svg.html
       media/video-object-fit-change.html
       media/video-object-fit.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 EObjectFit):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* css/html.css:
(video): Set object-fit to 'contain'. This is how VIDEO elements
work, apparently.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
* loader/cache/CachedImage.h:
* platform/graphics/LayoutSize.h:
(WebCore::fitLayoutSizeToAspectRatio): New function to grow or shrink
in one dimension to fit to the aspect ratio.
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced): Apply object-fit and
clip if necessary.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::imageDimensionsChanged): Update intrinsic
size properly, and recalculate the inner content rectangle (the
exact area occupied by the replaced content) again if appropriate.
(WebCore::RenderImage::paintReplaced): Apply object-fit and clip
if necessary.
(WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):
object-fit may leave parts of the content box empty, in which case
it won't be fully obscured.
(WebCore::RenderImage::layout):
* rendering/RenderImage.h:
* rendering/RenderImageResource.cpp:
(WebCore::RenderImageResource::intrinsicSize): Need this to
differentiate between intrinsic and extrinsic size for SVG images.
* rendering/RenderImageResource.h:
* rendering/RenderImageResourceStyleImage.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::replacedContentRect): Return the
rectangle occupied by the replaced content. This will be identical
to the content box if object-fit is 'fill', but will typically be
something else for other values.
* rendering/RenderReplaced.h:
* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::videoBox): Not much left to do here, with
the new RenderReplaced::replacedContentRect() method in place.
(WebCore::RenderVideo::paintReplaced): Apply object-fit and clip
if necessary.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresRepaint):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Reviewed by Antti Koivisto, Sam Weinig.

Tests for object-fit.

* fast/css/object-fit/object-fit-canvas-expected.html: Added.
* fast/css/object-fit/object-fit-canvas.html: Added.
* fast/css/object-fit/object-fit-embed-expected.html: Added.
* fast/css/object-fit/object-fit-embed.html: Added.
* fast/css/object-fit/object-fit-grow-landscape-expected.html: Added.
* fast/css/object-fit/object-fit-grow-landscape.html: Added.
* fast/css/object-fit/object-fit-grow-portrait-expected.html: Added.
* fast/css/object-fit/object-fit-grow-portrait.html: Added.
* fast/css/object-fit/object-fit-img-expected.html: Added.
* fast/css/object-fit/object-fit-img-svg-expected.html: Added.
* fast/css/object-fit/object-fit-img-svg.html: Added.
* fast/css/object-fit/object-fit-img-svg2-expected.html: Added.
* fast/css/object-fit/object-fit-img-svg2.html: Added.
* fast/css/object-fit/object-fit-img.html: Added.
* fast/css/object-fit/object-fit-input-image-expected.html: Added.
* fast/css/object-fit/object-fit-input-image.html: Added.
* fast/css/object-fit/object-fit-object-expected.html: Added.
* fast/css/object-fit/object-fit-object.html: Added.
* fast/css/object-fit/object-fit-shrink-expected.html: Added.
* fast/css/object-fit/object-fit-shrink.html: Added.
* fast/css/object-fit/object-fit-video-poster-expected.html: Added.
* fast/css/object-fit/object-fit-video-poster.html: Added.
* fast/css/parsing-object-fit-expected.txt: Added.
* fast/css/parsing-object-fit.html: Added.
* fast/css/resources/circle.svg: Added.
* fast/css/resources/circle2.svg: Added.
* fast/css/resources/circles-landscape-small.png: Added.
* fast/css/resources/circles-landscape.png: Added.
* fast/css/resources/circles-portrait-small.png: Added.
* fast/css/resources/circles-portrait.png: Added.
* http/tests/css/object-fit-delayed-img-svg-expected.html: Added.
* http/tests/css/object-fit-delayed-img-svg.html: Added.
* media/video-object-fit-change-expected.html: Added.
* media/video-object-fit-change.html: Added.
* media/video-object-fit-expected.html: Added.
* media/video-object-fit.html: Added.
* platform/mac/TestExpectations:

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

6 years agonew-run-webkit-tests does not respect --no-sample-on-timeout switch
commit-queue@webkit.org [Fri, 30 Aug 2013 00:10:18 +0000 (00:10 +0000)]
new-run-webkit-tests does not respect --no-sample-on-timeout switch
https://bugs.webkit.org/show_bug.cgi?id=120491

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2013-08-29
Reviewed by Darin Adler.

* Scripts/webkitpy/port/server_process.py:
(ServerProcess._handle_timeout):

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

6 years agoSVG clipping, masking, and gradients-on-text do not respect the device scale factor
timothy_horton@apple.com [Fri, 30 Aug 2013 00:07:33 +0000 (00:07 +0000)]
SVG clipping, masking, and gradients-on-text do not respect the device scale factor
https://bugs.webkit.org/show_bug.cgi?id=120377
<rdar://problem/14777944>

Reviewed by Simon Fraser.

Tests: svg/custom/masking-clipping-hidpi.svg

calculateTransformationToOutermostCoordinateSystem should include the page's
device scale factor in its transform.

* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):

Add a test that ensures that when deviceScaleFactor=2, masks, clipping,
gradients, and patterns are rendered @2x.

* svg/custom/masking-clipping-hidpi-expected.svg: Added.
* svg/custom/masking-clipping-hidpi.svg: Added.

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

6 years agoAX: Crash when VoiceOver reference a TextMarker from an iframe that has been removed
cfleizach@apple.com [Thu, 29 Aug 2013 23:59:36 +0000 (23:59 +0000)]
AX: Crash when VoiceOver reference a TextMarker from an iframe that has been removed
https://bugs.webkit.org/show_bug.cgi?id=120318

Reviewed by Darin Adler.

Source/WebCore:

These crashes occur because an AXTextMarker is retrieved that reference a Node in an iframe.
The iframe goes away, but when it tries to clean up and remove that Node from the InUse cache,
the document() tree has already been detached, so it never clears the actual InUse cache.

The fix here is to pre-emptively clean up any nodes in the document going away when the frame is about to disconnect.

I'm removing the clearAXObjectCache() at the disconnectOwnerElement because it
   1) Cleared the AXObjectCache for the iframe document (which is always empty -- only the top level doc maintains the cache), because
        the document() tree had already been detached... so it essentially did nothing.
   2) And if it did work, we wouldn't want this behavior -- that is to say, when an iframe goes away, we don't want to clear the entire cache for all
       the other documents (there's even an existing layout test to verify this behavior).

Test: platform/mac/accessibility/stale-textmarker-crash.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::clearTextMarkerNodesInUse):
* accessibility/AXObjectCache.h:
* page/Frame.cpp:
(WebCore::Frame::disconnectOwnerElement):

LayoutTests:

* platform/mac/accessibility/stale-textmarker-crash-expected.txt: Added.
* platform/mac/accessibility/stale-textmarker-crash.html: Added.

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

6 years agoTeach DFG::Worklist and its clients that it may be reused for different kinds of...
fpizlo@apple.com [Thu, 29 Aug 2013 23:45:26 +0000 (23:45 +0000)]
Teach DFG::Worklist and its clients that it may be reused for different kinds of compilations
https://bugs.webkit.org/show_bug.cgi?id=120489

Reviewed by Geoffrey Garen.

If the baseline JIT hits an OSR entry trigger into the DFG and we already have a
DFG compilation but we've also started one or more FTL compilations, then we
shouldn't get confused. Previously we would have gotten confused because we would
see an in-process deferred compile (the FTL compile) and also an optimized
replacement (the DFG code).

If the baseline JIT hits an OSR entry trigger into the DFG and we previously
did two things in this order: triggered a tier-up compilation from the DFG into
the FTL, and then jettisoned the DFG code because it exited a bunch, then we
shouldn't be confused by the presence of an in-process deferred compile (the FTL
compile). Previously we would have waited for that compile to finish; but the more
sensible thing to do is to let it complete and then invalidate it, while at the
same time enqueueing a DFG compile to create a new, more valid, DFG code block.

If the DFG JIT hits a loop OSR entry trigger (into the FTL) and it has already
triggered an FTL compile for replacement, then it should fire off a second compile
instead of thinking that it can wait for that one to finish. Or vice-versa. We
need to allow for two FTL compiles to be enqueued at the same time (one for
replacement and one for OSR entry in a loop).

Then there's also the problem that DFG::compile() is almost certainly going to be
the hook for triggering both DFG compiles and the two kinds of FTL compiles, but
right now there is no way to tell it which one you want.

This fixes these problems and removes a bunch of potential confusion by making the
key for a compile in the DFG::Worklist be a CompilationMode (one of DFGMode,
FTLMode, or FTLForOSREntryMode). That mode is also passed to DFG::compile().

Awkwardly, this still leaves us in a no DFG->FTL tier-up situation - so
DFG::compile() is always passed DFGMode and then it might do an FTL compile if
possible. Fixing that is a bigger issue for a later changeset.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::checkIfOptimizationThresholdReached):
* dfg/DFGCompilationKey.cpp: Added.
(JSC::DFG::CompilationKey::dump):
* dfg/DFGCompilationKey.h: Added.
(JSC::DFG::CompilationKey::CompilationKey):
(JSC::DFG::CompilationKey::operator!):
(JSC::DFG::CompilationKey::isHashTableDeletedValue):
(JSC::DFG::CompilationKey::profiledBlock):
(JSC::DFG::CompilationKey::mode):
(JSC::DFG::CompilationKey::operator==):
(JSC::DFG::CompilationKey::hash):
(JSC::DFG::CompilationKeyHash::hash):
(JSC::DFG::CompilationKeyHash::equal):
* dfg/DFGCompilationMode.cpp: Added.
(WTF::printInternal):
* dfg/DFGCompilationMode.h: Added.
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
(JSC::DFG::compile):
* dfg/DFGDriver.h:
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::key):
* dfg/DFGPlan.h:
* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::enqueue):
(JSC::DFG::Worklist::compilationState):
(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::runThread):
* dfg/DFGWorklist.h:
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):

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

6 years ago[Windows] Unreviewed build fix after r154847.
bfulgham@apple.com [Thu, 29 Aug 2013 23:36:43 +0000 (23:36 +0000)]
[Windows] Unreviewed build fix after r154847.
If you are going to exclude promises, actually exclude the build components.

* interpreter/CallFrame.h: Exclude promise declarations
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::reset): Exclude promise code.
(JSC::JSGlobalObject::visitChildren): Ditto.
* runtime/VM.cpp: Ditto.
(JSC::VM::VM):
(JSC::VM::~VM):
* runtime/VM.h:

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

6 years ago[Windows] Unreviewed build fix after r154847.
bfulgham@apple.com [Thu, 29 Aug 2013 23:31:50 +0000 (23:31 +0000)]
[Windows] Unreviewed build fix after r154847.

* win/tools/vsprops/FeatureDefines.props: Add missing definition for ENABLE_PROMISES
* win/tools/vsprops/FeatureDefinesCairo.props: Ditto

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

6 years agoMake incrementing and decrementing numbers by 0.1 require the control key, and not...
timothy@apple.com [Thu, 29 Aug 2013 23:18:06 +0000 (23:18 +0000)]
Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.

https://bugs.webkit.org/show_bug.cgi?id=120492
<rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases

Reviewed by Joseph Pecoraro.

* UserInterface/CodeMirrorAdditions.js:
(alterNumber): Remove near zero check.

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

6 years ago[Windows] More unreviewed gardening of project file.
bfulgham@apple.com [Thu, 29 Aug 2013 23:06:34 +0000 (23:06 +0000)]
[Windows] More unreviewed gardening of project file.
Move css files inline with related source code.

* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:

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

6 years ago[BlackBerry] Scrolling text with FCC does not work while composing an email
commit-queue@webkit.org [Thu, 29 Aug 2013 23:00:52 +0000 (23:00 +0000)]
[BlackBerry] Scrolling text with FCC does not work while composing an email
https://bugs.webkit.org/show_bug.cgi?id=120493

Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-08-29
Reviewed by Rob Buis.
Internally reviewed by Gen Mak and Konrad Piascik.

JIRA 468007
m_cannotScrollIfHasFloatLayoutSizeRoundingError was true which prevented
FCC scrolling.
TransformedActualVisibleSize is quite different in email compose card
than browser. In this case, the issue was caused by transformedActualVisibleSize(768, 750)
which was not the actual visible size of the webkit part of the Cascades
view when keyboard popped up. We usually don't do keyboard adaptation for
windowless page clients; therefore, there will be no viewport change of
WebKit.
To fix the bug, we can ignore the windowless page clients.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::hasFloatLayoutSizeRoundingError):

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

6 years ago.: Add ENABLE guards for Promises
weinig@apple.com [Thu, 29 Aug 2013 22:54:38 +0000 (22:54 +0000)]
.: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Source/autotools/SetupWebKitFeatures.m4:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmakeconfig.h.cmake:

Source/JavaScriptCore: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:
* runtime/JSGlobalObject.cpp:
* runtime/JSGlobalObject.h:
* runtime/JSPromise.cpp:
* runtime/JSPromise.h:
* runtime/JSPromiseCallback.cpp:
* runtime/JSPromiseCallback.h:
* runtime/JSPromiseConstructor.cpp:
* runtime/JSPromiseConstructor.h:
* runtime/JSPromisePrototype.cpp:
* runtime/JSPromisePrototype.h:
* runtime/JSPromiseResolver.cpp:
* runtime/JSPromiseResolver.h:
* runtime/JSPromiseResolverConstructor.cpp:
* runtime/JSPromiseResolverConstructor.h:
* runtime/JSPromiseResolverPrototype.cpp:
* runtime/JSPromiseResolverPrototype.h:

Source/WebCore: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac: Add ENABLE gaurds for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit2: Add ENABLE gaurds for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Configurations/FeatureDefines.xcconfig:

Source/WTF: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* wtf/FeatureDefines.h:

Tools: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

* Scripts/webkitperl/FeatureList.pm:
* qmake/mkspecs/features/features.pri:

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

6 years agoREGRESSION (r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark
msaboff@apple.com [Thu, 29 Aug 2013 22:47:20 +0000 (22:47 +0000)]
REGRESSION (r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark
https://bugs.webkit.org/show_bug.cgi?id=120080

Rubber stamped by Oliver Hunt.

Added layout test that crashes without the fix in bug 120080.

* fast/js/lazy-create-arguments-from-get-by-val-expected.txt: Added.
* fast/js/lazy-create-arguments-from-get-by-val.html: Added.
* fast/js/script-tests/lazy-create-arguments-from-get-by-val.js: Added.

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

6 years agoUnreviewed, fix FTL build.
fpizlo@apple.com [Thu, 29 Aug 2013 22:41:15 +0000 (22:41 +0000)]
Unreviewed, fix FTL build.

* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::callCheck):

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

6 years agoInspector: Use a bit of RefPtr::release() in generated code.
akling@apple.com [Thu, 29 Aug 2013 21:20:03 +0000 (21:20 +0000)]
Inspector: Use a bit of RefPtr::release() in generated code.
<https://webkit.org/b/120485>

Reviewed by Darin Adler.

Just something I spotted while reading InspectorBackendDispatcher.cpp.
Avoid 3 cases of reference count churnery.

* inspector/CodeGeneratorInspectorStrings.py:

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

6 years agoXMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
dino@apple.com [Thu, 29 Aug 2013 21:12:11 +0000 (21:12 +0000)]
XMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
https://bugs.webkit.org/show_bug.cgi?id=120490

Marking as [ Pass Failure ] for the moment.

* TestExpectations:

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

6 years ago[GTK] Should enable WebGL by default on MiniBrowser
commit-queue@webkit.org [Thu, 29 Aug 2013 20:52:29 +0000 (20:52 +0000)]
[GTK] Should enable WebGL by default on MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=120420

Patch by Andre Moreira Magalhaes <andre.magalhaes@collabora.co.uk> on 2013-08-29
Reviewed by Gustavo Noronha Silva.

Enable WebGL by default on MiniBrowser.

* MiniBrowser/gtk/main.c:
(main):

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

6 years agoAccording to DOM4, all DocType nodes should have a document
ch.dumez@sisa.samsung.com [Thu, 29 Aug 2013 20:48:16 +0000 (20:48 +0000)]
According to DOM4, all DocType nodes should have a document
https://bugs.webkit.org/show_bug.cgi?id=99244

Reviewed by Darin Adler.

Source/WebCore:

Doctypes now always have a node document and can be moved across document boundaries as per
the latest DOM4 specification:
http://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype
http://dom.spec.whatwg.org/#dom-node-ownerdocument

This means that DOMImplementation.createDocumentType() now sets the ownerDocument of the
new DocumentType Node to the associated document of the current "context" object. In
DOM4, all nodes have a document at all times. DocumentType nodes can now be moved across
document boundaries so that the node can be added to a Document after being created.

This means we will no longer need to special case DocumentType nodes in the code and
Node::document() can no longer return NULL, which means that we'll be able to remove
NULL checks in call sites.

Firefox stable and since recently Blink already follow DOM4 here while IE10 does not (yet).

Test: fast/dom/createDocumentType-ownerDocument.html

* dom/ContainerNode.cpp:
(WebCore::checkAcceptChild):
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocumentType):
(WebCore::DOMImplementation::createDocument):
* dom/Node.h:
(WebCore::Node::document):

LayoutTests:

Add layout test to check that DocumentType Nodes have a document after being
created. Also update a few existing test cases to reflect this change.

* fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt:
* fast/dom/DOMImplementation/createDocument-with-used-doctype.html:
* fast/dom/DOMImplementation/resources/createDocument-with-used-doctype-frame.html:
* fast/dom/XMLSerializer-doctype2-expected.txt:
* fast/dom/XMLSerializer-doctype2.html:
* fast/dom/createDocumentType-ownerDocument-expected.txt: Added.
* fast/dom/createDocumentType-ownerDocument.html: Added.
* fast/dom/move-nodes-across-documents.html:
* fast/dom/node-iterator-with-doctype-root-expected.txt:
* fast/dom/node-iterator-with-doctype-root.html:
* fast/events/dispatch-event-no-document-expected.txt:
* fast/events/dispatch-event-no-document.html:

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

6 years agoREGRESSION(r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark.
commit-queue@webkit.org [Thu, 29 Aug 2013 20:35:32 +0000 (20:35 +0000)]
REGRESSION(r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark.
https://bugs.webkit.org/show_bug.cgi?id=120080

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-08-29
Reviewed by Michael Saboff.

* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_get_argument_by_val): Revert changes introduced by r153222 in this function.

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

6 years agoKill code that became dead after http://trac.webkit.org/changeset/154833
fpizlo@apple.com [Thu, 29 Aug 2013 20:30:05 +0000 (20:30 +0000)]
Kill code that became dead after trac.webkit.org/changeset/154833

Rubber stamped by Oliver Hunt.

* dfg/DFGDriver.h:

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

6 years agoCodeBlock's magic for scaling tier-up thresholds should be more reusable
fpizlo@apple.com [Thu, 29 Aug 2013 20:27:15 +0000 (20:27 +0000)]
CodeBlock's magic for scaling tier-up thresholds should be more reusable
https://bugs.webkit.org/show_bug.cgi?id=120486

Reviewed by Oliver Hunt.

Removed the counterValueForBlah() methods and exposed the reusable scaling logic
as a adjustedCounterValue() method.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::adjustedCounterValue):
(JSC::CodeBlock::optimizeAfterWarmUp):
(JSC::CodeBlock::optimizeAfterLongWarmUp):
(JSC::CodeBlock::optimizeSoon):
* bytecode/CodeBlock.h:
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::handleExitCounts):

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

6 years agoPasteboard::writeSelection violates layering (first step, fixes it for Mac platform...
darin@apple.com [Thu, 29 Aug 2013 20:09:21 +0000 (20:09 +0000)]
Pasteboard::writeSelection violates layering (first step, fixes it for Mac platform only)
https://bugs.webkit.org/show_bug.cgi?id=120483

Reviewed by Anders Carlsson.

* editing/Editor.cpp:
(WebCore::Editor::cut): Added some comments. Use the new writeSelectionToPasteboard
function on Mac instead of Pasteboard::writeSelection.
(WebCore::Editor::copy): Ditto.

* editing/Editor.h: Removed an old unused Mac-only writeSelectionToPasteboard function
that was a cover that called through to Pasteboard::writeSelectionForTypes. Added a new
Mac-only writeSelectionToPasteboard function that is destined to become cross-platform soon.

* editing/mac/EditorMac.mm:
(WebCore::Editor::writeSelectionToPasteboard): Added. Uses a new pattern where the Editor
puts all the data into a structure called PasteboardWebContent then calls the Pasteboard to
do the work. The platform-specific aspect of PasteboardWebContent is what formats are needed
for each platform.

* page/DragController.cpp:
(WebCore::DragController::startDrag): Added some comments. Use the new writeSelectionToPasteboard
function on Mac instead of Pasteboard::writeSelection.

* platform/Pasteboard.h: Remove some unneeded forward declarations. Added comments for all functions
that don't belong in this class because they are layering violations; this becomes the to do list for
the project we are beginning here. Added the new PasteboardWebContent structure, empty on all platforms
except for Mac for now. Removed writeSelectionForTypes, a Mac-only function that is no longer used.
Added setTypes and writeAfterSettingTypes, the two halves of the future function named writeWebContent.
Put the writeSelection function inside a "not Mac" if statement. Later to be deleted entirely.

* platform/mac/PasteboardMac.mm: Removed now-unneeded selectionPasteboardTypes,
Pasteboard::writeSelectionForTypes, and writeSelection functions.
(WebCore::Pasteboard::setTypes): Added. First half of writing web content to the pasteboard.
(WebCore::Pasteboard::writeAfterSettingTypes): Added. Second half of writing web content to the pasteboard.

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

6 years agoRemove code behind ENABLE(DIALOG_ELEMENT)
antti@apple.com [Thu, 29 Aug 2013 20:06:33 +0000 (20:06 +0000)]
Remove code behind ENABLE(DIALOG_ELEMENT)
https://bugs.webkit.org/show_bug.cgi?id=120467

Reviewed by Darin Adler.

It is incomplete and no one is building it.

* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* DerivedSources.pri:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* css/html.css:
* dom/ContextFeatures.cpp:
* dom/ContextFeatures.h:
* dom/Document.cpp:
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::removedFrom):
(WebCore::Element::setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries):
* dom/Element.h:
(WebCore::Element::isDisabledFormControl):
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
* html/HTMLDialogElement.cpp: Removed.
* html/HTMLDialogElement.h: Removed.
* html/HTMLDialogElement.idl: Removed.
* html/HTMLElementsAllInOne.cpp:
* html/HTMLTagNames.in:
* rendering/RenderDialog.cpp: Removed.
* rendering/RenderDialog.h: Removed.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rebuildZOrderLists):
(WebCore::RenderLayer::collectLayers):
* rendering/RenderLayer.h:
* rendering/RenderObject.h:
(WebCore::RenderObject::isCounter):
* rendering/RenderingAllInOne.cpp:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
* testing/InternalSettings.h:

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

6 years agoReverting a change that was made in https://bugs.webkit.org/show_bug.cgi?id=120472.
dino@apple.com [Thu, 29 Aug 2013 19:45:44 +0000 (19:45 +0000)]
Reverting a change that was made in https://bugs.webkit.org/show_bug.cgi?id=120472.

* media/track/track-cue-rendering-on-resize-expected.txt:

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

6 years agoCodeBlock::prepareForExecution() is silly
fpizlo@apple.com [Thu, 29 Aug 2013 19:28:55 +0000 (19:28 +0000)]
CodeBlock::prepareForExecution() is silly
https://bugs.webkit.org/show_bug.cgi?id=120453

Reviewed by Oliver Hunt.

Instead of saying:

    codeBlock->prepareForExecution(stuff, BaselineJIT, more stuff)

we should just say:

    JIT::compile(stuff, codeBlock, more stuff);

And similarly for the LLInt and DFG.

This kills a bunch of code, since CodeBlock::prepareForExecution() is just a
wrapper that uses the JITType argument to call into the appropriate execution
engine, which is what the user wanted to do in the first place.

* CMakeLists.txt:
* GNUmakefile.list.am:
* JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Target.pri:
* bytecode/CodeBlock.cpp:
* bytecode/CodeBlock.h:
* dfg/DFGDriver.cpp:
(JSC::DFG::compileImpl):
(JSC::DFG::compile):
* dfg/DFGDriver.h:
(JSC::DFG::tryCompile):
* dfg/DFGOSRExitPreparation.cpp:
(JSC::DFG::prepareCodeOriginForOSRExit):
* dfg/DFGWorklist.cpp:
(JSC::DFG::globalWorklist):
* dfg/DFGWorklist.h:
* jit/JIT.cpp:
(JSC::JIT::privateCompile):
* jit/JIT.h:
(JSC::JIT::compile):
* jit/JITStubs.cpp:
(JSC::DEFINE_STUB_FUNCTION):
* llint/LLIntEntrypoint.cpp: Copied from Source/JavaScriptCore/llint/LLIntEntrypoints.cpp.
(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setEntrypoint):
* llint/LLIntEntrypoint.h: Copied from Source/JavaScriptCore/llint/LLIntEntrypoints.h.
* llint/LLIntEntrypoints.cpp: Removed.
* llint/LLIntEntrypoints.h: Removed.
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
* runtime/Executable.cpp:
(JSC::ScriptExecutable::prepareForExecutionImpl):

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

6 years agoFix slider thumb event handling to use local, not absolute coordinates
simon.fraser@apple.com [Thu, 29 Aug 2013 19:15:33 +0000 (19:15 +0000)]
Fix slider thumb event handling to use local, not absolute coordinates
https://bugs.webkit.org/show_bug.cgi?id=120480

Reviewed by Darin Adler.

SliderThumbElement::setPositionFromPoint() did all of its coordinate
math by mapping renderer rects into absolute coordinates, which was
unnecessary and expensive.

Fix by doing all the math in the coordinate space of the input's
renderer. This simplified the code. Also, currentPosition
was computed but unused, so was removed.

No behavior change. Tested by fast/forms/range/slider-transformed.html

* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint):

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