XvfbDriver should set up Xvfb instances providing screens of 8-bit depth
https://bugs.webkit.org/show_bug.cgi?id=121951

Reviewed by Carlos Garcia Campos.

Screens with 24-bit depth are causing problems as it doesn't seem to be possible to fall back to
software rendering successfully on the GTK 64-bit release builder, resulting in crashes in almost
500 layout tests that trigger accelerated compositing to be used.

* Scripts/webkitpy/port/xvfbdriver.py:
(XvfbDriver._start):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156457 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove empty JSFooCustom.cpp files.
<https://webkit.org/b/121955>

Reviewed by Anders Carlsson.

There's no sense in slowing down build times with empty files that
still include a bunch of headers.

* bindings/js/JSAudioBufferCustom.cpp: Removed.
* bindings/js/JSCSSFontFaceRuleCustom.cpp: Removed.
* bindings/js/JSCSSImportRuleCustom.cpp: Removed.
* bindings/js/JSCSSMediaRuleCustom.cpp: Removed.
* bindings/js/JSCSSPageRuleCustom.cpp: Removed.
* bindings/js/JSCSSStyleRuleCustom.cpp: Removed.
* bindings/js/JSDOMImplementationCustom.cpp: Removed.
* bindings/js/JSDOMTokenListCustom.cpp: Removed.
* bindings/js/JSHTMLStyleElementCustom.cpp: Removed.
* bindings/js/JSMediaListCustom.cpp: Removed.
* bindings/js/JSProcessingInstructionCustom.cpp: Removed.
* bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp: Removed.
* bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp: Removed.
* bindings/js/JSXMLHttpRequestUploadCustom.cpp: Removed.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156458 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Logging of accessibility events is not disabled between tests
https://bugs.webkit.org/show_bug.cgi?id=121957

Unreviewed gardening. Marking accessibility tests as flaky while
an issue with the logging of accessibility events is investigated.

* platform/gtk/TestExpectations: Added flaky expectations.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156459 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][WK2] Logging of accessibility events is not disabled between tests
https://bugs.webkit.org/show_bug.cgi?id=121957

Unreviewed gardening again. Now moving the expected flakiness to
the WebKit2GTK+ port, where it actually belongs to.

* platform/gtk-wk2/TestExpectations: Added expectations.
* platform/gtk/TestExpectations: Removed expectations.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156460 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r156457.
http://trac.webkit.org/changeset/156457
https://bugs.webkit.org/show_bug.cgi?id=121960

