Implement sticky positioning
https://bugs.webkit.org/show_bug.cgi?id=90046

Reviewed by Ojan Vafai.

Source/WebCore:

Initial implementation of position: -webkit-sticky, which
constrains an element to be positioned inside the intersection
of its container box, and the viewport. Sticky elements create
stacking context.

A stickily positioned element behaves like position:relative
(space is reserved for it in-flow), but with an offset that is
determined by the sticky position. Changed isInFlowPositioned()
to cover relative and sticky.

Added a convenience isPositioned() to RenderObject(), which
is true for an object with any non-static position value.

Tests: fast/css/sticky/inflow-sticky.html
       fast/css/sticky/inline-sticky-abspos-child.html
       fast/css/sticky/inline-sticky.html
       fast/css/sticky/replaced-sticky.html
       fast/css/sticky/sticky-as-positioning-container.html
       fast/css/sticky/sticky-left-percentage.html
       fast/css/sticky/sticky-left.html
       fast/css/sticky/sticky-margins.html
       fast/css/sticky/sticky-side-margins.html
       fast/css/sticky/sticky-stacking-context.html
       fast/css/sticky/sticky-top-margins.html
       fast/css/sticky/sticky-top.html
       fast/css/sticky/sticky-writing-mode-horizontal-bt.html
       fast/css/sticky/sticky-writing-mode-vertical-lr.html
       fast/css/sticky/sticky-writing-mode-vertical-rl.html

* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Have position:sticky
create stacking context from the get-go, to make scrolling optimizations easier later.
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsFastPath): Use hasViewportConstrainedPosition().
* page/FrameView.h: FrameView's "fixed" objects contains both fixed and sticky objects now.
* rendering/RenderBlock.cpp: Use isPositioned().
(WebCore::RenderBlock::isSelectionRoot):
(WebCore::RenderBlock::renderName):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleWillChange): Need to look for both stick and fixed positioning to
determine whether to add something to FrameView's fixed object set.
(WebCore::RenderBox::computeRectForRepaint): Need to take the sticky offset into account
when computing repaint rects.
* rendering/RenderBox.h: Implement frameRectForStickyPositioning() for boxes.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::updateBoxModelInfoFromStyle):
(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
(WebCore::RenderBoxModelObject::stickyPositionOffset): Compute the sticky position
offset by taking into account the viewport rect, and the conteriner's contentRect
inset by its margins.
(WebCore::RenderBoxModelObject::offsetForInFlowPosition): Convenience wrapper
for getting relative or sticky offset.
* rendering/RenderBoxModelObject.h: Have requiresLayer() use isPositioned().
(WebCore::RenderBoxModelObject::stickyPositionLogicalOffset):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::styleWillChange): Need to implement this to
add/remove objects from FrameView's fixed object list, since, prior to sticky,
only boxes could be fixed.
(WebCore::RenderInline::renderName):
(WebCore::RenderInline::positionForPoint):
(WebCore::RenderInline::computeRectForRepaint):
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Have to look for fixed or sticky.
(WebCore::RenderLayer::calculateClipRects): Use isPositioned().
(WebCore::RenderLayer::shouldBeNormalFlowOnly): Ditto.
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::propagateStyleToAnonymousChildren): Should use isInFlowPositioned(),
not just isRelPositioned().
(WebCore::RenderObject::offsetParent): Use isPositioned().
* rendering/RenderObject.h:
(WebCore::RenderObject::isInFlowPositioned):
(WebCore::RenderObject::isStickyPositioned):
(WebCore::RenderObject::setStickyPositioned):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(RenderObjectBitfields):
* rendering/RenderStyle.h: add hasViewportConstrainedPosition() for fixed or sticky position.

LayoutTests:

Various ref tests for sticky positioning.

