Make iOS fixed layer registration more like OS X
https://bugs.webkit.org/show_bug.cgi?id=127983

Reviewed by Antti Koivisto.

Remove some #if PLATFORM(IOS) in the code related to registering
viewport-constrained layers. The code behaves correctly now in WK1
and WK2 based on the presence of a ScrollingCoordinator.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::nearestScrollingCoordinatorAncestor):
(WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
(WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163176 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Don't do logging from Range::collectSelectionRects() on iOS
https://bugs.webkit.org/show_bug.cgi?id=127999

Reviewed by Enrica Casucci.

Remove some logging code that printed Range stuff in debug builds.

* dom/Range.cpp:
(WebCore::Range::collectSelectionRects):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163177 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the forward declaration of RawPluginMetaData in NetscapePluginModule.h
https://bugs.webkit.org/show_bug.cgi?id=127992

Reviewed by Martin Robinson.

* Shared/Plugins/Netscape/NetscapePluginModule.h: RawPluginMetaData is a struct, so it should
be declared as such. The current forward declaration is throwing a warning when using Clang.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163178 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the ARM Thumb2 build after jsCStack branch merge
https://bugs.webkit.org/show_bug.cgi?id=127903

Reviewed by Michael Saboff.

SP register cannot be used as a destination register of SUB or ADD on Thumb mode.

* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163179 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: Sideways 'wobble' when scrolling with trackpad on Mavericks
https://bugs.webkit.org/show_bug.cgi?id=127521
-and corresponding-
<rdar://problem/14137306>

Reviewed by Simon Fraser.

This patch takes http://trac.webkit.org/changeset/154535 which introduced 
filtering wheel events for overflow areas to try to make them less sensitive to X 
deltas when scrolling in a primarily Y direction, and it factors that code out 
into its own class, now called WheelEventDeltaTracker. So now this new class can 
use the same code to filter events for WebKit2’s EventDispatcher.

Files for WheelEventDeltaTracker.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:

WK2 needs these new WheelEventDeltaTracker functions.
* WebCore.exp.in:

Move a bunch of code over to WheelEventDeltaTracker and use
m_recentWheelEventTracker to serve the same purpose.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::defaultWheelEventHandler):
* page/EventHandler.h:

Allow horizontal rubber banding now that we have some event filtering in place.
* page/FrameView.cpp:
(WebCore::FrameView::FrameView):

New files. Most of this code was from EventHandler.
* page/WheelEventDeltaTracker.cpp: Added.
(WebCore::WheelEventDeltaTracker::WheelEventDeltaTracker):
(WebCore::WheelEventDeltaTracker::~WheelEventDeltaTracker):
(WebCore::WheelEventDeltaTracker::beginTrackingDeltas):
(WebCore::WheelEventDeltaTracker::endTrackingDeltas):
(WebCore::WheelEventDeltaTracker::recordWheelEventDelta):
(WebCore::deltaIsPredominantlyVertical):
(WebCore::WheelEventDeltaTracker::dominantScrollGestureDirection):
* page/WheelEventDeltaTracker.h: Added.
(WebCore::WheelEventDeltaTracker::isTrackingDeltas):

New function to clone events while zero-ing out certain deltas.
* platform/PlatformWheelEvent.h:
(WebCore::PlatformWheelEvent::copyIgnoringHorizontalDelta):
(WebCore::PlatformWheelEvent::copyIgnoringVerticalDelta):

Source/WebKit2: Sideways 'wobble' when scrolling with trackpad on Mavericks
https://bugs.webkit.org/show_bug.cgi?id=127521
-and corresponding-
<rdar://problem/14137306>

Reviewed by Simon Fraser.

Start using WebCore::WheelEventDeltaTracker to filter events.
* WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::EventDispatcher):
(WebKit::EventDispatcher::wheelEvent):
* WebProcess/WebPage/EventDispatcher.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Guard GLContextEGL::platformContext() with USE(3D_GRAPHICS)
https://bugs.webkit.org/show_bug.cgi?id=120214

