REGRESSION(r146223): chromium asserts/crashes in DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=112745

Reviewed by Kenneth Russell.

Fixes layout tests on chromium debug

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::mainReceivedError): Frame might be detached, get
    defersLoading() from mainResourceLoader().
(WebCore::DocumentLoader::responseReceived): RefPtr got dropped, it's really needed.
(WebCore::DocumentLoader::receivedData): Frame might be detached, get
    defersLoading() from mainResourceLoader().
(WebCore::DocumentLoader::cancelMainResourceLoad): The ResourceError parameter
    can be null if coming from the WebKit layer, we should have a default just in case.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146267 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash when loading http://www.jqchart.com/jquery/gauges/RadialGauge/LiveData
https://bugs.webkit.org/show_bug.cgi?id=112694

Reviewed by Filip Pizlo.

We were trying to convert an NewArray to a Phantom, but convertToPhantom doesn't handle
nodes with variable arguments.  Added code to insert a Phantom node in front of all the
live children of a var args node.  Added ASSERT not var args for convertToPhantom to
catch any other similar cases.  Added a new convertToPhantomUnchecked() for converting 
var arg nodes.

* dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::run):
* dfg/DFGNode.h:
(Node):
(JSC::DFG::Node::setOpAndDefaultNonExitFlags): Added ASSERT(!(m_flags & NodeHasVarArgs))
(JSC::DFG::Node::setOpAndDefaultNonExitFlagsUnchecked):
(JSC::DFG::Node::convertToPhantomUnchecked):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146268 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Hook up scroll position to proximity detector
https://bugs.webkit.org/show_bug.cgi?id=112743

Patch by Iris Wu <shuwu@blackberry.com> on 2013-03-19
Reviewed by Rob Buis.

PR 243385
Reviewed Internally By Genevieve Mak.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPagePrivate::WebPagePrivate):
(BlackBerry::WebKit::WebPagePrivate::~WebPagePrivate):
(BlackBerry::WebKit::WebPage::adjustDocumentScrollPosition):
(WebKit):
* Api/WebPage.h:
* Api/WebPage_p.h:
(WebPagePrivate):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146269 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Windows build fix after r146264.

* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::hasValidAttributeType):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Try to fix the Windows build.

* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::hasValidAttributeType): Qualify the
namespace to avoid conflicts.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146271 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make intrinsic size keywords on flexboxes work
https://bugs.webkit.org/show_bug.cgi?id=112652

Reviewed by Tony Chang.

Source/WebCore:

Tests: fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items.html
       fast/css-intrinsic-dimensions/intrinsic-sized-flex-items.html

* platform/Length.h:
(WebCore::Length::isSpecifiedOrIntrinsic):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalWidthInRegionByMinMax):
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::computeLogicalWidthInRegionUsing):
Pass in the Length so that RenderFlexibleBox can call this method and avoid
doing a bunch of code duplication.

* rendering/RenderBox.h:
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
Instead of just calling valueForLength, call computeLogicalWidthInRegionUsing so that
we properly resolve intrinsic Length types. Incidentally, this should also make viewport
percentage units work.

(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
Resolve intrinsic min/max Lengths. Also, instead of calling minPreferredLogicalWidth for the
min-width: auto case, call computeMainAxisExtentForChild to correctly compute the min intrinsic size.

LayoutTests:

* fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items-expected.txt: Added.
* fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items.html: Added.
* fast/css-intrinsic-dimensions/intrinsic-sized-flex-items-expected.txt: Added.
* fast/css-intrinsic-dimensions/intrinsic-sized-flex-items.html: Added.
* platform/chromium-linux/css3/flexbox/flexbox-baseline-expected.png:
* platform/chromium-win/css3/flexbox/flexbox-baseline-expected.txt:
This looks like a rounding difference. The new result matches the non-column result
in this same test, so it looks more correct to me.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146272 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Removed a using declaration to avoid name conflicts
https://bugs.webkit.org/show_bug.cgi?id=112752

Reviewed by Ryosuke Niwa.

* html/ClassList.cpp: Put the using declaration here instead.

* html/ClassList.h: Don't put a using declaration in this header because
it can cause name conflicts with SVGNames.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146273 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Grid Layout] Add parsing for grid-auto-{row|column}
https://bugs.webkit.org/show_bug.cgi?id=112724