* fast/css/sticky/inflow-sticky-expected.html: Added.
* fast/css/sticky/inflow-sticky.html: Added.
* fast/css/sticky/inline-sticky-abspos-child-expected.html: Added.
* fast/css/sticky/inline-sticky-abspos-child.html: Added.
* fast/css/sticky/inline-sticky-expected.html: Added.
* fast/css/sticky/inline-sticky.html: Added.
* fast/css/sticky/replaced-sticky-expected.html: Added.
* fast/css/sticky/replaced-sticky.html: Added.
* fast/css/sticky/sticky-as-positioning-container-expected.html: Added.
* fast/css/sticky/sticky-as-positioning-container.html: Added.
* fast/css/sticky/sticky-left-expected.html: Added.
* fast/css/sticky/sticky-left-percentage-expected.html: Added.
* fast/css/sticky/sticky-left-percentage.html: Added.
* fast/css/sticky/sticky-left.html: Added.
* fast/css/sticky/sticky-margins-expected.html: Added.
* fast/css/sticky/sticky-margins.html: Added.
* fast/css/sticky/sticky-side-margins-expected.html: Added.
* fast/css/sticky/sticky-side-margins.html: Added.
* fast/css/sticky/sticky-stacking-context-expected.html: Added.
* fast/css/sticky/sticky-stacking-context.html: Added.
* fast/css/sticky/sticky-top-expected.html: Added.
* fast/css/sticky/sticky-top-margins-expected.html: Added.
* fast/css/sticky/sticky-top-margins.html: Added.
* fast/css/sticky/sticky-top.html: Added.
* fast/css/sticky/sticky-writing-mode-horizontal-bt-expected.html: Added.
* fast/css/sticky/sticky-writing-mode-horizontal-bt.html: Added.
* fast/css/sticky/sticky-writing-mode-vertical-lr-expected.html: Added.
* fast/css/sticky/sticky-writing-mode-vertical-lr.html: Added.
* fast/css/sticky/sticky-writing-mode-vertical-rl-expected.html: Added.
* fast/css/sticky/sticky-writing-mode-vertical-rl.html: Added.

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

* platform/chromium/TestExpectations:
Marked fast/text/atsui-bidi-control.html as timing out on SnowLeopard.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126775 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Crash when trying to render empty cues
https://bugs.webkit.org/show_bug.cgi?id=94776

Reviewed by Eric Carlson.

Added extra safety checks.

Source/WebCore:

Test: media/track/track-cue-rendering-empty-cue-crash.html

* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::getCueAsHTML):
(WebCore::TextTrackCue::updateDisplayTree):

LayoutTests:

* media/track/track-cue-rendering-empty-cue-crash-expected.txt: Added.
* media/track/track-cue-rendering-empty-cue-crash.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126776 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make Force Repaint work with tiled backing store
https://bugs.webkit.org/show_bug.cgi?id=95102

Reviewed by Dan Bernstein.

Source/WebCore:

forceRepaint() didn't work correctly with tiled backing
store, because it never actually caused a repaint on the tiles.

Fix by having the drawing area call forceRepaint() on
the TileCache (via the TiledBacking interface), which
just ends up as a setNeedsDisplay().

* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/mac/TileCache.h:
* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::forceRepaint):

Source/WebKit2:

Have forceRepaint() call down to the tiled backing of each FrameView,
so they can repaint.

* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::forceRepaint):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126777 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix sticky-position test to hide scrollbars.

* fast/css/sticky/sticky-side-margins-expected.html:
* fast/css/sticky/sticky-side-margins.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126778 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MediaStream API: Fix review comments from patch #93119
https://bugs.webkit.org/show_bug.cgi?id=95064

Reviewed by Adam Barth.

Source/WebCore:

Adding const to accessors.

Change covered by exisiting tests..

* Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::candidate):
(WebCore::RTCIceCandidate::sdpMid):
(WebCore::RTCIceCandidate::sdpMLineIndex):
* Modules/mediastream/RTCIceCandidate.h:
(RTCIceCandidate):
* Modules/mediastream/RTCSessionDescription.cpp:
(WebCore::RTCSessionDescription::create):
(WebCore::RTCSessionDescription::type):
(WebCore::RTCSessionDescription::sdp):
* Modules/mediastream/RTCSessionDescription.h:
(RTCSessionDescription):

LayoutTests:

