Add missing compile flag for compositing
https://bugs.webkit.org/show_bug.cgi?id=98681

Patch by Rik Cabanier <cabanier@adobe.com> on 2012-10-08
Reviewed by Dirk Schulze.

This flag is needed in case there is a difference in API
when compositing is enabled

* Configurations/FeatureDefines.xcconfig:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130680 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Suppress editing/pasteboard/data-transfer-items.html failure.
https://bugs.webkit.org/show_bug.cgi?id=98686

Unreviewed, expectations change.

* platform/chromium/TestExpectations:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130681 268f45cc-cd09-0410-ab3c-d52691b4dbfc
GTK port should warn if bug modifier is missing in TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=98678

Reviewed by Dirk Pranke.

Tools:

Reimplement the warn_if_bug_missing_in_test_expectations method in
GtkPort, returning True for producing a warning in such cases.

* Scripts/webkitpy/layout_tests/port/gtk.py:
(GtkPort.warn_if_bug_missing_in_test_expectations):

LayoutTests:

Add generic Bug(GTK) modifiers for two test expectations.

* platform/gtk/TestExpectations:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130682 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Upstream some tweaks for overlay play button on Android
https://bugs.webkit.org/show_bug.cgi?id=98671

Patch by Min Qin <qinmin@chromium.org> on 2012-10-08
Reviewed by Adam Barth.

This change stops displaying the overlay play button if video height is too small
No test for this. Will rebase layout test expectations for android later.

* css/mediaControlsChromiumAndroid.css:
(video::-webkit-media-controls-overlay-enclosure):

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

Rebaselined those 2 tables/ tests that were forgotten in the rebaselining after r103875.
https://bugs.webkit.org/show_bug.cgi?id=74888 was opened to track those rebaselining but
it looks like some platform fell through the cracks.

* platform/chromium/TestExpectations:
Removed the 2 entries.

* platform/chromium-mac-snowleopard/tables/mozilla_expected_failures/core/captions1-expected.png: Added.
* platform/chromium-mac-snowleopard/tables/mozilla_expected_failures/core/captions2-expected.png: Added.
* platform/chromium-mac/tables/mozilla_expected_failures/core/captions1-expected.png: Added.
* platform/chromium-mac/tables/mozilla_expected_failures/core/captions1-expected.txt: Added.
* platform/chromium-mac/tables/mozilla_expected_failures/core/captions2-expected.png: Added.
* platform/chromium-mac/tables/mozilla_expected_failures/core/captions2-expected.txt: Added.
Progression: the table captions are larger, which matches other browsers and other platforms' baselines.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130684 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Qt] Unreviewed gardening. Add PNGs after r130653,
and skip tests on Qt-WK2, because they fail on it.

* platform/qt-5.0-wk2/TestExpectations:
* platform/qt/fast/ruby/rubyDOM-insert-rt-expected.png: Added.
* platform/qt/fast/ruby/rubyDOM-insert-text1-expected.png: Added.
* platform/qt/fast/ruby/rubyDOM-insert-text2-expected.png: Added.
* platform/qt/fast/ruby/rubyDOM-insert-text3-expected.png: Added.
* platform/qt/fast/ruby/rubyDOM-remove-rt1-expected.png: Added.
* platform/qt/fast/ruby/rubyDOM-remove-rt2-expected.png: Added.
* platform/qt/fast/ruby/rubyDOM-remove-text1-expected.png: Added.
* platform/qt/fast/ruby/rubyDOM-remove-text2-expected.png: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130685 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Replace 2 uses of updateLogicalHeight with computeLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=98677

Reviewed by Ojan Vafai.

This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
override the const computeLogicalHeight method rather than the updateLogicalHeight
setter method.

No new tests, there should be no behavior change as this is just a refactor.

* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
This is a slight correctness fix, although we don't support vertical inputs yet.
* rendering/RenderTextControl.h:
(RenderTextControl):
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::computeLogicalHeight):
* rendering/svg/RenderSVGForeignObject.h:
(RenderSVGForeignObject):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130686 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Exclusions] Add support for polygonal shapes
https://bugs.webkit.org/show_bug.cgi?id=96811