Reviewed by Tony Chang.

Source/WebCore:

This change is a first step towards handling grid-auto-{row|column}.
For now, only the parsing, storing and getComputedStyle bits are implemented.
In order to do so without duplicating code, the functions handling <track-size>
(named <track-minmax> in the code based on a previous version of the grammar)
have been tweaked to be called in a standalone fashion. The code was also
updated to match the grammar more closely:
- <track-minmax> is now <track-size>.
- <track-group> was renmoved, folded into <track-list>.

Test: fast/css-grid-layout/grid-auto-columns-rows-get-set.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackSize):
Renamed from valueForGridTrackMinMax.

(WebCore::valueForGridTrackList):
Folded valueForGridTrackGroup here.

(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
Added the parsing for grid-auto-{rows|columns}.

(WebCore::CSSParser::parseGridTrackSize):
Renamed from parseGridTrackMinMax. Changed to return the parsed value (or 0 in case of
error). This enables us to reuse it in parseValue. Note that this function now moves
the parser value list instead of the caller.

(WebCore::CSSParser::parseGridTrackList):
Updated after parseGridTrackSize changes and parseGridTrackGroup removal.

* css/CSSParser.h: Updated the names.
* css/CSSProperty.cpp:
(WebCore::CSSProperty::isInheritedProperty):
* css/CSSPropertyNames.in:
Added the 2 new non-inherited properties.

* css/StyleResolver.cpp:
(WebCore::createGridTrackSize):
Renamed from createGridTrackMinMax. Also simplified to ensure code reuse (applyProperty hands
down a CSSValue) and consistency (the state wasn't consistently the last argument).

(WebCore::createGridTrackList):
Folded createGridTrackGroup into this function.

(WebCore::StyleResolver::applyProperty):
Added the code for the new properties.

* rendering/style/RenderStyle.h:
* rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData):
* rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator==):
Added the storage and boiler-plate code for the new properties.

LayoutTests:

* fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt: Added.
* fast/css-grid-layout/grid-auto-columns-rows-get-set.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146274 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r146164): It made all inspector tests timeout on ARM traditional
https://bugs.webkit.org/show_bug.cgi?id=112697

Unreviewed gardening, skip _all_ inspector test to be able catch new regressions.

* platform/qt-arm/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Another build fix after r146220.

* English.lproj/localizedStrings.js:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146276 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement Web Speech Synthesis for Chromium
https://bugs.webkit.org/show_bug.cgi?id=111695

Reviewed by Adam Barth.

Source/Platform:

Exposes a platform API that the embedder can implement to
provide speech synthesis for the Chromium port.