* fast/mediastream/RTCIceCandidate-expected.txt:
* fast/mediastream/RTCIceCandidate.html:
* fast/mediastream/RTCSessionDescription-expected.txt:
* fast/mediastream/RTCSessionDescription.html:
* fast/mediastream/constructors-expected.txt:
* fast/mediastream/constructors.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Even up WTF::String to CString functions
https://bugs.webkit.org/show_bug.cgi?id=95008

Reviewed by Sam Weinig.

Apply advantages from UString to WTF::String.

* wtf/text/WTFString.cpp:
(WTF::String::ascii): There is no need to special case the null length, both
following branches use CString::newUninitialized(), which create empty string
for null length.
(WTF::String::latin1): Use characters16() instead of characters() to avoid
testing is8Bit() a second time.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add ECMAScript Number to String conversion to WTF::String
https://bugs.webkit.org/show_bug.cgi?id=95016

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

Rename UString::number(double) to UString::numberToStringECMAScript(double) to
differenciate it from the fixed-width conversion performed by String::number().

* parser/ParserArena.h:
(JSC::IdentifierArena::makeNumericIdentifier):
* runtime/JSONObject.cpp:
(JSC::Stringifier::appendStringifiedValue):
* runtime/NumberPrototype.cpp:
(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
(JSC::numberProtoFuncToString):
* runtime/NumericStrings.h:
(JSC::NumericStrings::add):
* runtime/UString.cpp:
(JSC::UString::numberToStringECMAScript):
* runtime/UString.h:
(UString):

Source/WTF: 

* wtf/text/WTFString.cpp:
(WTF::String::numberToStringECMAScript):
* wtf/text/WTFString.h:
Add the implementation of numberToStringECMAScript(double) from UString to String.
This will make it easier to replace UString in the future.

Tools: 

* TestWebKitAPI/Tests/WTF/WTFString.cpp:
(TestWebKitAPI::testNumberToStringECMAScript):
(TestWebKitAPI): Add tests for String's ECMAString number conversion.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126781 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix some more sticky ref tests; avoid wrapping at the 800px
window width, and remove a margin:auto from a reference.

* fast/css/sticky/sticky-margins-expected.html:
* fast/css/sticky/sticky-margins.html:
* fast/css/sticky/sticky-writing-mode-vertical-lr-expected.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126782 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix compilation when both OS(WINCE) and PLATFORM(QT) are true
https://bugs.webkit.org/show_bug.cgi?id=95050

Patch by Kevin Funk <kevin.funk@kdab.com> on 2012-08-27
Reviewed by Simon Hausmann.

The compilation of NativeImagePtr.h breaks when both OS(WINCE) and PLATFORM(QT) are enabled.
This patch fixes this.

* platform/graphics/NativeImagePtr.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126783 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Fix exit code status logic in run-chromium-webkit-unit-tests
https://bugs.webkit.org/show_bug.cgi?id=95115

Reviewed by Adam Barth.

Use VCSUtils utility function to check if webkit_unit_tests terminates normally so we generate a non-zero exit
code if the unit tests crash.

* Scripts/run-chromium-webkit-unit-tests:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126784 268f45cc-cd09-0410-ab3c-d52691b4dbfc
'self' in a CSP directive should match blob: and filesystem: URLs.
https://bugs.webkit.org/show_bug.cgi?id=94918

Patch by Mike West <mkwst@chromium.org> on 2012-08-27
Reviewed by Adam Barth.

Source/WebCore:

'blob:' and 'filesystem:' URLs are same-origin with the page on which
they were created. Currently, we're using the wrong URL for comparison
when matching against CSP directive source lists. This patch adjusts the
matching logic to compare against the blob's inner URL, rather than
directly against the blob itself.

Tests: http/tests/security/contentSecurityPolicy/blob-urls-match-self.html
       http/tests/security/contentSecurityPolicy/filesystem-urls-match-self.html
       http/tests/security/contentSecurityPolicy/source-list-parsing-08.html

* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::matches):
    If we should use the inner URL of a given resource, extract it into
    a local variable, and pass that into CSPSource for comparison.
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::shouldUseInnerURL):
(WebCore::SecurityOrigin::extractInnerURL):
    Move shouldUseInnerURL and extractInnerURL to SecurityOrigin's
    public signature.