Broke webkitpy tests. (Requested by kling on #webkit).

* Scripts/webkitpy/port/xvfbdriver.py:
(XvfbDriver._start):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156461 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Tons of warnings caused by using FORTIFY_SOURCE in an unoptimized build
https://bugs.webkit.org/show_bug.cgi?id=121836

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2013-09-26
Reviewed by Martin Robinson.

* Source/autotools/SetupCompilerFlags.m4: only consider enabling FORTIFY_SOURCE if optimizations have
been enabled, since they are required for FORTIFY_SOURCE to work, and enabling FORTIFY_SOURCE unconditionally
generates warnings in newer glibc.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156462 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed GTK gardening.

Unskip media/context-menu-actions.html which is passing now.

* platform/gtk-wk2/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156463 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement prefixed-destructuring assignment
https://bugs.webkit.org/show_bug.cgi?id=121930

Reviewed by Mark Hahnenberg.

Source/JavaScriptCore:

This is mostly simple - the semantics of deconstruction are already
present in the language, so most of the complexity (if you call it
that) is addition of new AST nodes, and parsing the syntax.

In order to get correct semantics for the parameter lists, FunctionParameters
now needs to store refcounted references to the parameter patterns.
There's also a little work to ensure that variable creation and assignment
occurs in the correct order while the BytecodeGenerator is being constructed.

* bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedFunctionExecutable::paramString):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitExpressionInfo):
* bytecompiler/NodesCodegen.cpp:
(JSC::ForInNode::emitBytecode):
(JSC::DeconstructingAssignmentNode::emitBytecode):
(JSC::DeconstructionPatternNode::~DeconstructionPatternNode):
(JSC::ArrayPatternNode::emitBytecode):
(JSC::ArrayPatternNode::emitDirectBinding):
(JSC::ArrayPatternNode::toString):
(JSC::ArrayPatternNode::collectBoundIdentifiers):
(JSC::ObjectPatternNode::toString):
(JSC::ObjectPatternNode::emitBytecode):
(JSC::ObjectPatternNode::collectBoundIdentifiers):
(JSC::BindingNode::emitBytecode):
(JSC::BindingNode::toString):
(JSC::BindingNode::collectBoundIdentifiers):
* parser/ASTBuilder.h:
(JSC::ASTBuilder::createFormalParameterList):
(JSC::ASTBuilder::createForInLoop):
(JSC::ASTBuilder::addVar):
(JSC::ASTBuilder::createDeconstructingAssignment):
(JSC::ASTBuilder::createArrayPattern):
(JSC::ASTBuilder::appendArrayPatternSkipEntry):
(JSC::ASTBuilder::appendArrayPatternEntry):
(JSC::ASTBuilder::createObjectPattern):
(JSC::ASTBuilder::appendObjectPatternEntry):
(JSC::ASTBuilder::createBindingLocation):
* parser/NodeConstructors.h:
(JSC::CommaNode::CommaNode):
(JSC::ParameterNode::ParameterNode):
(JSC::ForInNode::ForInNode):
(JSC::DeconstructionPatternNode::DeconstructionPatternNode):
(JSC::ArrayPatternNode::ArrayPatternNode):
(JSC::ArrayPatternNode::create):
(JSC::ObjectPatternNode::ObjectPatternNode):
(JSC::ObjectPatternNode::create):
(JSC::BindingNode::create):
(JSC::BindingNode::BindingNode):
(JSC::DeconstructingAssignmentNode::DeconstructingAssignmentNode):
* parser/Nodes.cpp:
(JSC::FunctionParameters::create):
(JSC::FunctionParameters::FunctionParameters):
(JSC::FunctionParameters::~FunctionParameters):
* parser/Nodes.h:
(JSC::ExpressionNode::isDeconstructionNode):
(JSC::ArrayNode::elements):
(JSC::CommaNode::append):
(JSC::ParameterNode::pattern):
(JSC::FunctionParameters::at):
(JSC::FunctionParameters::patterns):
(JSC::DeconstructionPatternNode::isBindingNode):
(JSC::DeconstructionPatternNode::emitDirectBinding):
(JSC::ArrayPatternNode::appendIndex):
(JSC::ObjectPatternNode::appendEntry):
(JSC::ObjectPatternNode::Entry::Entry):
(JSC::BindingNode::boundProperty):
(JSC::BindingNode::isBindingNode):
(JSC::DeconstructingAssignmentNode::bindings):
(JSC::DeconstructingAssignmentNode::isLocation):
(JSC::DeconstructingAssignmentNode::isDeconstructionNode):
* parser/Parser.cpp:
(JSC::::Parser):
(JSC::::parseVarDeclaration):
(JSC::::parseVarDeclarationList):
(JSC::::createBindingPattern):
(JSC::::parseDeconstructionPattern):
(JSC::::parseForStatement):
(JSC::::parseFormalParameters):
(JSC::::parseAssignmentExpression):
* parser/Parser.h:
(JSC::Scope::declareBoundParameter):
(JSC::Parser::declareBoundParameter):
* parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createFormalParameterList):
(JSC::SyntaxChecker::addVar):
(JSC::SyntaxChecker::operatorStackPop):
* runtime/JSONObject.cpp:
(JSC::escapeStringToBuilder):
* runtime/JSONObject.h:

LayoutTests:

Add enw tests, and update old ones.

