Fixing mediastream debug build
https://bugs.webkit.org/show_bug.cgi?id=123104

Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-10-21
Reviewed by Andreas Kling.

No new tests needed.

* Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
(WebCore::RTCDTMFToneChangeEvent::create):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157723 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore: Support computed property names in object literals
https://bugs.webkit.org/show_bug.cgi?id=123112

Reviewed by Michael Saboff.

Add support for computed property names to the parser.

* bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitBytecode):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createProperty):
(JSC::ASTBuilder::getName):
* parser/NodeConstructors.h:
(JSC::PropertyNode::PropertyNode):
* parser/Nodes.h:
(JSC::PropertyNode::expressionName):
(JSC::PropertyNode::name):
* parser/Parser.cpp:
(JSC::::parseProperty):
(JSC::::parseStrictObjectLiteral):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::Property::Property):
(JSC::SyntaxChecker::createProperty):
(JSC::SyntaxChecker::operatorStackPop):

LayoutTests: Support expression property names in object literals
https://bugs.webkit.org/show_bug.cgi?id=123112

Reviewed by Michael Saboff.

Add tests

* js/basic-computed-property-name-expected.txt: Added.
* js/basic-computed-property-name.html: Added.
* js/parser-syntax-check-expected.txt:
* js/script-tests/basic-computed-property-name.js: Added.
(a.string_appeared_here.runTest):
* js/script-tests/parser-syntax-check.js:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157724 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Regions] The layers from the flow thread should be collected under the regions' layers.
https://bugs.webkit.org/show_bug.cgi?id=120457

Patch by Mihai Maerean <mmaerean@adobe.com> on 2013-10-21
Reviewed by David Hyatt.

Source/WebCore:

This patch is based on the work of Alexandru Chiculita at https://bugs.webkit.org/attachment.cgi?id=203872&action=review

The composited layers inside the named flow threads are collected as part of the regions (as children of the
GraphicsLayer of the layer that corresponds to the region (which is attached to the parent renderer of
RenderNameFlowFragment)).
When a region displays a layer that needs accelerated compositing we activate the accelerated compositing for
that region too (inside RenderLayerCompositor::computeRegionCompositingRequirements).

This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.

Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
the element that has the flow-from property. When a composited layer is needed for the region, it sits in it's
parent renderer, not in the region renderer (RenderNamedFlowFragment).

Tests: compositing/regions/crash-transform-inside-region.html
       compositing/regions/floated-region-with-transformed-child.html
       compositing/regions/move-layer-from-one-region-to-another.html
       compositing/regions/propagate-region-box-shadow-border-padding-for-video.html
       compositing/regions/propagate-region-box-shadow-border-padding.html
       compositing/regions/region-as-layer-in-another-flowthread.html
       compositing/regions/transform-transparent-positioned-video-inside-region.html
       compositing/regions/transformed-layer-inside-transformed-layer.html
       compositing/regions/z-index-update.html
       compositing/regions/z-index.html

* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateRenderFlowThreadLayersIfNeeded):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::propagateStyleToAnonymousChildren): Not for RenderFlowThreads, as they are updated
through the RenderView::styleDidChange function.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout): When the layout of the flow thread is over (including the 2 phase layout),
we update all the mappings between the layers inside the flow thread and the regions where those layers will be
painted.
(WebCore::RenderFlowThread::hasCompositingRegionDescendant): Whether any of the regions has a compositing descendant.
(WebCore::RenderFlowThread::getLayerListForRegion):
(WebCore::RenderFlowThread::regionForCompositedLayer):
(WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
(WebCore::RenderFlowThread::collectsGraphicsLayersUnderRegions):
(WebCore::RenderFlowThread::updateLayerToRegionMappings): Triggers an update of the layers if a layer has moved
from a region to another since the last update.
(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
* rendering/RenderFlowThread.h:
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::pushRenderFlowThread):
* rendering/RenderGeometryMap.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::enclosingFlowThreadAncestor):
(WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions):
(WebCore::RenderLayer::hitTestList):
(WebCore::RenderLayer::calculateLayerBounds): When we calculate the bounds of the RenderView, we ignore those
flow threads that collect the graphics layers under the regions.
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyNormalFlowList):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldClipCompositedBounds): Not if it's a flow thread that collects the graphics
layers under the regions
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Now adjusts the ancestorCompositingBounds for the FlowThread.
(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): Make sure that the region propagates
its borders, paddings, outlines or box-shadows to layers inside it.
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Now calls computeRegionCompositingRequirements.
(WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Do not iterate the RenderFlowThread directly if
we are going to collect the composited layers as part of regions.
(WebCore::RenderLayerCompositor::rebuildRegionCompositingLayerTree):
(WebCore::RenderLayerCompositor::canBeComposited): CSS Regions flow threads do not need to be composited as we
use composited RenderRegions to render the background of the RenderFlowThread.
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason): If it's a container of a css region.
* rendering/RenderLayerCompositor.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.h:
(WebCore::RenderNamedFlowFragment::layerOwner): When the content inside the region requires the region to have a
layer, the layer will be created on the region's parent renderer instead. This method returns that renderer
holding the layer. The return value may be null.
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::nextRendererForNode):
(WebCore::RenderNamedFlowThread::previousRendererForNode):
(WebCore::RenderNamedFlowThread::addFlowChild):
(WebCore::RenderNamedFlowThread::removeFlowChild):
(WebCore::RenderNamedFlowThread::collectsGraphicsLayersUnderRegions):
* rendering/RenderNamedFlowThread.h: m_flowThreadChildList is now allocated through an OwnPtr to keep the render
arena under the size limit.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderRegion.h:
(WebCore::toRenderRegion):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
* WebCore.exp.in: WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions

LayoutTests:

* compositing/regions/crash-transform-inside-region-expected.html: Added.
* compositing/regions/crash-transform-inside-region.html: Added.
* compositing/regions/floated-region-with-transformed-child-expected.html: Added.
* compositing/regions/floated-region-with-transformed-child.html: Added.
* compositing/regions/move-layer-from-one-region-to-another-expected.html: Added.
* compositing/regions/move-layer-from-one-region-to-another.html: Added.
* compositing/regions/propagate-region-box-shadow-border-padding-expected.html: Added.
* compositing/regions/propagate-region-box-shadow-border-padding-for-video-expected.html: Added.
* compositing/regions/propagate-region-box-shadow-border-padding-for-video.html: Added.
* compositing/regions/propagate-region-box-shadow-border-padding.html: Added.
* compositing/regions/region-as-layer-in-another-flowthread-expected.html: Added.
* compositing/regions/region-as-layer-in-another-flowthread.html: Added.
* compositing/regions/transform-transparent-positioned-video-inside-region-expected.html: Added.
* compositing/regions/transform-transparent-positioned-video-inside-region.html: Added.
* compositing/regions/transformed-layer-inside-transformed-layer-expected.html: Added.
* compositing/regions/transformed-layer-inside-transformed-layer.html: Added.
* compositing/regions/webkit-flow-renderer-layer-compositing-expected.html:
* compositing/regions/webkit-flow-renderer-layer-compositing.html:
* compositing/regions/z-index-expected.html: Added.
* compositing/regions/z-index-update-expected.html: Added.
* compositing/regions/z-index-update.html: Added.
* compositing/regions/z-index.html: Added.
* fast/multicol/mixed-positioning-stacking-order-expected.html:
* fast/multicol/mixed-positioning-stacking-order.html:
* fast/repaint/region-painting-composited-element-expected.html:
* fast/repaint/region-painting-composited-element.html:
* platform/mac-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157725 268f45cc-cd09-0410-ab3c-d52691b4dbfc
RenderScrollbarPart doesn't need styleWillChange().
<https://webkit.org/b/123113>

We will call setInline(false) in styleDidChange(), there's no need
to override styleWillChange() just to do it twice.

Reviewed by Darin Adler.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157726 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Restore accidentally removed files.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157727 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remote Layer Tree: Backing store should take contentsScale into account
https://bugs.webkit.org/show_bug.cgi?id=123106

