Add a mechanism to notify the UIProcess when an editing command is done executing.
https://bugs.webkit.org/show_bug.cgi?id=134807

Reviewed by Tim Horton.

Some editing commands have an effect on some parts of the system that
run inside the UIProcess. A good example are the cursor movement commands
that require an update of the autocorrection/autosuggestion machinery.
This patch adds a way to reliably know when the command has been executed
in the WebProcess. A previous attempt at solving this problem was added in
r170858 and was partially reverted in r170948.
The change also removes the selectionWillChange notification added in r170858.

* UIProcess/PageClient.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::editorStateChanged):
* UIProcess/WebPageProxy.h:
* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::selectionWillChange): Deleted.
* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView executeEditCommandWithCallback:]):
(-[WKContentView _moveUp:withHistory:]):
(-[WKContentView _moveDown:withHistory:]):
(-[WKContentView _moveLeft:withHistory:]):
(-[WKContentView _moveRight:withHistory:]):
(-[WKContentView _moveToStartOfWord:withHistory:]):
(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToStartOfLine:withHistory:]):
(-[WKContentView _moveToStartOfDocument:withHistory:]):
(-[WKContentView _moveToEndOfWord:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfLine:withHistory:]):
(-[WKContentView _moveToEndOfDocument:withHistory:]):
(-[WKContentView _selectionWillChange]): Deleted.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::notifySelectionWillChange): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::executeEditCommandWithCallback):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170981 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (r170935): WKWebView is always transparent until the first layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=134818
<rdar://problem/17632468>

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(scrollViewBackgroundColor):
r170935 made it so that we would initialize the scroll view background color to an
invalid color until the first layer tree commit. We should go with white instead.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170982 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Some QuickLook documents are not displayed as previews
https://bugs.webkit.org/show_bug.cgi?id=134788

Reviewed by Pratik Solanki.

ResourceRequest::isMainResourceRequest() is not reliable (e.g. ResourceRequests reconstituted from an
NSURLRequest have no way to set this bit properly) and should probably be removed. Instead of using
isMainResourceRequest() to check if a QuickLookHandle should be created when the Network Process is in use,
just check if the current ResourceLoader is the same as the DocumentLoader's ResourceLoader.

No new tests. QuickLook is not testable from WebKit.

* platform/network/ios/QuickLook.mm:
(WebCore::QuickLookHandle::create):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170984 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Update the ChangeLog per Pratik's review comments

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170985 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS] Pasting rich content does not perform a two-step paste
https://bugs.webkit.org/show_bug.cgi?id=134795

Reviewed by Benjamin Poulain.

Source/WebCore:
UIKit requires writing something (anything!) to a particular pasteboard
during copy in order to flag the content as rich. When a paste occurs,
UIKit will read this flag and perform a two-step paste.

Test: platform/ios-sim/editing/pasteboard/two-step-paste.html

* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write):

LayoutTests:
Copy and paste some text, and make sure that the two step paste occurred.
The mechanism for detecting this is whether or not styles have changed appropriately.

* platform/ios-sim/editing/pasteboard/two-step-paste-expected.txt: Added.
* platform/ios-sim/editing/pasteboard/two-step-paste.html: Added.

Tools:
Two-step paste requires setting InputViewObeysDOMFocus on the UIWebBrowserView.

* DumpRenderTree/mac/DumpRenderTree.mm:
(createWebViewAndOffscreenWindow):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@170986 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[iOS WK2] Move WKInspectorHighlightView to its own file
https://bugs.webkit.org/show_bug.cgi?id=134819

Reviewed by Joseph Pecoraro.

WKInspectorHighlightView brought a lot of path/quad-related code into WKContentView.mm,
so move it into its own file.

* UIProcess/WKInspectorHighlightView.h: Added.
* UIProcess/WKInspectorHighlightView.mm: Added.
(-[WKInspectorHighlightView dealloc]):
(-[WKInspectorHighlightView _removeAllLayers]):
(-[WKInspectorHighlightView _createLayers:]):
(findIntersectionOnLineBetweenPoints):
(quadIntersection):
(layerPathWithHole):
(layerPath):
(-[WKInspectorHighlightView _layoutForNodeHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):
* UIProcess/ios/WKContentView.mm:
(-[WKInspectorHighlightView initWithFrame:]): Deleted.
(-[WKInspectorHighlightView dealloc]): Deleted.
(-[WKInspectorHighlightView _removeAllLayers]): Deleted.
(-[WKInspectorHighlightView _createLayers:]): Deleted.
(findIntersectionOnLineBetweenPoints): Deleted.
(quadIntersection): Deleted.
(layerPathWithHole): Deleted.
(layerPath): Deleted.
(-[WKInspectorHighlightView _layoutForNodeHighlight:]): Deleted.
(-[WKInspectorHighlightView _layoutForRectsHighlight:]): Deleted.
(-[WKInspectorHighlightView update:]): Deleted.
* WebKit2.xcodeproj/project.pbxproj:

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