* js/destructuring-assignment-expected.txt: Added.
* js/destructuring-assignment.html: Added.
* js/mozilla/strict/13.1-expected.txt:
* js/mozilla/strict/regress-532254-expected.txt:
* js/mozilla/strict/script-tests/13.1.js:
* js/regress/destructuring-arguments-expected.txt: Added.
* js/regress/destructuring-arguments-length-expected.txt: Added.
* js/regress/destructuring-arguments-length.html: Added.
* js/regress/destructuring-arguments.html: Added.
* js/regress/destructuring-swap-expected.txt: Added.
* js/regress/destructuring-swap.html: Added.
* js/regress/script-tests/destructuring-arguments-length.js: Added.
(foo):
* js/regress/script-tests/destructuring-arguments.js: Added.
(foo):
* js/regress/script-tests/destructuring-swap.js: Added.
(foo):
* js/script-tests/destructuring-assignment.js: Added.
(testDestructuring):
(testDeconstructArgs):
(testDeconstructArgLength):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156464 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix ordered comparison warnings in BitmapImage::drawPattern
https://bugs.webkit.org/show_bug.cgi?id=121945

Reviewed by Darin Adler.

No new tests, no behavior change.

* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156465 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Inset box-shadows fail to round around corners when border-radius is set in vh/vw units.
https://bugs.webkit.org/show_bug.cgi?id=119187

Patch by Gurpreet Kaur <k.gurpreet@samsung.com> on 2013-09-26
Reviewed by Darin Adler.

Source/WebCore:

Border-radius properties were not applied incase its values
were given in vh, vw, vmax, vmin units.

Tests: fast/css/border-radius-inset-box-shadow-viewportlength.html
       fast/css/border-radius-viewport-height.html
       fast/css/border-radius-viewport-vmax.html
       fast/css/border-radius-viewport-vmin.html

* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
* css/StyleResolver.h:
Calculating the border-radius values which has been specified
in viewport units.The vh/vw units are calcultated as percent of
viewport height and viewport width respectively. 1vmax: 1vw or 1vh,
whatever is largest.1vmin: 1vw or 1vh, whatever is smallest.

LayoutTests:

* fast/css/border-radius-inset-box-shadow-viewportlength-expected-mismatch.html: Added.
* fast/css/border-radius-inset-box-shadow-viewportlength.html: Added.
* fast/css/border-radius-viewport-height-expected-mismatch.html: Added.
* fast/css/border-radius-viewport-height.html: Added.
* fast/css/border-radius-viewport-vmax-expected-mismatch.html: Added.
* fast/css/border-radius-viewport-vmax.html: Added.
* fast/css/border-radius-viewport-vmin-expected-mismatch.html: Added.
* fast/css/border-radius-viewport-vmin.html: Added.
Added new tests for verifying that box-shadow and border-radius properties
are applied when its values are viewport units.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rebaseline some tests after IndexedDB was enabled.

* js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
* js/dom/global-constructors-attributes-shared-worker-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
op_to_this shouldn't use value profiling
https://bugs.webkit.org/show_bug.cgi?id=121920

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Currently it's the only opcode that uses m_singletonValue, which is unnecessary. Our current plan is
to remove m_singletonValue so that GenGC can have a simpler story for handling CodeBlocks/FunctionExecutables
during nursery collections.

This patch adds an inline cache for the Structure of to_this so it no longer depends on the ValueProfile's
m_singletonValue. Since nobody uses m_singletonValue now, this patch also removes m_singletonValue from
ValueProfile.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
(JSC::CodeBlock::updateAllValueProfilePredictions):
(JSC::CodeBlock::updateAllPredictions):
(JSC::CodeBlock::shouldOptimizeNow):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::updateAllValueProfilePredictions):
(JSC::CodeBlock::updateAllPredictions):
* bytecode/LazyOperandValueProfile.cpp:
(JSC::CompressedLazyOperandValueProfileHolder::computeUpdatedPredictions):
* bytecode/LazyOperandValueProfile.h:
* bytecode/ValueProfile.h:
(JSC::ValueProfileBase::ValueProfileBase):
(JSC::ValueProfileBase::briefDescription):
(JSC::ValueProfileBase::dump):
(JSC::ValueProfileBase::computeUpdatedPrediction):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emitSlow_op_to_this):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_to_this):
(JSC::JIT::emitSlow_op_to_this):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):

LayoutTests:

Updated a couple tests that waited for two DFG compiles, but with this patch we
don't do two compiles any more, so we don't want to wait forever.

