Start to use std::unique_ptr for DragImageLoader
https://bugs.webkit.org/show_bug.cgi?id=129078

Reviewed by Ryosuke Niwa.

As a step to use std::unique_ptr, this patch replace uses of OwnPtr and PassOwnPtr
in the DragImageLoader class with std::unique_ptr. Besides DragImageLoader is set to
non-copyable class.

* dom/Clipboard.cpp:
(WebCore::Clipboard::setDragImage):
* dom/Clipboard.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164465 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Start fixing the view states driven by the WKScrollView
https://bugs.webkit.org/show_bug.cgi?id=129140

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-20
Reviewed by Tim Horton and Simon Fraser.

Source/WebCore: 

* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::scaledExposedRect):
That comment was more confusing than helping. FrameView-relative coordinates should not need
scaling.

Source/WebKit2: 

WKScrollView creates a "window" over WKContentView with an area that is exposed,
an area that is unobcured and with a certain scale.

Instead of having 3 loosely related paths for updating WKContentView
when the content "window" change, everything is consolidated behind the
single API -[WKContentView didUpdateVisibleRect:unobscuredRect:scale:].

This patch only fixes the content updates from the UI process side to keep things simple.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
(-[WKWebView scrollViewDidEndDecelerating:]):
(-[WKWebView scrollViewDidScrollToTop:]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _updateContentWindow]):
(-[WKWebView _setObscuredInsets:]):
* UIProcess/API/ios/WKContentView.h:
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView didUpdateVisibleRect:unobscuredRect:scale:]):
(-[WKContentView _updateFixedPositionRect]):
(-[WKContentView didFinishScrolling]):
(-[WKContentView didZoomToScale:]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView contentView:didCommitLayerTree:]):
(-[WKView _didFinishScrolling]):
(-[WKView scrollViewDidEndDragging:willDecelerate:]):
(-[WKView scrollViewDidEndDecelerating:]):
(-[WKView scrollViewDidScrollToTop:]):
(-[WKView scrollViewDidScroll:]):
(-[WKView scrollViewDidEndZooming:withView:atScale:]):
Scrolling is modified to take into account the view position and the obcured content.
Instead of driving the scrolling position from the UIScrollView delegate callbacks,
we use changes in unobscured rect to find changes in "content visible scroll position".

WebPageProxy::didFinishScrolling() is removed. All the scrollOffset updates now go through
the ScrollingCoordinator.

(-[WKView _frameOrBoundsChanged]):
(-[WKView _updateContentWindow]):
(-[WKView _setObscuredInsets:]):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::unobscuredContentRect):
(WebKit::WebPageProxy::setUnobscuredContentRect):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164466 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Assert / crash trying to draw empty checked input
https://bugs.webkit.org/show_bug.cgi?id=129138

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-02-20
Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/forms/checkbox-empty-size.html

* rendering/RenderThemeIOS.mm:
(WebCore::shortened):
Avoid a divide by 0, but checking for the condition upfront.

LayoutTests:

* fast/forms/checkbox-empty-size-expected.txt: Added.
* fast/forms/checkbox-empty-size.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused chromium stuff in Extensions3D
https://bugs.webkit.org/show_bug.cgi?id=129086

Reviewed by Anders Carlsson.

Remove GL_CHROMIUM_copy_texture and GL_CHROMIUM_flipy interfaces since they are used nowhere.

No new tests since no functionality changed.

* platform/graphics/Extensions3D.h:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
* platform/graphics/opengl/Extensions3DOpenGL.h:
* platform/graphics/opengl/Extensions3DOpenGLES.cpp:
* platform/graphics/opengl/Extensions3DOpenGLES.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WKInteractionView always blocks the main thread when sending touch events
https://bugs.webkit.org/show_bug.cgi?id=129059

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-20
Reviewed by Enrica Casucci.

Add the asynchronous dispatching to WebKit2.

* Shared/NativeWebTouchEvent.h:
(WebKit::NativeWebTouchEvent::uniqueId):
* Shared/ios/NativeWebTouchEventIOS.mm:
(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::doneWithTouchEvent):
* UIProcess/API/ios/WKContentView.h:
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView willStartUserTriggeredScroll]):
(-[WKContentView willStartUserTriggeredZoom]):
(-[WKContentView _webTouchEvent:WebKit::preventsNativeGestures:]):
* UIProcess/API/ios/WKContentViewInternal.h:
* UIProcess/API/ios/WKInteractionView.h:
* UIProcess/API/ios/WKInteractionView.mm:
(-[WKInteractionView _webTouchEventsRecognized:]):
(-[WKInteractionView _webTouchEvent:WebKit::preventsNativeGestures:]):
(-[WKInteractionView _willStartUserTriggeredScrollingOrZooming]):
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView scrollViewWillBeginDragging:]):
* WebKit2.xcodeproj/project.pbxproj:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164469 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a missing piece of r164469

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-02-20

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillBeginDragging:]):
I forgot to duplicate the change from WKViewIOS in r164469.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@164470 268f45cc-cd09-0410-ab3c-d52691b4dbfc
RenderBox::updateShapeOutsideInfoAfterStyleChange shows up on profiles
https://bugs.webkit.org/show_bug.cgi?id=129075

Reviewed by Dean Jackson.

updateShapeOutsideInfoAfterStyleChange() showed up on profiles in content
with no shapes. Avoid calling this if no style has shapeOutside().

* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):


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