Patch by Hans Muller <hmuller@adobe.com> on 2012-10-08
Reviewed by Dirk Schulze.

Source/WebCore:

Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
Supports the public ExclusionShape operations using the algorithm described here:
http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
Although both the "included" and "excluded" operations are supported, only the former is
used, since only shape-inside is supported at the moment.

The ExclusionPolygon class stores the polygon's edges in an interval tree.

Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
by spanning vertices contained in sequences of more than two colinear vertices. For example,
a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.

Although the implementation supports complex polygons, the layout code is limited to
essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
lands.

Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
       fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
       fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
       fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
       fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/ExclusionPolygon.cpp: Added.
(WebCore):
(EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
(WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
(WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
(WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
(WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
(WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
(WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
(WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
(WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
* rendering/ExclusionPolygon.h: Added.
(WebCore):
(ExclusionPolygon):
(WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
(WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
(WebCore::ExclusionPolygon::numberOfVertices):
(WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
(ExclusionPolygonEdge):
(WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
(WebCore::ExclusionPolygonEdge::vertex1):
(WebCore::ExclusionPolygonEdge::vertex2):
(WebCore::ExclusionPolygonEdge::minX):
(WebCore::ExclusionPolygonEdge::minY):
(WebCore::ExclusionPolygonEdge::maxX):
(WebCore::ExclusionPolygonEdge::maxY):
* rendering/ExclusionShape.cpp:
(WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
(WebCore):
(WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
* rendering/ExclusionShapeInsideInfo.cpp:
(WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.

LayoutTests:

Verify that a rectangular shape-inside specified as a polygon works as expected for all
writing-modes.

Added exclusions tests for non-complex concave shape-inside polygons as well.
The shapes in this set of tests are "rectangular" in the sense that
horizontal lines that overlap the polygon only cross the polygon twice.
The expected part of each test uses float "sandbags" to simulate the
shape-inside area in the test expectations. The  tests use SVG to
display the polygon itself, to simplify visual inspection.
(See http://www.alistapart.com/articles/sandbags/).

* fast/exclusions/shape-inside/shape-inside-polygon-rectangle-expected.html: Added.
* fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html: Added.
* fast/exclusions/resources/simple-polygon.js: Added.
(createPolygon):
(polygonXIntercepts):
(generatePolygonContentString):
(simulatePolygonShape):
(generateSimulatedPolygonShapeInsideElement):
(positionInformativeText):
(createPolygonShapeInsideTestCase):
(createPolygonShapeInsideTestCaseExpected):
* fast/exclusions/shape-inside/shape-inside-simple-polygon-001-expected.html: Added.
* fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html: Added.
* fast/exclusions/shape-inside/shape-inside-simple-polygon-002-expected.html: Added.
* fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html: Added.
* fast/exclusions/shape-inside/shape-inside-simple-polygon-003-expected.html: Added.
* fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html: Added.
* fast/exclusions/shape-inside/shape-inside-simple-polygon-004-expected.html: Added.
* fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130687 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add render object that paints plugin snapshots
https://bugs.webkit.org/show_bug.cgi?id=98322
<rdar://problem/12426546>

Reviewed by Simon Fraser.

First, teach plugins to maintain a set of states when plugin snapshotting is enabled.

Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
the generated poster image.

* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
* html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
(WebCore::HTMLPlugInElement::displayState): Add bit for display state.
(WebCore::HTMLPlugInElement::setDisplayState):
(WebCore::HTMLPlugInElement::updateSnapshot):

* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
enabled, plugin state is set to wait for a poster image.
(WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
plugin snapshotting is enabled.
(WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
renderer and set its state to wait for user input to start the plugin.
* html/HTMLPlugInImageElement.h:
(HTMLPlugInImageElement):

* rendering/RenderObject.h:
(WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
RenderEmbeddedObject, isEmbeddedObject() still returns true.
* rendering/RenderEmbeddedObject.h:
(RenderEmbeddedObject): Elevate a few virtual methods to protected for
RenderSnapshottedPlugIn to override.

* rendering/RenderSnapshottedPlugIn.cpp: Added.
(WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
resource.
(WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
image resource to remove the renderer as a client, and remove image from memory cache.
(WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
HTML element.
(WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
(WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
RenderImage does.
(WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
plugin is not playing.
(WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
RenderImage::paintReplaced() and RenderImage::paintIntoRect().
* rendering/RenderSnapshottedPlugIn.h: Added.
(WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.

* rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):

* WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
* CMakeLists.txt: Ditto.
* GNUmakefile.list.am: Ditto.
* Target.pri: Ditto.
* WebCore.gypi: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* rendering/RenderingAllInOne.cpp: Ditto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130688 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move layerTreeAsText to window.internals
https://bugs.webkit.org/show_bug.cgi?id=98690

Reviewed by James Robinson.

Add window.internals.layerTreeAsText(document), and change the tests to use it.
I'll remove testRunner.layerTreeAsText() in a later patch.

Source/WebCore:

* testing/Internals.cpp:
(WebCore::Internals::layerTreeAsText):
* testing/Internals.h:
(Internals):
* testing/Internals.idl:

LayoutTests:

* compositing/animation/animation-compositing.html:
* compositing/backing/no-backing-for-clip-overlap.html:
* compositing/backing/no-backing-for-clip.html:
* compositing/backing/no-backing-for-perspective.html:
* compositing/bounds-in-flipped-writing-mode.html:
* compositing/clip-child-by-non-stacking-ancestor.html:
* compositing/columns/composited-in-paginated.html:
* compositing/geometry/ancestor-overflow-change.html:
* compositing/geometry/bounds-clipped-composited-child.html:
* compositing/geometry/bounds-ignores-hidden-composited-descendant.html:
* compositing/geometry/bounds-ignores-hidden-dynamic-negzindex.html:
* compositing/geometry/bounds-ignores-hidden-dynamic.html:
* compositing/geometry/bounds-ignores-hidden.html:
* compositing/geometry/clip.html:
* compositing/geometry/composited-in-columns.html:
* compositing/geometry/fixed-position-composited-switch.html:
* compositing/geometry/flipped-writing-mode.html:
* compositing/geometry/foreground-layer.html:
* compositing/geometry/layer-due-to-layer-children-deep-switch.html:
* compositing/geometry/layer-due-to-layer-children-switch.html:
* compositing/geometry/limit-layer-bounds-clipping-ancestor.html:
* compositing/geometry/limit-layer-bounds-fixed-positioned.html:
* compositing/geometry/limit-layer-bounds-opacity-transition.html:
* compositing/geometry/limit-layer-bounds-overflow-root.html:
* compositing/geometry/limit-layer-bounds-positioned-transition.html:
* compositing/geometry/limit-layer-bounds-positioned.html:
* compositing/geometry/limit-layer-bounds-transformed-overflow.html:
* compositing/geometry/limit-layer-bounds-transformed.html:
* compositing/geometry/preserve-3d-switching.html:
* compositing/iframes/become-composited-nested-iframes.html:
* compositing/iframes/become-overlapped-iframe.html:
* compositing/iframes/composited-parent-iframe.html:
* compositing/iframes/connect-compositing-iframe-delayed.html:
* compositing/iframes/connect-compositing-iframe.html:
* compositing/iframes/connect-compositing-iframe2.html:
* compositing/iframes/connect-compositing-iframe3.html:
* compositing/iframes/enter-compositing-iframe.html:
* compositing/iframes/iframe-resize.html:
* compositing/iframes/iframe-size-from-zero.html:
* compositing/iframes/iframe-size-to-zero.html:
* compositing/iframes/iframe-src-change.html:
* compositing/iframes/invisible-nested-iframe-hide.html:
* compositing/iframes/invisible-nested-iframe-show.html:
* compositing/iframes/leave-compositing-iframe.html:
* compositing/iframes/overlapped-iframe-iframe.html:
* compositing/iframes/overlapped-iframe.html:
* compositing/iframes/overlapped-nested-iframes.html:
* compositing/iframes/page-cache-layer-tree.html:
* compositing/iframes/resizer.html:
* compositing/iframes/scrolling-iframe.html:
* compositing/images/clip-on-directly-composited-image.html:
* compositing/layer-creation/animation-overlap-with-children.html:
* compositing/layer-creation/fixed-position-and-transform.html:
* compositing/layer-creation/fixed-position-out-of-view.html:
* compositing/layer-creation/fixed-position-under-transform.html:
* compositing/layer-creation/no-compositing-for-preserve-3d.html:
* compositing/layer-creation/overflow-scroll-overlap.html:
* compositing/layer-creation/overlap-animation.html:
* compositing/layer-creation/overlap-child-layer.html:
* compositing/layer-creation/overlap-clipping.html:
* compositing/layer-creation/overlap-transformed-and-clipped.html:
* compositing/layer-creation/overlap-transformed-layer.html:
* compositing/layer-creation/overlap-transforms.html:
* compositing/layer-creation/rotate3d-overlap.html:
* compositing/layer-creation/scroll-partial-update.html:
* compositing/layer-creation/spanOverlapsCanvas.html:
* compositing/layer-creation/stacking-context-overlap-nested.html:
* compositing/layer-creation/stacking-context-overlap.html:
* compositing/layer-creation/translatez-overlap.html:
* compositing/overflow-trumps-transform-style.html:
* compositing/overflow/clip-descendents.html:
* compositing/overflow/content-gains-scrollbars.html:
* compositing/overflow/content-loses-scrollbars.html:
* compositing/overflow/overflow-auto-with-touch-no-overflow.html:
* compositing/overflow/overflow-auto-with-touch-toggle.html:
* compositing/overflow/overflow-auto-with-touch.html:
* compositing/overflow/overflow-hidden-with-touch.html:
* compositing/overflow/overflow-overlay-with-touch-no-overflow.html:
* compositing/overflow/overflow-overlay-with-touch.html:
* compositing/overflow/overflow-scroll-with-touch-no-overflow.html:
* compositing/overflow/overflow-scrollbar-layers.html:
* compositing/overflow/overflow-visible-with-touch.html:
* compositing/overflow/resize-painting.html:
* compositing/overflow/scrolling-content-clip-to-viewport.html:
* compositing/overflow/textarea-scroll-touch.html:
* compositing/plugins/1x1-composited-plugin.html:
* compositing/plugins/large-to-small-composited-plugin.html:
* compositing/plugins/no-backing-store.html:
* compositing/plugins/small-to-large-composited-plugin.html:
* compositing/rtl/rtl-absolute-overflow-scrolled.html:
* compositing/rtl/rtl-absolute-overflow.html:
* compositing/rtl/rtl-absolute.html:
* compositing/rtl/rtl-fixed-overflow-scrolled.html:
* compositing/rtl/rtl-fixed-overflow.html:
* compositing/rtl/rtl-fixed.html:
* compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html:
* compositing/rtl/rtl-iframe-absolute-overflow.html:
* compositing/rtl/rtl-iframe-absolute.html:
* compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html:
* compositing/rtl/rtl-iframe-fixed-overflow.html:
* compositing/rtl/rtl-iframe-fixed.html:
* compositing/rtl/rtl-iframe-relative.html:
* compositing/rtl/rtl-relative.html:
* compositing/tiled-layers-hidpi.html:
* compositing/tiling/crash-reparent-tiled-layer.html:
* compositing/tiling/huge-layer-add-remove-child.html-disabled:
* compositing/tiling/huge-layer-img.html-disabled:
* compositing/tiling/huge-layer-resize.html-disabled:
* compositing/tiling/huge-layer-with-layer-children-resize.html-disabled:
* compositing/tiling/huge-layer-with-layer-children.html-disabled:
* compositing/tiling/huge-layer.html-disabled:
* compositing/video/video-poster.html:
* compositing/visibility/layer-visible-content.html:
* compositing/visibility/visibility-image-layers-dynamic.html:
* css3/compositing/should-have-compositing-layer.html:
* css3/filters/composited-during-animation-layertree.html:
* css3/filters/composited-during-transition-layertree.html:
* css3/filters/filtered-compositing-descendant.html:
* css3/filters/should-not-have-compositing-layer.html:
* platform/chromium-android/compositing/layer-creation/overflow-scrolling-touch.html:
* platform/chromium/compositing/force-compositing-mode/force-composite-empty.html:
* platform/chromium/compositing/force-compositing-mode/no-overflow-iframe-layer.html:
* platform/chromium/compositing/force-compositing-mode/overflow-hidden-iframe-layer.html:
* platform/chromium/compositing/force-compositing-mode/overflow-iframe-enter-compositing.html:
* platform/chromium/compositing/force-compositing-mode/overflow-iframe-layer.html:
* platform/chromium/compositing/force-compositing-mode/overflow-iframe-leave-compositing.html:
* platform/mac/compositing/canvas/accelerated-canvas-compositing.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130689 268f45cc-cd09-0410-ab3c-d52691b4dbfc
nrwt: [chromium] run http tests in parallel on bigger machines
https://bugs.webkit.org/show_bug.cgi?id=98562

Reviewed by Eric Seidel.

The "locked tests" shard (which includes the http tests and the
perf tests) is the long pole on machines where we have 4 or more
workers, so we should start making sure that
we can run http tests in parallel, following the normal sharding
rules (all tests in the same directory are in the same shard by
default). We should still probably limit the number of workers
hitting the web server in parallel where we can; a heuristic of
no more than 25% of them seems okay for a start. This will
likely only affect developer workstations and a couple of bots
at first, so should be low risk and a good reward.

* Scripts/webkitpy/layout_tests/port/base.py:
(Port.default_max_locked_shards):
* Scripts/webkitpy/layout_tests/port/chromium.py:
(ChromiumPort.default_max_locked_shards):
* Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py:
(ChromiumPortTestCase.test_default_max_locked_shards):
* Scripts/webkitpy/layout_tests/port/port_testcase.py:
(PortTestCase.test_default_max_locked_shards):
* Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(_set_up_derived_options):
(parse_args):
* Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(MainTest.test_max_locked_shards):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130690 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Mac Chromium: Ignore system numpad modifier
https://bugs.webkit.org/show_bug.cgi?id=97161

Patch by Sailesh Agrawal <sail@chromium.org> on 2012-10-08
Reviewed by Tony Chang.

On Mac, arrow key events have numpad modifier set. This is inconsistent with other platforms.

My fix is to only rely on keycode to decide when to set the numpad modifier.

This code is not exersided by layout tests so I added a new unit test for this.

* WebKit.gypi:
* WebKitUnitTests.gyp:
* src/mac/WebInputEventFactory.mm:
(WebKit::isKeypadEvent): Removed check for numpad modifier.
* tests/WebInputEventFactoryTestMac.mm: Added.
(TEST): Added new test for WebInputEventFactory::keyboardEvent().

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Some non-scrollable elements are added to non-fast-scrollable region
https://bugs.webkit.org/show_bug.cgi?id=97927

Patch by Sami Kyostila <skyostil@chromium.org> on 2012-10-08
Reviewed by James Robinson.

Source/WebCore:

Only RenderLayers that can actually be scrolled should be added to the
ScrollingCoordinator's non-fast scrollable region. Otherwise we may
needlessly fall back to main thread scrolling.

Test: ScrollingCoordinatorChromiumTest.clippedBodyTest

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateScrollbarsAfterLayout):
(WebCore::RenderLayer::updateScrollbarsAfterStyleChange):

Source/WebKit/chromium:

Test that a non-scrollable RenderLayer isn't added to the non-fast scrollable
region.

The test in this patch consists of a web page where both the html and
body elements clip horizontal overflow. This results in a hierarchy
where the body element gets a scrollable RenderLayer. However, that
layer isn't (interactively) scrollable because while the scroll geometry
is calculated based on the amount of overflow, the scroll bars are
hidden because of the "overflow-x: hidden" style.

Previously this layer would have made the entire page part of the
non-fast scrollable region. With this patch,
RenderLayer::allowScrolling() is used as a pre-requisite for expanding
the region, thus avoiding the problem.

* tests/ScrollingCoordinatorChromiumTest.cpp:
(WebKit::TEST_F):
(WebKit):
* tests/data/clipped-body.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130692 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Try to fix Windows build by exporting Frame::layerTreeAsText().

* win/WebKit2.def:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130693 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
https://bugs.webkit.org/show_bug.cgi?id=98631

Patch by Arpita Bahuguna <arpitabahuguna@gmail.com> on 2012-10-08
Reviewed by Eric Seidel.

Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().

The current name is confusing since the function actually gets the
the cached first-line styles.
It also makes the name more descriptive of its functionality
and in accordance with RenderObject::uncachedFirstLineStyle().

No new tests required for this change since no change in behavior is expected.

* rendering/RenderObject.cpp:
(WebCore::RenderObject::cachedFirstLineStyle):
* rendering/RenderObject.h:
(WebCore::RenderObject::firstLineStyle):
(RenderObject):
Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
and made the associated changes.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130694 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Generalize moving URLComponent's begin position
https://bugs.webkit.org/show_bug.cgi?id=98626

Reviewed by Adam Barth.

The patch r130609 introduced moving URLComponents's position.
It turns out this concept is really useful in the parser so
this patch generalize the idea.

* wtf/url/api/ParsedURL.cpp:
(WTF::ParsedURL::removePort):
* wtf/url/src/URLCanonEtc.cpp:
* wtf/url/src/URLComponent.h:
(WTF::URLComponent::moveBy):
Rename URLComponent::move() to URLComponent::moveBy() for consistency
with some of WebCore types.

* wtf/url/src/URLParse.cpp:
* wtf/url/src/URLParseFile.cpp:

* wtf/url/src/URLSegments.cpp:
(WTF::URLSegments::moveFromComponentBy):
Change the semantic to everything from a certain component. This is
useful to move everything, including the scheme.

* wtf/url/src/URLSegments.h:
(URLSegments):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130695 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Moving myself from Committer to Reviewer list.
http://lists.webkit.org/pipermail/webkit-dev/2012-October/022460.html

* Scripts/webkitpy/common/config/committers.py:

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

* platform/chromium/TestExpectations:
Marked a test as crashing on Lion.

* platform/chromium-linux/transforms/3d/point-mapping/3d-point-mapping-expected.png:
* platform/chromium-mac-snowleopard/transforms/3d/point-mapping/3d-point-mapping-expected.png:
* platform/chromium-mac-snowleopard/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
* platform/chromium-mac/transforms/3d/point-mapping/3d-point-mapping-expected.png:
* platform/chromium-mac/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
* platform/chromium-win/transforms/3d/point-mapping/3d-point-mapping-origins-expected.png:
Rebaselined these tests after a change in Chromium compositor (Chromium r160671).


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130697 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make no-column table-layout cases a little faster with inlining
https://bugs.webkit.org/show_bug.cgi?id=98566

Reviewed by Julien Chaffraix.

This change is almost not worth it at only a couple percent boost on
http://www.robohornet.org/tests/resizecol.html
However, I think the logicalWidthFromTableColumn split it kinda nice
so I've decided to post it anyway.

* rendering/RenderTable.cpp:
(WebCore::RenderTable::slowColElement):
* rendering/RenderTable.h:
(WebCore::RenderTable::colElement):
(RenderTable):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::logicalWidthFromTableColumn):
* rendering/RenderTableCell.h:
(WebCore::RenderTableCell::styleOrColLogicalWidth):
(RenderTableCell):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@130698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Soup] Simplify the way that requests are started
https://bugs.webkit.org/show_bug.cgi?id=98532

Reviewed by Gustavo Noronha Silva.

Simplify the creation of the libsoup request and message when kicking off
requests, by elminating a bit of duplicate code.

No new tests. This should not change any behavior.

* platform/network/ResourceHandle.h:
(ResourceHandle):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore):
(WebCore::ResourceHandleInternal::soupSession): Ensure the session
is initialized when passing it to the caller.
(WebCore::createSoupMessageForHandleAndRequest): Added this helper which
takes care of creating the SoupMessage for HTTP/HTTPS requests.
(WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
non-HTTP request creation into this helper.
(WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
(WebCore::ResourceHandle::sendPendingRequest): Instead of having special
helpers to create and send the request, duplicating the logic for sending it
across the file, add this method which can be used in both cases.
(WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
the question of whether or not the request is ready to be sent, but is unsent.
(WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
* platform/network/soup/ResourceRequest.h:
(ResourceRequest): Added a new method for getting the URL string for soup.
* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::urlStringForSoup): Added.

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