* js/script-tests/dfg-convert-this-polymorphic-object-then-exit-on-other.js:
* js/script-tests/dfg-convert-this-polymorphic-object-then-exit-on-string.js:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Weak should have a move constructor and move assignment operator
https://bugs.webkit.org/show_bug.cgi?id=121963

Reviewed by Oliver Hunt.

This is the first step towards getting rid of PassWeak.

* API/JSClassRef.cpp:
(OpaqueJSClass::prototype):
* heap/Weak.h:
* heap/WeakInlines.h:
(JSC::::Weak):
(JSC::::leakImpl):
* runtime/SimpleTypedArrayController.cpp:
(JSC::SimpleTypedArrayController::toJS):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156469 268f45cc-cd09-0410-ab3c-d52691b4dbfc
One more IndexedDB rebaseline.

* js/dom/global-constructors-attributes-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156470 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mark IDBDatabase "FINAL" now that http://webkit.org/b/121747 is fixed.

Rubberstamped by Andreas Kling

* Modules/indexeddb/IDBDatabase.h: Mark this class FINAL.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156471 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Tiled drawing should not imply threaded scrolling
https://bugs.webkit.org/show_bug.cgi?id=121874
<rdar://problem/15071494>

Reviewed by Sam Weinig.

* Shared/DrawingAreaInfo.h:
We can have DrawingAreaTypeTiledCoreAnimation without threaded scrolling.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetThreadedScrollingEnabled):
(WKPreferencesGetThreadedScrollingEnabled):
* UIProcess/API/C/WKPreferencesPrivate.h:
Add a preference for threaded scrolling.

* UIProcess/API/mac/WKView.mm:
(-[WKView WebKit::]):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
* WebProcess/WebPage/DrawingArea.cpp:
(WebKit::DrawingArea::create):
* WebProcess/WebPage/DrawingArea.h:
Make it so we can use TiledCoreAnimationDrawingArea without ENABLE(THREADED_SCROLLING).

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::shouldUseTiledBackingForFrame):
* WebProcess/WebCoreSupport/WebChromeClient.h:
Override shouldUseTiledBackingForFrame; ask the drawing area if we want a tiled backing for the given frame.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::~WebPage):
* WebProcess/WebPage/WebPage.h:
Move attaching and detaching the scrolling tree into WebPage.
Store whether or not this page is going to use threaded scrolling once, as this
cannot change through the life of a page.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::~TiledCoreAnimationDrawingArea):
Move attaching and detaching the scrolling tree into WebPage.

(WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):
(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
Only do scrolling coordinator work if we have a scrolling coordinator.

(WebKit::TiledCoreAnimationDrawingArea::shouldUseTiledBackingForFrame):
TiledCoreAnimationDrawingArea always wants a tiled backing for the main frame.

No new tests; a near-future patch is going to put the majority of layout
tests into the tiled-drawing-without-threaded-scrolling mode.

* page/ChromeClient.h:
(WebCore::ChromeClient::shouldUseTiledBackingForFrame):
Add a ChromeClient callback to determine whether a given frame wants a TiledBacking for its contents.

* page/FrameView.h:
* WebCore.exp.in:
Make isMainFrameView public and export it for use in WebKit2.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
Make use of shouldUseTiledBackingForFrame instead of predicating the
main frame using a tile cache on whether we have a scrolling coordinator.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::mainFrameBackingIsTiled): Added.

(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls):
(WebCore::RenderLayerCompositor::requiresOverhangAreasLayer):
(WebCore::RenderLayerCompositor::requiresContentShadowLayer):
All of these checks for existence of a scrollingCoordinator should actually
key off whether we're using tiled drawing at the root; they have nothing
to do with threaded scrolling.

* rendering/RenderLayerCompositor.h:

* WebKitTestRunner/mac/PlatformWebViewMac.mm:
(WTR::PlatformWebView::PlatformWebView):
The existing tiled-drawing layout tests require threaded scrolling to be enabled.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156472 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MediaStream] Cleanup platform interface
https://bugs.webkit.org/show_bug.cgi?id=121935

Reviewed by Jer Noble.

No new tests, tests will be updated in the next patch.