Reviewed by Simon Fraser.

* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(PlatformCALayerRemote::ensureBackingStore):
(PlatformCALayerRemote::setNeedsDisplay):
(PlatformCALayerRemote::setContentsScale):
Inform the backing store of the contentsScale, and when it changes.

* WebProcess/WebPage/mac/RemoteLayerBackingStore.h:
(WebKit::RemoteLayerBackingStore::scale): Added.
(WebKit::RemoteLayerBackingStore::mapToContentCoordinates): Added.
* WebProcess/WebPage/mac/RemoteLayerBackingStore.mm:
(RemoteLayerBackingStore::RemoteLayerBackingStore):
(RemoteLayerBackingStore::encode):
(RemoteLayerBackingStore::decode):
(RemoteLayerBackingStore::mapToContentCoordinates):
Factor out flipping so we can use it for repaints in multiple places.

(RemoteLayerBackingStore::setNeedsDisplay):
(RemoteLayerBackingStore::display):
Create a buffer scaled up by contentsScale, take the scale into account
when copying clean bits from the front buffer, and apply the scale before
painting into the back buffer.

* WebCore.exp.in:
Export FloatRect::scale.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157728 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shapes][CSS Regions] Don't apply shape-inside when we have multiple auto-height regions and the height is not resolved
https://bugs.webkit.org/show_bug.cgi?id=123103

Reviewed by David Hyatt.

When we have multiple regions with auto-height, the region's height is not resolved from other elements we can't apply the
the shape on the region. This patch prevents to apply the shape and fixes the behavior for these cases.

Source/WebCore:

Test: fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):

LayoutTests:

* fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions-expected.html: Added.
* fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157729 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Transition most use of IDBBackingStoreLevelDB to IDBBackingStoreInterface
https://bugs.webkit.org/show_bug.cgi?id=123105

Reviewed by Anders Carlsson.

Source/WebCore:

Export more required headers:
* WebCore.xcodeproj/project.pbxproj:

Flesh out many of the pure virtual methods on IDBBackingStoreInterface, as well as
the RecordIdentifier and Cursor classes:

* Modules/indexeddb/IDBBackingStoreInterface.h:
(WebCore::IDBBackingStoreInterface::RecordIdentifier::~RecordIdentifier):
(WebCore::IDBBackingStoreInterface::Cursor::~Cursor):

Use IDBBackingStoreInterface, IDBBackingStoreInterface::RecordIdentifier, and
IDBBackingStoreInterface::Cursor wherever possible:

* Modules/indexeddb/IDBFactoryBackendInterface.cpp:
* Modules/indexeddb/IDBFactoryBackendInterface.h:

* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::ObjectStoreKeyCursorImpl::clone):
(WebCore::ObjectStoreCursorImpl::clone):
(WebCore::IndexKeyCursorImpl::clone):
(WebCore::IndexCursorImpl::clone):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
(WebCore::IDBBackingStoreLevelDB::Transaction::Transaction):
(WebCore::IDBBackingStoreLevelDB::Transaction::begin):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
(WebCore::IDBBackingStoreLevelDB::RecordIdentifier::RecordIdentifier):

* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:

(WebCore::IDBCursorBackendLevelDB::create):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::create):
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
(WebCore::IDBDatabaseBackendLevelDB::backingStore):
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
(WebCore::IDBDatabaseBackendLevelDB::createTransaction):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:

* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::createTransactionBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:

* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
(WebCore::IDBObjectStoreBackendLevelDB::makeIndexWriters):
(WebCore::IDBObjectStoreBackendLevelDB::generateKey):
(WebCore::IDBObjectStoreBackendLevelDB::updateKeyGenerator):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:

* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::create):
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:

* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::GetOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):

Source/WebKit2:

Stub out a new pure virtual method:
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.cpp:
(WebKit::WebIDBFactoryBackend::createTransactionBackend):
* WebProcess/Databases/IndexedDB/WebIDBFactoryBackend.h:

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