(WebCore::shouldTreatAsUniqueOrigin):
(WebCore::SecurityOrigin::create):
(WebCore::SecurityOrigin::isSecure):
    shouldUseInnerURL and extractInnerURL are now static methods of
    SecurityOrigin: updating calls to mathc.
* page/SecurityOrigin.h:

LayoutTests:

* http/tests/security/contentSecurityPolicy/blob-urls-match-self-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/blob-urls-match-self.html: Added.
* http/tests/security/contentSecurityPolicy/filesystem-urls-match-self-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/filesystem-urls-match-self.html: Added.
    Test the new functionality.
* http/tests/security/contentSecurityPolicy/resources/multiple-iframe-test.js:
(test):
    Adding support for data: URLs.
* http/tests/security/contentSecurityPolicy/source-list-parsing-08-expected.txt: Added.
* http/tests/security/contentSecurityPolicy/source-list-parsing-08.html: Added.
    Adding data: URL tests to ensure that grabbing the inner URL of the
    URL to test doesn't inadvertently regress that behavior.
* platform/efl/Skipped:
* platform/mac/Skipped:
* platform/qt/Skipped:
* platform/win/Skipped:
    Skipping filessytem test on ports where it's not enabled.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126785 268f45cc-cd09-0410-ab3c-d52691b4dbfc
TextTrack modes are strings
https://bugs.webkit.org/show_bug.cgi?id=85050

Reviewed by Eric Carlson.

The spec recently changed away from enumeration to string for the type
of TextTrack mode.
http://dev.w3.org/html5/spec/media-elements.html#texttrackmode

Source/WebCore:

No new tests. Updates to existing tests.

* html/HTMLMediaElement.cpp:

Use the new string mode rather than the old enum.  Also, TextTrack::setMode()
no longer requires an ExceptionCode:
(WebCore::HTMLMediaElement::loadInternal):
(WebCore::HTMLMediaElement::textTrackModeChanged):
(WebCore::HTMLMediaElement::textTrackKindChanged):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::showingTrackWithSameKind):
(WebCore::HTMLMediaElement::configureTextTrackGroup):
(WebCore::HTMLMediaElement::configureNewTextTracks):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):

* html/track/TextTrack.cpp:

Update these methods to use ConstructFromLiteral for efficiency:
(WebCore::TextTrack::subtitlesKeyword):
(WebCore::TextTrack::captionsKeyword):
(WebCore::TextTrack::descriptionsKeyword):
(WebCore::TextTrack::chaptersKeyword):
(WebCore::TextTrack::metadataKeyword):

New methods to use for the mode string (replacing the enum):
(WebCore::TextTrack::disabledKeyword):
(WebCore::TextTrack::hiddenKeyword):
(WebCore::TextTrack::showingKeyword):

(WebCore::TextTrack::TextTrack): Initialize mode to disabled.
(WebCore::TextTrack::setMode): Remove ExceptionCode and no longer throw an
INVALID_ACCESS_ERR.
(WebCore::TextTrack::mode): Return a keyword string instead of an enum.

Use the new string mode rather than the old enum:
(WebCore::TextTrack::cues):
(WebCore::TextTrack::activeCues):
(WebCore::TextTrack::isRendered):

* html/track/TextTrack.h: Remove old enum, add new string keyword methods,
and update mode() and setMode() accordingly.

* html/track/TextTrack.idl: Remove old enum and make mode attribute be a string.

Use the new string mode rather than the old enum:
* html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::dispatchEvent):
(WebCore::TextTrackCue::isActive):

LayoutTests:

Remove check for mode constants as we are no longer using an enum:
* media/track/track-constants-expected.txt:
* media/track/track-constants.html:

Update tests to use the new strings rather than the enums:
* media/track/track-delete-during-setup-expected.txt:
* media/track/track-delete-during-setup.html:
* media/track/track-element-dom-change-crash-expected.txt:
* media/track/track-element-dom-change-crash.html:
* media/track/track-load-from-src-readyState.html:
* media/track/track-mode-expected.txt:
* media/track/track-mode-not-changed-by-new-track-expected.txt:
* media/track/track-mode-not-changed-by-new-track.html:
* media/track/track-mode-triggers-loading-expected.txt:
* media/track/track-mode-triggers-loading.html:
* media/track/track-mode.html:
* media/track/track-texttracks-expected.txt:
* media/track/track-texttracks.html:
* media/video-test.js:
(enableAllTextTracks):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Chromium] Fixing infinite recursion in Canvas2DLayerManager
https://bugs.webkit.org/show_bug.cgi?id=95110

Patch by Justin Novosad <junov@chromium.org> on 2012-08-27
Reviewed by Stephen White.

Source/WebCore:

Fixed infinite recursion by not reporting a change in memory allocation
when Canvas2DLayerBridge::freeMemoryIfPossible fails to free memory.
Also modified Canvas2DLayerManager::layerAllocatedStorageChanged to
only initiate a memory eviction pass if memory consumption has
increased.

Test: webkit_unit_tests Canvas2DLayerManagerTest*

* platform/graphics/chromium/Canvas2DLayerBridge.cpp:
(WebCore::Canvas2DLayerBridge::freeMemoryIfPossible):
* platform/graphics/chromium/Canvas2DLayerManager.cpp:
(WebCore::Canvas2DLayerManager::layerAllocatedStorageChanged):

Source/WebKit/chromium:

Breaking recursion cycle by not reporting a change in memory allocation
when no memory is freed in FakeCanvas2DLayer::freeMemoryIfPossible.

* tests/Canvas2DLayerManagerTest.cpp:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126787 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL][WK2] Free Url_Bar on program exit
https://bugs.webkit.org/show_bug.cgi?id=95086

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-08-27
Reviewed by Eric Seidel.

Fix a memory leak by freeing the Url_Bar on program exit.

* MiniBrowser/efl/main.c:
(main): Call url_bar_del() to free the Url_Bar.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126788 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ShadowRoot insertion point change aborts css transition
https://bugs.webkit.org/show_bug.cgi?id=93755

Patch by Takashi Sakamoto <tasak@google.com> on 2012-08-27
Reviewed by Hajime Morita.

Source/WebCore:

ElementShadow always detaches shadow hosts when distribution is
changed, i.e. select attribute's value is changed. However it clears
the style of the shadow host. So when distribution is changed,
no css transition can be started at the same time. To avoid this
problem, invalidateDistribution, i.e. a method for invalidating current
distribution, should not make shadow host reattach. Instead, it should
make distribute nodes reattached and set needsRecalcStyle flag of
shadow host.

Test: transitions/transition-on-shadow-host-with-distributed-node.html

* dom/ElementShadow.cpp:
(WebCore::ElementShadow::addShadowRoot):
To support replaced elements, i.e. IMG, and so on, shadow host's
renderer must be updated when author shadow roots are addded.
So invoke shadow host's reattach instead of shadowRoot's attach.
(WebCore::ElementShadow::invalidateDistribution):
Remove shadow host's lazy reattach (detach and lazyAttach). Instead, do
distributed nodes' lazy reattach and set shadow host's needsRecalcStyle
flag.
* dom/Node.h:
(WebCore::Node::lazyReattach):
Newly added. The method works like Node::reattach, but use
lazyAttach instead of attach.
(WebCore):

LayoutTests:

* fast/dom/shadow/transition-on-shadow-host-with-distributed-node-expected.txt: Added.
* fast/dom/shadow/transition-on-shadow-host-with-distributed-node.html: Added.
* platform/chromium-linux/fast/html/details-nested-2-expected.txt: Added, because of changing the code about adding shadow root.
* platform/chromium-linux/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt: Added.
* platform/mac/fast/html/details-nested-2-expected.txt: Rebased, because of changing the code about adding shadow root.
* platform/mac/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt: Rebased.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126789 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Have RenderSurface create and add its own generated RenderPass
https://bugs.webkit.org/show_bug.cgi?id=94957