* CMakeLists.txt: Remove MediaStreamComponent.cpp.
* GNUmakefile.list.am: Remove MediaStreamComponent.h|cpp and MediaStreamSourcesQueryClient.h. 
    Add MediaStreamConstraintsValidationClient.h and MediaStreamCreationClient.h.

* Modules/mediastream/MediaStream.cpp:
(WebCore::processTrack): Duplicate MediaStreamSource when necessary to work around bug 121954.
(WebCore::createFromSourceVectors): MediaStreamCenter::instance -> MediaStream::sharedStreamCenter.
(WebCore::MediaStream::MediaStream): *Components -> *Streams.
(WebCore::MediaStream::setEnded): New.
(WebCore::MediaStream::stop):  MediaStreamCenter::instance -> MediaStream::sharedStreamCenter.
(WebCore::MediaStream::addTrack): Append the track parameter rather than duplicating it, as per spec.
(WebCore::MediaStream::removeTrack): *Components -> *Streams.
(WebCore::MediaStream::trackDidEnd): Renamed from trackEnded.
(WebCore::MediaStream::streamDidEnd): Renamed from streamEnded.
(WebCore::MediaStream::addRemoteSource): Renamed from addRemoteTrack. *Components -> *Streams.
(WebCore::MediaStream::removeRemoteSource): Renamed from removeRemoteTrack. *Components -> *Streams.
* Modules/mediastream/MediaStream.h:

* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::create): *Component -> *Stream.
(WebCore::MediaStreamTrack::MediaStreamTrack): Don't assume source is valid.
(WebCore::MediaStreamTrack::~MediaStreamTrack): Ditto.
(WebCore::MediaStreamTrack::kind): Ditto. AtomicString -> const AtomicString&.
(WebCore::MediaStreamTrack::setSource): Moved from .h file.
(WebCore::MediaStreamTrack::id): Don't assume source is valid. Create ID when the source doesn't have one.
(WebCore::MediaStreamTrack::label): Don't assume source is valid.
(WebCore::MediaStreamTrack::enabled): 
(WebCore::MediaStreamTrack::setEnabled): *Component -> *Stream. MediaStreamCenter::instance -> MediaStreamCenter::shared.
(WebCore::MediaStreamTrack::readyState): "muted" is not a readyState, but "new" is.
(WebCore::MediaStreamTrack::getSources): MediaStreamCenter::instance -> MediaStreamCenter::shared.
(WebCore::MediaStreamTrack::ended): *Component -> *Stream.
(WebCore::MediaStreamTrack::sourceChangedState): Dispatch "started" and "unmuted" events.
(WebCore::MediaStreamTrack::trackDidEnd): Renamed from didEndTrack. m_component -> m_source.
* Modules/mediastream/MediaStreamTrack.h:

* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::create): track->component() -> track->source();

* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::didRemoveRemoteStream): Ditto.

* Modules/mediastream/RTCStatsRequestImpl.cpp:
(WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl): Ditto.
(WebCore::RTCStatsRequestImpl::component): Removed, it was unused.
* Modules/mediastream/RTCStatsRequestImpl.h:

* Modules/mediastream/UserMediaClient.h:
* Modules/mediastream/UserMediaController.h:
(WebCore::UserMediaController::requestPermission): Renamed from requestUserMedia, get rid of source
    vector parameters.
(WebCore::UserMediaController::cancelRequest): Renamed from cancelUserMediaRequest.

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::parseOptions): MediaConstraintsImpl -> MediaConstraints.
(WebCore::UserMediaRequest::create): Ditto.
(WebCore::UserMediaRequest::UserMediaRequest): Ditto.
(WebCore::UserMediaRequest::securityOrigin): New.
(WebCore::UserMediaRequest::start): Request constraint validation.
(WebCore::UserMediaRequest::constraintsValidated): New. Callback from media engine when constraints
    can be supported.
(WebCore::UserMediaRequest::requestPermission): New. Ask user media client for permission to access media.
(WebCore::UserMediaRequest::userMediaAccessGranted): New. Access has been granted.
(WebCore::UserMediaRequest::createMediaStream): New. Allowed to access media, ask media engine
    to create stream sources.
