[CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
https://bugs.webkit.org/show_bug.cgi?id=132906

Reviewed by Simon Fraser.

If flowThreadContainingBlock() is called on an object which is in a different
flow thread than the one currently being laid out, this method will return an incorrect
result. I added an assertion for that to make sure we catch and treat any such scenarios.
For the moment, this assertion is only validated for regions, as multicol still has some issues.

No new tests required.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
(WebCore::RenderObject::locateFlowThreadContainingBlock):
* rendering/RenderObject.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168971 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Subpixel rendering: Push named flows in region to device pixel when painting.
https://bugs.webkit.org/show_bug.cgi?id=132986

Reviewed by Simon Fraser.

Remove integral rounding when named flow sets the painting offset on the graphics context.
Use device pixel snapping instead to ensure that we can paint on odd device pixel positions on retina displays.

Source/WebCore:
Test: fast/regions/hidpi-region-with-auto-margin-on-subpixel-position.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):

LayoutTests:
* fast/regions/hidpi-region-with-auto-margin-on-subpixel-position-expected.html: Added.
* fast/regions/hidpi-region-with-auto-margin-on-subpixel-position.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168972 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Gtk] media/media-blocked-by-beforeload.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=89811

Patch by Piotr Grad <p.grad@samsung.com> on 2014-05-16
Reviewed by Eric Carlson.

Problem is that we cannot predict when 'error' event would be called,
because is called async on 'source' element. Solution is to not log
'loadedmetadata' and 'loadstart' events.

* media/media-blocked-by-beforeload-expected.txt:
* media/media-blocked-by-beforeload.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@168973 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MSE] Crash at  WebCore::SourceBuffer::~SourceBuffer + 110
https://bugs.webkit.org/show_bug.cgi?id=132973

Reviewed by Eric Carlson.

Change SourceBuffer::m_private into a Ref<>, and add an assertion to
SourceBufferPrivateAVFObjC's destructor if its client has not been cleared.

Eliminate unnecessary churn in MediaSourcePrivateAVFObjC by having the predicate
functor take bare pointers, rather than a PassRefPtr.

The underlying problem seems to be in WebAVStreamDataParserListener. RefPtrs were
being created off the main thread to a non-thread safe ref counted class. In some
situations, this would result in double decrementing the ref, which would cause an
early destruction of the underlying object. Instead replace these RefPtr strong
pointers with explicit weak ones. Ensure the parser and its delegate are not freed
before the append operation completes by passing strong pointers into the async
append operation lambda.

There were a few places where we weren't null checking m_mediaSource before using it,
and at least one place where we weren't clearing m_mediaSource.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer): Use Ref instead of RefPtr.
(WebCore::SourceBuffer::appendBufferTimerFired): Ditto.
* Modules/mediasource/SourceBuffer.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjCHasAudio): Take a bare pointer, instead of a PassRefPtr.
(WebCore::MediaSourcePrivateAVFObjCHasVideo): Ditto.
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer): Clear the back pointer when removing a buffer.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener initWithParser:parent:WebCore::]): Use WeakPtr instead of RefPtr.
(-[WebAVStreamDataParserListener invalidate]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::append): Ditto.


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

Added some flaky tests to TestExpectations.

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-05-16

* platform/gtk/TestExpectations:

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