Reviewed by Philippe Normand.

Guard the GLContextEGL::platformContext() declaration and definiton with USE(3D_GRAPHICS)
since this guard is used in the GLContext class, from which the GLContextEGL class overrides
this method.

* platform/graphics/egl/GLContextEGL.cpp:
* platform/graphics/egl/GLContextEGL.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Even when in fixed layout mode, some platforms need to do layout after a viewport change
https://bugs.webkit.org/show_bug.cgi?id=128003

Reviewed by Andreas Kling.

iOS uses fixed layout mode in both WK1 and WK2, but lays out fixed position
elements relative to a variable viewport. This code assumed that fixed layout
implies a fixed viewport.

Fix by testing for useCustomFixedPositionLayoutRect() in the fixed layout case.

Also removed RenderView::hasCustomFixedPosition() which is no longer used.

* page/FrameView.cpp:
(WebCore::FrameView::shouldLayoutAfterViewportChange):
(WebCore::FrameView::visibleContentsResized):
* page/FrameView.h:
* rendering/RenderView.cpp:
* rendering/RenderView.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Unreviewed. Update my contributors.json entry.


* Scripts/webkitpy/common/config/contributors.json:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163183 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Deduplicate Document::encoding().
<https://webkit.org/b/128000>

Make Document::encoding() return an AtomicString so we don't duplicate
the string every time it's called.

215 KB progression on Membuster3.

Reviewed by Simon Fraser.

* dom/Document.h:
* dom/Document.cpp:
(WebCore::Document::encoding):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163184 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DumpRenderTree iOS fails to link: missing rowHeaders and columnHeaders in AccessibilityUIElement
https://bugs.webkit.org/show_bug.cgi?id=128004

Reviewed by Chris Fleizach.

* DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::columnHeaders): Stub added.
(AccessibilityUIElement::rowHeaders): Stub added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@163185 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shapes] Image valued shape can fail
https://bugs.webkit.org/show_bug.cgi?id=127588

Reviewed by Dean Jackson.

Source/WebCore:

Correct the handling of image valued shapes that extend into or beyond the
margin box. This can happen when object-fit causes one dimension of the shape
to be greater than the corresponding margin box dimension.

Made some simplifications in RasterShapeIntervals::computeShapeMarginIntervals()
by making the shapeMargin parameter an int, removing some unnecessary variables.

Revised the RasterShapeIntervals class. It's now a just a list of size() interval-lists,
with valid indices: -offset() <= y < size() - offset(), or minY() to maxY(). If margin-top
and shape-margin are specified, then offset() is the larger of shape-margin and margin-top.
Similarly size() is the vertical size of the margin-box or the content-box expanded by
shape-margin, whichever is larger. See computeShapeMarginIntervals().

Tests: fast/shapes/shape-outside-floats/shape-outside-image-fit-005.html
       fast/shapes/shape-outside-floats/shape-outside-image-fit-006.html

* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
(WebCore::RasterShape::marginIntervals):
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::RasterShapeIntervals):
(WebCore::RasterShapeIntervals::offset):
(WebCore::RasterShapeIntervals::minY):
(WebCore::RasterShapeIntervals::maxY):
(WebCore::RasterShapeIntervals::intervalsAt):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:

(WebCore::getShapeImageReplacedRect):
The rect that the image will be drawn into. This rect can imply image
scaling and translation.

(WebCore::getShapeImageMarginRect):
The margin rect relative too the (0,0 origin) shape content rect.

(WebCore::ShapeInfo<RenderType>::computedShape):

LayoutTests:

Check shape-outside layout for image valued shapes where object-fit causes
the image to extend into or beyond the image element's margin box.

* fast/shapes/shape-outside-floats/shape-outside-image-fit-005-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-image-fit-005.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-image-fit-006-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-image-fit-006.html: Added.


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