(WebCore::UserMediaRequest::userMediaAccessDenied): New. User media client has denied access request.
(WebCore::UserMediaRequest::constraintsInvalid): New. Media engine can not support constraints.
(WebCore::UserMediaRequest::didCreateStream): New. Media engine has created stream sources.
(WebCore::UserMediaRequest::callSuccessHandler): New. Create stream from sources and call success handler.
(WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError): Renamed from constraintFailure.
(WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError): Renamed from permissionFailure.
(WebCore::UserMediaRequest::callErrorHandler): 
(WebCore::UserMediaRequest::contextDestroyed): cancelUserMediaRequest -> cancelRequest.
* Modules/mediastream/UserMediaRequest.h:

* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::createMediaStreamSource): localAudio->component()->source() -> localAudio->source().

* Modules/webaudio/MediaStreamAudioDestinationNode.cpp:
(WebCore::MediaStreamAudioDestinationNode::MediaStreamAudioDestinationNode): MediaStreamSource::TypeAudio ->
    MediaStreamSource::Audio, MediaStreamSource::ReadyStateLive -> MediaStreamSource::Live.
    MediaStreamCenter::instance -> MediaStreamCenter::shared.

* WebCore.exp.in: Export new symbols.

* WebCore.xcodeproj/project.pbxproj: Add new files and remove deleted files.

* dom/EventNames.h: Define "started" event.

* platform/mediastream/MediaStreamCenter.cpp:
(WebCore::mediaStreamCenterOverride): Make it possible to override the shared stream center. Will
    be used for testing in a later patch.
(WebCore::MediaStreamCenter::shared): Renamed from instance. Return current stream center.
(WebCore::MediaStreamCenter::setSharedStreamCenter): Override current stream center.
(WebCore::MediaStreamCenter::endLocalMediaStream): Never call the descriptor client, always call
    the descriptor and let it deal with the client.
* platform/mediastream/MediaStreamCenter.h:

* platform/mediastream/MediaStreamComponent.cpp: Removed.
* platform/mediastream/MediaStreamComponent.h: Removed.

* platform/mediastream/MediaStreamConstraintsValidationClient.h: Added.
* platform/mediastream/MediaStreamCreationClient.h: Added.

* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::addSource): *Component -> *Source.
(WebCore::MediaStreamDescriptor::removeSource): Ditto.
(WebCore::MediaStreamDescriptor::addRemoteSource): Ditto.
(WebCore::MediaStreamDescriptor::removeRemoteSource): Ditto.
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Ditto.
(WebCore::MediaStreamDescriptor::setEnded): Ditto. Set source readyStates to Ended.
* platform/mediastream/MediaStreamDescriptor.h:

* platform/mediastream/MediaStreamSource.cpp:
(WebCore::MediaStreamSource::MediaStreamSource): Initialize new member variables.
(WebCore::MediaStreamSource::setReadyState): Early return when the state hasn't changed.
(WebCore::MediaStreamSource::setStream): New.
(WebCore::MediaStreamSource::setMuted): New.
* platform/mediastream/MediaStreamSource.h:

* platform/mediastream/MediaStreamSourcesQueryClient.h: Removed.

* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mediastream/RTCStatsRequest.h:

* platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp: Update for new MediaStreamCenter API.
* platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:

* platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp: Ditto.
* platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:

* platform/mediastream/mac/MediaStreamCenterMac.cpp: Ditto.
* platform/mediastream/mac/MediaStreamCenterMac.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156473 268f45cc-cd09-0410-ab3c-d52691b4dbfc
VirtualRegister should be a class
https://bugs.webkit.org/show_bug.cgi?id=121732

Reviewed by Geoffrey Garen.

This is a refactoring change.  Changed VirtualRegister from an enum to a class.
Moved Operands::operandIsArgument(), operandToArgument(), argumentToOperand()
and the similar functions for locals to VirtualRegister class.

This is in preparation for changing the offset for the first local register from
0 to -1.  This is needed since most native calling conventions have the architected
frame pointer (e.g. %rbp for X86) point at the slot that stores the previous frame
pointer.  Local values start below that address.