* Platform.gypi:
* chromium/public/Platform.h:
(WebKit):
(Platform):
(WebKit::Platform::speechSynthesizer):
* chromium/public/WebSpeechSynthesisUtterance.h: Added.
(WebKit):
(WebSpeechSynthesisUtterance):
(WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
(WebKit::WebSpeechSynthesisUtterance::~WebSpeechSynthesisUtterance):
(WebKit::WebSpeechSynthesisUtterance::operator=):
(WebKit::WebSpeechSynthesisUtterance::isNull):
* chromium/public/WebSpeechSynthesisVoice.h: Added.
(WebCore):
(WebKit):
(WebSpeechSynthesisVoice):
(WebKit::WebSpeechSynthesisVoice::WebSpeechSynthesisVoice):
(WebKit::WebSpeechSynthesisVoice::~WebSpeechSynthesisVoice):
(WebKit::WebSpeechSynthesisVoice::operator=):
* chromium/public/WebSpeechSynthesizer.h: Added.
(WebKit):
(WebSpeechSynthesizer):
(WebKit::WebSpeechSynthesizer::~WebSpeechSynthesizer):
* chromium/public/WebSpeechSynthesizerClient.h: Added.
(WebKit):
(WebSpeechSynthesizerClient):
(WebKit::WebSpeechSynthesizerClient::~WebSpeechSynthesizerClient):

Source/WebCore:

Straightforward implementation of speech synthesis
for Chromium by exposing interfaces for the platform
to implement.

* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore):
(WebCore::SpeechSynthesisUtterance::~SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
* Modules/speech/SpeechSynthesisVoice.h:
(WebCore::SpeechSynthesisVoice::~SpeechSynthesisVoice):
* WebCore.exp.in:
* WebCore.gypi:
* platform/PlatformSpeechSynthesis.h:
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisUtterance::create):
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
(WebCore::PlatformSpeechSynthesisUtterance::setClient):
* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore):
(WebCore::PlatformSpeechSynthesisVoice::create):
(WebCore::PlatformSpeechSynthesisVoice::PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesisVoice.h:
(PlatformSpeechSynthesisVoice):
(WebCore::PlatformSpeechSynthesisVoice::setVoiceURI):
(WebCore::PlatformSpeechSynthesisVoice::setName):
(WebCore::PlatformSpeechSynthesisVoice::setLang):
(WebCore::PlatformSpeechSynthesisVoice::setLocalService):
(WebCore::PlatformSpeechSynthesisVoice::setIsDefault):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::create):
(WebCore::PlatformSpeechSynthesizer::setVoiceList):
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(WebKit):
(PlatformSpeechSynthesizerClient):
(PlatformSpeechSynthesizer):
* platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Added.
(WebCore):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):
(WebCore::PlatformSpeechSynthesizer::pause):
(WebCore::PlatformSpeechSynthesizer::resume):
(WebCore::PlatformSpeechSynthesizer::cancel):
* platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisUtterance::WebSpeechSynthesisUtterance):
(WebKit::WebSpeechSynthesisUtterance::operator=):
(WebKit::WebSpeechSynthesisUtterance::assign):
(WebKit::WebSpeechSynthesisUtterance::reset):
(WebKit::WebSpeechSynthesisUtterance::operator PassRefPtr<PlatformSpeechSynthesisUtterance>):
(WebKit::WebSpeechSynthesisUtterance::operator PlatformSpeechSynthesisUtterance*):
(WebKit::WebSpeechSynthesisUtterance::text):
(WebKit::WebSpeechSynthesisUtterance::lang):
(WebKit::WebSpeechSynthesisUtterance::voice):
(WebKit::WebSpeechSynthesisUtterance::volume):
(WebKit::WebSpeechSynthesisUtterance::rate):
(WebKit::WebSpeechSynthesisUtterance::pitch):
(WebKit::WebSpeechSynthesisUtterance::startTime):
* platform/chromium/support/WebSpeechSynthesisVoice.cpp: Added.
(WebKit):
(WebKit::WebSpeechSynthesisVoice::assign):
(WebKit::WebSpeechSynthesisVoice::reset):
(WebKit::WebSpeechSynthesisVoice::setVoiceURI):
(WebKit::WebSpeechSynthesisVoice::setName):
(WebKit::WebSpeechSynthesisVoice::setLanguage):
(WebKit::WebSpeechSynthesisVoice::setIsLocalService):
(WebKit::WebSpeechSynthesisVoice::setIsDefault):
(WebKit::WebSpeechSynthesisVoice::operator PassRefPtr<WebCore::PlatformSpeechSynthesisVoice>):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Added.
(WebCore):
(WebCore::WebSpeechSynthesizerClientImpl::WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::~WebSpeechSynthesizerClientImpl):
(WebCore::WebSpeechSynthesizerClientImpl::setVoiceList):
(WebCore::WebSpeechSynthesizerClientImpl::didStartSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didFinishSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didPauseSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::didResumeSpeaking):
(WebCore::WebSpeechSynthesizerClientImpl::speakingErrorOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::wordBoundaryEventOccurred):
(WebCore::WebSpeechSynthesizerClientImpl::sentenceBoundaryEventOccurred):
* platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Added.
(WebCore):
(WebSpeechSynthesizerClientImpl):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(WebCore::PlatformSpeechSynthesizer::speak):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146277 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[BlackBerry] Selection overlay is sometimes in wrong position.
https://bugs.webkit.org/show_bug.cgi?id=112748

Patch by Andrew Lo <anlo@rim.com> on 2013-03-19
Reviewed by Rob Buis.
Internally reviewed by Arvid Nilsson.

Internal PR 305384.
Translate by parent's offset when drawing selection overlay.

* WebKitSupport/SelectionOverlay.cpp:
(BlackBerry::WebKit::SelectionOverlay::paintContents):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146278 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Don't compute background obscuration on every repaint
https://bugs.webkit.org/show_bug.cgi?id=112457