Reviewed by Adrienne Walker.

Source/WebCore:

Have CCRenderSurface create and add its RenderPass to the appropriate
data structures. Previously CCLayerTreeHostImpl had this responsibility
but this limits us to a single RenderPass per RenderSurface. In ubercomp
we have layers that generate many RenderPasses that all contribute to a
single RenderSurface. This target RenderSurface can create all the needed
RenderPasses in the correct order for itself when asked to now.

We invent CCRenderPassSink and make FrameData implement it, so that the
RenderSurface does not need to know the details of how the RenderPasses
it generates will be stored.

Test: CCRenderSurfaceTest.sanityCheckSurfaceCreatesCorrectRenderPass

* WebCore.gypi:
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::FrameData::appendRenderPass):
(WebCore):
(WebCore::CCLayerTreeHostImpl::calculateRenderPasses):
* platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
(FrameData):
* platform/graphics/chromium/cc/CCRenderPassSink.h: Added.
(WebCore):
(CCRenderPassSink):
* platform/graphics/chromium/cc/CCRenderSurface.cpp:
(WebCore::CCRenderSurface::appendRenderPasses):
(WebCore):
* platform/graphics/chromium/cc/CCRenderSurface.h:
(WebCore):
(CCRenderSurface):

Source/WebKit/chromium:

Test that a RenderSurface generates the RenderPass that we expect.

* tests/CCRenderSurfaceTest.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[chromium] Prevent scrollbar thumb size from changing during compositor zoom
https://bugs.webkit.org/show_bug.cgi?id=94859

Reviewed by James Robinson.

Source/WebCore:

During a pinch zoom, the total size of a scrollable area will change,
causing the thumb to become a different size. This will cause the
thumb texture (painted at a specific size) to stretch. To fix this,
add a new CCScrollbarGeometryFixedThumb class which behaves just like
a normal WebScrollbarThemeGeometry class, but constrains the thumb to
be a fixed size.

* WebCore.gypi:
* platform/graphics/chromium/ScrollbarLayerChromium.cpp:
(WebCore::ScrollbarLayerChromium::pushPropertiesTo):
* platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.cpp: Added.
(WebCore):
(WebCore::CCScrollbarGeometryFixedThumb::create):
(WebCore::CCScrollbarGeometryFixedThumb::~CCScrollbarGeometryFixedThumb):
(WebCore::CCScrollbarGeometryFixedThumb::update):
(WebCore::CCScrollbarGeometryFixedThumb::clone):
(WebCore::CCScrollbarGeometryFixedThumb::thumbLength):
(WebCore::CCScrollbarGeometryFixedThumb::thumbPosition):
(WebCore::CCScrollbarGeometryFixedThumb::splitTrack):
(WebCore::CCScrollbarGeometryFixedThumb::CCScrollbarGeometryFixedThumb):
* platform/graphics/chromium/cc/CCScrollbarGeometryFixedThumb.h: Added.
(WebCore):
(CCScrollbarGeometryFixedThumb):
* platform/graphics/chromium/cc/CCScrollbarGeometryStub.cpp: Added.
(WebCore):
(WebCore::CCScrollbarGeometryStub::CCScrollbarGeometryStub):
(WebCore::CCScrollbarGeometryStub::~CCScrollbarGeometryStub):
(WebCore::CCScrollbarGeometryStub::clone):
(WebCore::CCScrollbarGeometryStub::thumbPosition):
(WebCore::CCScrollbarGeometryStub::thumbLength):
(WebCore::CCScrollbarGeometryStub::trackPosition):
(WebCore::CCScrollbarGeometryStub::trackLength):
(WebCore::CCScrollbarGeometryStub::hasButtons):
(WebCore::CCScrollbarGeometryStub::hasThumb):
(WebCore::CCScrollbarGeometryStub::trackRect):
(WebCore::CCScrollbarGeometryStub::thumbRect):
(WebCore::CCScrollbarGeometryStub::minimumThumbLength):
(WebCore::CCScrollbarGeometryStub::scrollbarThickness):
(WebCore::CCScrollbarGeometryStub::backButtonStartRect):
(WebCore::CCScrollbarGeometryStub::backButtonEndRect):
(WebCore::CCScrollbarGeometryStub::forwardButtonStartRect):
(WebCore::CCScrollbarGeometryStub::forwardButtonEndRect):
(WebCore::CCScrollbarGeometryStub::constrainTrackRectToTrackPieces):
(WebCore::CCScrollbarGeometryStub::splitTrack):
* platform/graphics/chromium/cc/CCScrollbarGeometryStub.h: Added.
(WebCore):
(CCScrollbarGeometryStub):
(WebCore::CCScrollbarGeometryStub::update):
* platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
(WebCore::CCScrollbarLayerImpl::setScrollbarGeometry):
(WebCore::CCScrollbarLayerImpl::setScrollbarData):
* platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
(WebCore::CCScrollbarLayerImpl::scrollbarGeometry):
(CCScrollbarLayerImpl):