* bytecode/CodeBlock.cpp:
* bytecode/CodeBlock.h:
* bytecode/Instruction.h:
* bytecode/LazyOperandValueProfile.h:
* bytecode/MethodOfGettingAValueProfile.cpp:
* bytecode/Operands.h:
* bytecode/UnlinkedCodeBlock.cpp:
* bytecode/UnlinkedCodeBlock.h:
* bytecode/ValueRecovery.h:
* bytecode/VirtualRegister.h:
* bytecompiler/BytecodeGenerator.cpp:
* bytecompiler/BytecodeGenerator.h:
* bytecompiler/RegisterID.h:
* debugger/DebuggerCallFrame.cpp:
* dfg/DFGAbstractHeap.h:
* dfg/DFGAbstractInterpreterInlines.h:
* dfg/DFGArgumentPosition.h:
* dfg/DFGArgumentsSimplificationPhase.cpp:
* dfg/DFGByteCodeParser.cpp:
* dfg/DFGCFGSimplificationPhase.cpp:
* dfg/DFGCPSRethreadingPhase.cpp:
* dfg/DFGCapabilities.cpp:
* dfg/DFGConstantFoldingPhase.cpp:
* dfg/DFGFlushLivenessAnalysisPhase.cpp:
* dfg/DFGGraph.cpp:
* dfg/DFGGraph.h:
* dfg/DFGJITCode.cpp:
* dfg/DFGNode.h:
* dfg/DFGOSREntry.cpp:
* dfg/DFGOSREntrypointCreationPhase.cpp:
* dfg/DFGOSRExit.h:
* dfg/DFGOSRExitCompiler32_64.cpp:
* dfg/DFGOSRExitCompiler64.cpp:
* dfg/DFGRegisterBank.h:
* dfg/DFGScoreBoard.h:
* dfg/DFGSpeculativeJIT.cpp:
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT64.cpp:
* dfg/DFGValidate.cpp:
* dfg/DFGValueRecoveryOverride.h:
* dfg/DFGVariableAccessData.h:
* dfg/DFGVariableEvent.h:
* dfg/DFGVariableEventStream.cpp:
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
* ftl/FTLExitArgumentForOperand.h:
* ftl/FTLLink.cpp:
* ftl/FTLLowerDFGToLLVM.cpp:
* ftl/FTLOSREntry.cpp:
* ftl/FTLOSRExit.cpp:
* ftl/FTLOSRExit.h:
* ftl/FTLOSRExitCompiler.cpp:
* interpreter/CallFrame.h:
* interpreter/Interpreter.cpp:
* jit/AssemblyHelpers.h:
* jit/JIT.h:
* jit/JITCall.cpp:
* jit/JITInlines.h:
* jit/JITOpcodes.cpp:
* jit/JITOpcodes32_64.cpp:
* jit/JITStubs.cpp:
* llint/LLIntSlowPaths.cpp:
* profiler/ProfilerBytecodeSequence.cpp:
* runtime/CommonSlowPaths.cpp:
* runtime/JSActivation.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156474 268f45cc-cd09-0410-ab3c-d52691b4dbfc
XvfbDriver should set up Xvfb instances providing screens of 8-bit depth
https://bugs.webkit.org/show_bug.cgi?id=121951

Reviewed by Carlos Garcia Campos.

Screens with 24-bit depth are causing problems as it doesn't seem to be possible to fall back to
software rendering successfully on the GTK 64-bit release builder, resulting in crashes in almost
500 layout tests that trigger accelerated compositing to be used.

* Scripts/webkitpy/port/xvfbdriver.py:
(XvfbDriver._start):
* Scripts/webkitpy/port/xvfbdriver_unittest.py: Update unit test baselines.
(XvfbDriverTest.test_start_no_pixel_tests):
(XvfbDriverTest.test_start_pixel_tests):
(XvfbDriverTest.test_start_arbitrary_worker_number):
(XvfbDriverTest.test_next_free_display):
(XvfbDriverTest.test_start_next_worker):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156475 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WeakGCMap should not inherit from HashMap
https://bugs.webkit.org/show_bug.cgi?id=121964

Reviewed by Geoffrey Garen.

Add the HashMap as a member variable instead and implement the missing member functions.

* runtime/WeakGCMap.h:

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