Reviewed by Simon Fraser.

Source/WebCore: 

Test: fast/backgrounds/obscured-background-child-style-change.html
        
It is generally enough to compute background obscuration status once per layout rather than doing it on every repaint.
Since there are fewer layouts than repaints this will allow more expensive checks in the future.
        
With this patch adds caching and invalidation of the obscuration status.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layout):
        
    Invalidate the obscuration status on layout.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
        
    Invalidate the parent obscuration status if there is repaint-only style change (often background related). 
    Tested by the new fast/css/obscured-background-child-style-change.html.

(WebCore::RenderBox::layout):
(WebCore::RenderBox::computeBackgroundIsKnownToBeObscured):
* rendering/RenderBox.h:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::notifyFinished):
(WebCore::RenderImage::boxShadowShouldBeAppliedToBackground):
(WebCore::RenderImage::computeBackgroundIsKnownToBeObscured):
        
    Use CachedImage::currentFrameKnownToBeOpaque which ensures that the frame is decoded and we get the real status.
    Tested by an additional case in fast/css/obscured-background-child-style-change.html.

* rendering/RenderImage.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
* rendering/RenderObject.h:
(WebCore::RenderObject::hasBoxDecorations):
(WebCore::RenderObject::computeBackgroundIsKnownToBeObscured):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(RenderObjectBitfields):
(WebCore::RenderObject::RenderObjectBitfields::boxDecorationState):
(WebCore::RenderObject::RenderObjectBitfields::setBoxDecorationState):
        
    Combine box decoration bit and the obscuration status so we only need one extra bit.

(WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
(WebCore::RenderObject::setHasBoxDecorations):
(WebCore::RenderObject::invalidateBackgroundObscurationStatus):
(WebCore::RenderObject::backgroundIsKnownToBeObscured):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::layout):

LayoutTests: 

* fast/backgrounds/obscured-background-child-style-change-expected.html: Added.
* fast/backgrounds/obscured-background-child-style-change.html: Added.
* fast/repaint/obscured-background-no-repaint.html:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146279 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed, rolling out r146277.
http://trac.webkit.org/changeset/146277
https://bugs.webkit.org/show_bug.cgi?id=111695

Broke Chromium Android build

Source/Platform:

* Platform.gypi:
* chromium/public/Platform.h:
(WebKit):
* chromium/public/WebSpeechSynthesisUtterance.h: Removed.
* chromium/public/WebSpeechSynthesisVoice.h: Removed.
* chromium/public/WebSpeechSynthesizer.h: Removed.
* chromium/public/WebSpeechSynthesizerClient.h: Removed.

Source/WebCore:

* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):
(WebCore):
* Modules/speech/SpeechSynthesis.h:
(SpeechSynthesis):
* Modules/speech/SpeechSynthesisUtterance.cpp:
(WebCore::SpeechSynthesisUtterance::SpeechSynthesisUtterance):
(WebCore::SpeechSynthesisUtterance::setVoice):
* Modules/speech/SpeechSynthesisUtterance.h:
(WebCore::SpeechSynthesisUtterance::text):
(WebCore::SpeechSynthesisUtterance::setText):
(WebCore::SpeechSynthesisUtterance::lang):
(WebCore::SpeechSynthesisUtterance::setLang):
(WebCore::SpeechSynthesisUtterance::volume):
(WebCore::SpeechSynthesisUtterance::setVolume):
(WebCore::SpeechSynthesisUtterance::rate):
(WebCore::SpeechSynthesisUtterance::setRate):
(WebCore::SpeechSynthesisUtterance::pitch):
(WebCore::SpeechSynthesisUtterance::setPitch):
(WebCore::SpeechSynthesisUtterance::startTime):
(WebCore::SpeechSynthesisUtterance::setStartTime):
(WebCore::SpeechSynthesisUtterance::platformUtterance):
(SpeechSynthesisUtterance):
* Modules/speech/SpeechSynthesisVoice.h:
* WebCore.exp.in:
* WebCore.gypi:
* platform/PlatformSpeechSynthesis.h:
(PlatformSpeechSynthesis):
* platform/PlatformSpeechSynthesisUtterance.cpp:
* platform/PlatformSpeechSynthesisUtterance.h:
(PlatformSpeechSynthesisUtterance):
* platform/PlatformSpeechSynthesisVoice.cpp:
(WebCore::PlatformSpeechSynthesisVoice::create):
* platform/PlatformSpeechSynthesisVoice.h:
(PlatformSpeechSynthesisVoice):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::create):
(WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
(WebCore):
* platform/PlatformSpeechSynthesizer.h:
(PlatformSpeechSynthesizerClient):
(WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
(PlatformSpeechSynthesizer):
* platform/chromium/PlatformSpeechSynthesizerChromium.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesisUtterance.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesisVoice.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesizerClientImpl.cpp: Removed.
* platform/chromium/support/WebSpeechSynthesizerClientImpl.h: Removed.
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::speak):
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
(WebCore::PlatformSpeechSynthesizerMock::create):
(WebCore::PlatformSpeechSynthesizerMock::PlatformSpeechSynthesizerMock):
(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
* platform/mock/PlatformSpeechSynthesizerMock.h:
(PlatformSpeechSynthesizerMock):

Source/WebKit/chromium:

* features.gypi:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146280 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[v8] add IDL 'enum' in DOM methods
https://bugs.webkit.org/show_bug.cgi?id=112644

Patch by Arnaud Renevier <a.renevier@sisa.samsung.com> on 2013-03-19
Reviewed by Kentaro Hara.

This adds V8 support for enumerations in method parameters.

Test: bindings/scripts/test/TestObj.idl

* bindings/scripts/CodeGeneratorV8.pm:
(GenerateParametersCheck):
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjV8Internal::methodWithEnumArgMethod):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146281 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Security: Heap-use-after-free in WebCore::AXObjectCache::getOrCreate
https://bugs.webkit.org/show_bug.cgi?id=112044

Reviewed by Chris Fleizach.

Source/WebCore:

Always call recalcSectionsIfNeeded before accessing
table sections.

Test: accessibility/table-remove-cell-crash.html

* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):

LayoutTests:

Adds test showing a crash / assertion failure if a cell is
deleted from a table and the table's AX object is accessed.

* accessibility/table-remove-cell-crash-expected.txt: Added.
* accessibility/table-remove-cell-crash.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146282 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Don't throw on infinity or NaN index in HTMLOptionsCollection.add()
https://bugs.webkit.org/show_bug.cgi?id=112612

Patch by Michael Pruett <michael@68k.org> on 2013-03-19
Reviewed by Kentaro Hara.

Source/WebCore:

HTMLOptionsCollection.add() should not throw a type error when
its optional index argument is infinity or NaN. Such values
should instead be converted to 0 with no error.

Tests: fast/dom/non-numeric-values-numeric-parameters.html
       fast/js/select-options-add.html

* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::add):

LayoutTests:

* fast/dom/non-numeric-values-numeric-parameters-expected.txt:
* fast/js/select-options-add-expected.txt:
* platform/chromium/fast/dom/non-numeric-values-numeric-parameters-expected.txt: Removed.
* platform/chromium/fast/js/select-options-add-expected.txt: Removed.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146283 268f45cc-cd09-0410-ab3c-d52691b4dbfc
FrameLoader::didChangeIcons isn't called when the favicon is changed.
https://bugs.webkit.org/show_bug.cgi?id=112080

Reviewed by Dmitry Titov.

Source/WebCore:

Test: fast/dom/icon-url-property.html

* dom/Document.cpp:
(WebCore::Document::addIconURL): Made the callback for didChangeIcons
happen whenever there are favicon changes instead of filtering it
and have to be in sync about what hosts care about. As far as I could
tell no hosts rely on this callback except for Chromium, so in general
doing less work here may potentially help a small amount for other
ports.

LayoutTests:

* fast/dom/icon-url-property-expected.txt:
* fast/dom/icon-url-property.html: Add some more calls
to trigger didChangeIcons callbacks.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146284 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make RLC::haveNonMainLayersWithTiledBacking() public and fix the name
https://bugs.webkit.org/show_bug.cgi?id=112763

Reviewed by Tim Horton.

Downstream code needs to call hasNonMainLayersWithTiledBacking().

* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::hasNonMainLayersWithTiledBacking):
(RenderLayerCompositor):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146285 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add failing test expectations on Windows per bugs 112764 and 112766.

* platform/win/TestExpectations:


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