Source/WebKit/chromium:

Update test.

* tests/CCLayerTreeHostImplTest.cpp:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126791 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[webkit-patch] Don't crash chrome-channels command when a previously unknown platform shows up.
https://bugs.webkit.org/show_bug.cgi?id=95104

Reviewed by Adam Barth.

Today I found out this command was broken by the new iOS platform showing up on omahaproxy. Now the webkit-patch chrome-channels command gracefully handles new, previously unknown platforms. Also, it prints iOS in the proper mixed case.

* Scripts/webkitpy/common/net/omahaproxy.py:
(OmahaProxy):
(OmahaProxy.get_revisions):
* Scripts/webkitpy/common/net/omahaproxy_unittest.py:
(OmahaProxyTest):
(OmahaProxyTest.test_get_revisions):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@126792 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed rebaselining after r126683.

* platform/chromium/TestExpectations:
Removed 4 entries that were rebaselined.

* fast/block/float/avoidance-rtl-expected.txt: Replaced.
* fast/borders/border-radius-wide-border-01-expected.txt: Replaced.
* fast/borders/only-one-border-with-width-expected.txt: Replaced.
* fast/multicol/progression-reverse-expected.txt: Replaced.
Common baseline updates now that we always dump the first border.

* platform/efl/fast/block/float/avoidance-rtl-expected.txt: Removed.
* platform/efl/fast/borders/border-radius-wide-border-01-expected.txt: Removed.
* platform/efl/fast/borders/only-one-border-with-width-expected.txt: Removed.
* platform/efl/fast/multicol/progression-reverse-expected.txt: Removed.
* platform/gtk/fast/block/float/avoidance-rtl-expected.txt: Removed.
* platform/gtk/fast/borders/border-radius-wide-border-01-expected.txt: Removed.
* platform/gtk/fast/borders/only-one-border-with-width-expected.txt: Removed.
* platform/gtk/fast/multicol/progression-reverse-expected.txt: Removed.
* platform/mac-lion/fast/block/float/avoidance-rtl-expected.txt: Removed.
* platform/mac-lion/fast/borders: Removed.
* platform/mac-lion/fast/borders/border-radius-wide-border-01-expected.txt: Removed.
* platform/mac-lion/fast/borders/only-one-border-with-width-expected.txt: Removed.
* platform/mac-lion/fast/multicol/progression-reverse-expected.txt: Removed.
* platform/mac/fast/block/float/avoidance-rtl-expected.txt: Removed.
* platform/mac/fast/borders/border-radius-wide-border-01-expected.txt: Removed.
* platform/mac/fast/borders/only-one-border-with-width-expected.txt: Removed.
* platform/mac/fast/multicol/progression-reverse-expected.txt: Removed.
* platform/qt/fast/block/float/avoidance-rtl-expected.txt: Removed.
* platform/qt/fast/borders/border-radius-wide-border-01-expected.txt: Removed.
* platform/qt/fast/borders/only-one-border-with-width-expected.txt: Removed.
Removed those baselines now that they can be shared with the common one above.


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