[iOS] WebKitTestRunner: Tests fail due to incorrect web view size
authorjhoneycutt@apple.com <jhoneycutt@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Jan 2015 23:47:43 +0000 (23:47 +0000)
committerjhoneycutt@apple.com <jhoneycutt@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 21 Jan 2015 23:47:43 +0000 (23:47 +0000)
commit4190006b613c1c5c2dfe592428426fbc30af5d3b
tree7634fa06bebf5cba562f95826e8577325ee64f7f
parent894caf7f009d763306feeeaa85da128831cd91cc
[iOS] WebKitTestRunner: Tests fail due to incorrect web view size

<https://bugs.webkit.org/show_bug.cgi?id=139736>
<rdar://problem/19282196>

This starts happening after we fail to reset the test controller to
consistent values in TestInvocation::invoke(). When we terminate the
web process and relaunch it, the new WebPage object created in the web
process is using the default ViewportConfiguration with dimensions of
1024x768.

The PageClient on iOS currently notifies the WKWebView and the
WKContentView when the web process is relaunched. This patch extends
that to also notify the WKView.

Reviewed by Benjamin Poulain.

* UIProcess/API/Cocoa/WKViewPrivate.h:
Declare -_didRelaunchProcess.

* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView _commonInitializationWithContextRef:pageGroupRef:relatedToPage:]):
Call the new method that accepts a WKView.
(-[WKView _didRelaunchProcess]):
Call -_frameOrBoundsChanged to update the web process's size to the
size of the WKView.

* UIProcess/ios/PageClientImplIOS.h:
Add a constructor that takes a WKView, and add a member var to hold it.

* UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::PageClientImpl):
Implement the constructor that takes a WKView.
(WebKit::PageClientImpl::didRelaunchProcess):
Tell the WKView that the web process relaunched.

* UIProcess/ios/WKContentView.h:
Declare an initializer that takes a WKView.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
Split out from -[WKContentView initWithFrame:processPool:configuration:webView:].
(-[WKContentView initWithFrame:processPool:configuration:webView:]):
Perform some initialization, including creating the PageClient, and
call the common initializer.
(-[WKContentView initWithFrame:processPool:configuration:wkView:]):
Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@178870 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h
Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm
Source/WebKit2/UIProcess/ios/PageClientImplIOS.h
Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm
Source/WebKit2/UIProcess/ios/WKContentView.h
Source/WebKit2/UIProcess/ios/WKContentView.mm