| 2018-04-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove unused fixed layout functionality |
| https://bugs.webkit.org/show_bug.cgi?id=184908 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Ports using the CoordinatedGraphics subsystem don't expose fixed layout |
| support. As such, we're able to remove a lot of unused code and |
| unnecessary USE(COORDINATED_GRAPHICS) special cases in generic sections |
| in both WebCore and WebKit. |
| |
| Remove USE(COORDINATED_GRAPHICS) special-casing from the |
| WebPage::setUseFixedLayout() method. This is not possible to enable for |
| the GTK+ and WPE ports that use the CoordinatedGraphics subsytem via |
| API. Removing all this unlocks removing considerable amounts of dead |
| code and complexities in CoordinatedGraphics. |
| |
| WebChromeClient::delegatedScrollRequested() method is removed, along |
| with the WebPage::pageDidRequestScroll() method that was only called |
| from there. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::delegatedScrollRequested): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setUseFixedLayout): |
| (WebKit::WebPage::pageDidRequestScroll): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-04-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Avoid painting backing stores for zero-opacity layers |
| https://bugs.webkit.org/show_bug.cgi?id=184143 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::layerShouldHaveBackingStore): |
| Mirror CoordinatedGraphicsLayer's backing store requirements. |
| |
| 2018-04-23 Daniel Bates <dabates@apple.com> |
| |
| Implement Same-Site cookies |
| https://bugs.webkit.org/show_bug.cgi?id=159464 |
| <rdar://problem/27196358> |
| |
| Reviewed by Brent Fulgham. |
| |
| Pass the Same-Site info through the WebKit abstractions. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| (WebKit::logBlockedCookieInformation): |
| (logCookieInformationInternal): |
| (NetworkResourceLoader::logCookieInformation): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::constructRevalidationRequest): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourceInfo::encode const): |
| (WebKit::NetworkCache::SubresourceInfo::decode): |
| (WebKit::NetworkCache::SubresourceInfo::SubresourceInfo): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| (WebKit::NetworkCache::SubresourceInfo::isSameSite const): |
| (WebKit::NetworkCache::SubresourceInfo::isTopSite const): Returns false; subresources do not represent |
| a top-level navigation. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest): |
| (WebKit::updateTaskWithFirstPartyForSameSiteCookies): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::download): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::cookiesForDOM): |
| (WebKit::WebPlatformStrategies::setCookiesFromDOM): |
| (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): |
| (WebKit::WebPlatformStrategies::getRawCookies): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-04-23 Youenn Fablet <youenn@apple.com> |
| |
| Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184763 |
| |
| Reviewed by Chris Dumez. |
| |
| Set all required NetworkResourceLoadParameters for asynchronous loads. |
| This includes preflight policy, CSP response headers, SecurityOrigin and content blockers identifier. |
| |
| Update NetworkLoadChecker to handle preflight policy. |
| This is not needed right now since sync XHR and ping loads are using the default ConsiderPreflight policy. |
| But this will be needed for XHR/fetch/EventSource loads. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| (WebKit::NetworkLoadChecker::checkCORSRequest): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::create): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| |
| 2018-04-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] REGRESSION(230860) Unable to change time input values using UI |
| https://bugs.webkit.org/show_bug.cgi?id=184901 |
| <rdar://problem/39664797> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by falling back to setting the value of the focused input element in the case where the selection |
| is not editable. Also adds plumbing to make time pickers testable in extra zoom mode. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView setTimePickerValueToHour:minute:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setTimePickerValueToHour:minute:]): |
| |
| Add plumbing to make it possible for WebKitTestRunner to simulate picking a time from the given hours and |
| minutes. This is currently only implemented for extra zoom mode, but may be implemented for UIKit's time picker |
| as well in the future by adjusting -[WKContentView setTimePickerValueToHour:minute:]. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTextAsync): |
| |
| 2018-04-23 Saam Barati <sbarati@apple.com> |
| |
| Keep around a pre-warmed process when doing process swap on navigation |
| https://bugs.webkit.org/show_bug.cgi?id=184765 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This patch makes it so that WebProcessPool prewarms a process when process |
| swap on navigation is turned on. When we do a process swap on navigation, |
| we first try to grab a prewarmed process before creating a new one. |
| |
| We try to be smart about when to create these processes. The initial heuristic |
| that this patch chooses is when we reach the DidFirstVisuallyNonEmptyLayout |
| layout milestone. We're going to try to improve on this heuristic in: |
| https://bugs.webkit.org/show_bug.cgi?id=184899 |
| |
| This is a 40% progression on PLT with process swap on navigation turned on. |
| |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::notifyProcessPoolToPrewarm): |
| (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createNewWebProcess): |
| (WebKit::WebProcessPool::tryTakePrewarmedProcess): |
| (WebKit::WebProcessPool::warmInitialProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| (WebKit::WebProcessPool::processForNavigation): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::create): |
| (WebKit::WebProcessProxy::WebProcessProxy): |
| (WebKit::m_isInPrewarmedPool): |
| (WebKit::m_userMediaCaptureManagerProxy): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::isInPrewarmedPool const): |
| (WebKit::WebProcessProxy::setIsInPrewarmedPool): |
| |
| 2018-04-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Remove WlUniquePtr<wl_display> footgun |
| https://bugs.webkit.org/show_bug.cgi?id=184405 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Switch to std::unique_ptr. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::WaylandCompositor): |
| * UIProcess/gtk/WaylandCompositor.h: |
| (WebKit::WaylandCompositor::DisplayDeleter::operator()): |
| |
| 2018-04-23 Daniel Bates <dabates@apple.com> |
| |
| Attempt to fix the Apple Internal build following r230921 |
| (https://bugs.webkit.org/show_bug.cgi?id=159464) |
| |
| Forward declare some SPI. Add availability guard. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| |
| 2018-04-23 Zalan Bujtas <zalan@apple.com> |
| |
| [LayoutFormattingContext] Initial commit. |
| https://bugs.webkit.org/show_bug.cgi?id=184896 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-04-23 Daniel Bates <dabates@apple.com> |
| |
| Implement Same-Site cookies |
| https://bugs.webkit.org/show_bug.cgi?id=159464 |
| <rdar://problem/27196358> |
| |
| Reviewed by Brent Fulgham. |
| |
| Pass the Same-Site info through the WebKit abstractions. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue): |
| (WebKit::NetworkConnectionToWebProcess::getRawCookies): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| (WebKit::logBlockedCookieInformation): |
| (logCookieInformationInternal): |
| (NetworkResourceLoader::logCookieInformation): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::constructRevalidationRequest): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourceInfo::encode const): |
| (WebKit::NetworkCache::SubresourceInfo::decode): |
| (WebKit::NetworkCache::SubresourceInfo::SubresourceInfo): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| (WebKit::NetworkCache::SubresourceInfo::isSameSite const): |
| (WebKit::NetworkCache::SubresourceInfo::isTopSite const): Returns false; subresources do not represent |
| a top-level navigation. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest): |
| (WebKit::updateTaskWithFirstPartyForSameSiteCookies): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::download): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::cookiesForDOM): |
| (WebKit::WebPlatformStrategies::setCookiesFromDOM): |
| (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): |
| (WebKit::WebPlatformStrategies::getRawCookies): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-04-23 Chris Dumez <cdumez@apple.com> |
| |
| WebProcessProxy frequently re-takes a process assertion for the network process even though is already has one |
| https://bugs.webkit.org/show_bug.cgi?id=184889 |
| <rdar://problem/38151530> |
| |
| Reviewed by Brady Eidson. |
| |
| In ProcessThrottler::updateAssertionNow(), if the new process assertion state is the same |
| as the existing one, then return early. Otherwise, we would end up calling WebProcessProxy::didSetAssertionState() |
| for the same assertion state, which would cause duplicate logging but also some unnecessary work. |
| |
| * UIProcess/ProcessThrottler.cpp: |
| (WebKit::ProcessThrottler::updateAssertionNow): |
| |
| 2018-04-23 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove unused trajectory cruft in CoordinatedLayerTreeHost, CoordinatedGraphicsLayer |
| https://bugs.webkit.org/show_bug.cgi?id=184881 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The CompositingCoordinator::setVisibleContentsRect() method is always |
| called with a (0,0) FloatPoint value as the trajectory vector parameter, |
| which is already the default value in TiledBackingStore where this ends |
| up. Removing this call chain also enables removing some unnecessary and |
| odd code in the CoordinatedGraphicsLayer class. |
| |
| This doesn't yet touch the trajectory logic in the TiledBackingStore |
| class since it's not yet a given this won't be used in the future. But |
| if that will be necessary, hope is to not use it this way. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::setVisibleContentsRect): |
| (WebKit::CompositingCoordinator::mainContentsLayer): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect): |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| (WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewport): |
| |
| 2018-04-23 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][WK2] REGRESSION(r230834) 'getpid': identifier not found |
| https://bugs.webkit.org/show_bug.cgi?id=184877 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::addItem): Use WTF::getCurrentProcessID() instead of getpid(). |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::goToBackForwardItem): Ditto. |
| |
| 2018-04-23 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Drop RefCounted inheritance off of TextureMapperBackingStore |
| https://bugs.webkit.org/show_bug.cgi?id=184810 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| CoordinatedBackingStore should inherit directly from RefCounted<> now |
| that TextureMapperBackingStore doesn't anymore. |
| |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.h: |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded): |
| |
| 2018-04-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordinatedGraphics] Unused contentsSize, coveredRect attributes in CoordinatedGraphicsState |
| https://bugs.webkit.org/show_bug.cgi?id=184811 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): Stop setting |
| the removed contentsSize and coveredRect attributes. These were only |
| ever set to the appropriate values, but were then never used anywhere. |
| |
| 2018-04-22 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: WebInspectorProxy releases WKWebInspectorProxyObjCAdapter without removing corresponding observer |
| https://bugs.webkit.org/show_bug.cgi?id=184865 |
| <rdar://problem/37764960> |
| |
| Reviewed by Brian Burg. |
| |
| Replace the early return removed in https://bugs.webkit.org/show_bug.cgi?id=177661, |
| so that WKWebInspectorProxyObjCAdapter and the view controller can be reused |
| when reopening the Inspector while the WebView is still alive. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformCreateFrontendPage): |
| |
| 2018-04-22 Paul Knight <pknight@apple.com> |
| |
| Add -[WKInputDelegate _webView:decidePolicyForFocusedElement:] so clients can request default focusing behavior |
| https://bugs.webkit.org/show_bug.cgi?id=184844 |
| |
| Reviewed by Dan Bernstein. |
| |
| If a client doesn't implement -[_WKInputDelegate _webView:focusShouldStartInputSession:] the default |
| focus behavior only brings up the keyboard if it's already onscreen, the interaction is user driven, |
| and other factors that even depend on what feature flags are enabled. |
| |
| If a client implements _webView:focusShouldStartInputSession:, they don't have a good way to specifiy |
| they'd like to fall back to the default behavior. This makes it difficult for a client to use the |
| default in most cases, but sometimes allow programmatic focus from the page, for example. |
| |
| Add a new delegate method -_webView:decidePolicyForFocusedElement: that returns a new enum type |
| _WKFocusStartsInputSessionPolicy. Clients can return _WKFocusStartsInputSessionPolicyAuto to request |
| the default behavior, or _WKFocusStartsInputSessionPolicyAllow / Disallow to directly control whether |
| the keyboard appears to assist the focused node. |
| |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| 2018-04-21 Jeremy Jones <jeremyj@apple.com> |
| |
| Disable backward and forward navigation swipes while in fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=184656 |
| rdar://problem/36057535 |
| |
| Reviewed by Tim Horton. |
| |
| Disable navigation swipes while in fullscreen. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::canSwipeInDirection const): |
| |
| 2018-04-21 Youenn Fablet <youenn@apple.com> |
| |
| Activate NetworkLoadChecker for media loads |
| https://bugs.webkit.org/show_bug.cgi?id=184841 |
| |
| Reviewed by Eric Carlson. |
| |
| Instantiate a NetworkLoadChecker for NetworkResourceLoader for audio/video loads. |
| |
| Move CORS checks for response after handling of 304 checks. |
| For 304 checks, we need to do the CORS checks on the validated cached response, not the 304 received response. |
| |
| Updated ResourceError argument coder to explicitly pass the error type |
| as some errors created by NetworkLoadChecker would otherwise be received as General errors by WebProcess. |
| Updated platform data encoding of ResourceError accordingly. |
| |
| All changes are covered by regular media loading layout tests. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::shouldUseNetworkLoadChecker): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceError>::encode): |
| (IPC::ArgumentCoder<ResourceError>::decode): |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::ArgumentCoder<ResourceError>::encodePlatformData): |
| (IPC::ArgumentCoder<ResourceError>::decodePlatformData): |
| We need to set the type after decoding the NSError as ResourceError tries to guess the type from NSError data. |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| (IPC::ArgumentCoder<ResourceError>::encodePlatformData): |
| (IPC::ArgumentCoder<ResourceError>::decodePlatformData): |
| |
| 2018-04-20 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] Do TLS error checking on GTlsConnection::accept-certificate |
| https://bugs.webkit.org/show_bug.cgi?id=184480 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Connect to GTlsConnection::accept-certificate signal instead of SoupMessage::notify::tls-errors to perform the |
| TLS errors check. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::createRequest): Do not connect to SoupMessage::notify::tls-errors. |
| (WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificateCallback): Call tlsConnectionAcceptCertificate() is |
| the task is still ongoing. |
| (WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate): Check TLS errors here. |
| (WebKit::NetworkDataTaskSoup::networkEventCallback): Pass the stream to networkEvent. |
| (WebKit::NetworkDataTaskSoup::networkEvent): Connect to GTlsConnection::accept-certificate. |
| * NetworkProcess/soup/NetworkDataTaskSoup.h: |
| |
| 2018-04-20 Timothy Hatcher <timothy@apple.com> |
| |
| NULL dereference crash sometimes under [super initWithCoder:] in WebView |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184851 |
| rdar://problem/39611236 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView effectiveAppearanceDidChange]): |
| Added a null check and call the code later in initialization. |
| |
| 2018-04-20 Tim Horton <timothy_horton@apple.com> |
| |
| Adjust geolocation feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=184856 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-04-20 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix GTK build after r230867. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| (webkit_dom_dom_window_get_self): |
| (webkit_dom_dom_window_get_window): |
| (webkit_dom_dom_window_get_frames): |
| (webkit_dom_dom_window_get_opener): |
| (webkit_dom_dom_window_get_parent): |
| (webkit_dom_dom_window_get_top): |
| |
| 2018-04-20 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r230873. |
| https://bugs.webkit.org/show_bug.cgi?id=184857 |
| |
| Broke the iOS build (Requested by cdumez on #webkit). |
| |
| Reverted changeset: |
| |
| "Disable backward and forward navigation swipes while in |
| fullscreen." |
| https://bugs.webkit.org/show_bug.cgi?id=184656 |
| https://trac.webkit.org/changeset/230873 |
| |
| 2018-04-20 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r229828): web view doesn’t update or respond to resizing until client calls policy decision handler |
| https://bugs.webkit.org/show_bug.cgi?id=184210 |
| <rdar://problem/39072354> |
| |
| Reviewed by Wenson Hsieh. |
| |
| r229828 tried to have some API tests happy on iOS by freezing the layer tree |
| during the navigation policy decision. However, this is observable by the client |
| application and a regression from when the policy delegate was synchronous. |
| |
| To address the issue, this patch reverts r229828 and instead updates the iOS |
| API tests to wait for the next presentation update after navigating |
| before interacting with the view. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| (WebKit::WebFrameLoaderClient::cancelPolicyCheck): |
| (WebKit::WebFrameLoaderClient::provisionalLoadStarted): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-04-20 Brent Fulgham <bfulgham@apple.com> |
| |
| Limit cookie header access to Network process |
| https://bugs.webkit.org/show_bug.cgi?id=184764 |
| <rdar://problem/36785285> |
| |
| Reviewed by Youenn Fablet. |
| |
| Revise the handling of cookie request headers so that we don't interact with them in the |
| WebContent process. They are only needed for interaction with the server and the network |
| process, so we should limit their scope to just the Network process. |
| |
| Instead, we should handle a token that represents the cookie headers in the WebContent |
| process, which can be converted to the relevant cookie data in the network process when |
| needed. |
| |
| * NetworkProcess/NetworkSocketStream.cpp: |
| (WebKit::NetworkSocketStream::sendHandshake): |
| * NetworkProcess/NetworkSocketStream.h: |
| * NetworkProcess/NetworkSocketStream.messages.in: |
| * WebProcess/Network/WebSocketStream.cpp: |
| (WebKit::WebSocketStream::networkProcessCrashed): |
| (WebKit::WebSocketStream::platformSendHandshake): |
| (WebKit::WebSocketStream::didSendHandshake): |
| * WebProcess/Network/WebSocketStream.h: |
| * WebProcess/Network/WebSocketStream.messages.in: |
| |
| 2018-04-20 Jeremy Jones <jeremyj@apple.com> |
| |
| Disable backward and forward navigation swipes while in fullscreen. |
| https://bugs.webkit.org/show_bug.cgi?id=184656 |
| rdar://problem/36057535 |
| |
| Reviewed by Tim Horton. |
| |
| Disable navigation swipes while in fullscreen. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::canSwipeInDirection const): |
| |
| 2018-04-20 Jeremy Jones <jeremyj@apple.com> |
| |
| Element fullscreen, expose WKWebView _fullScreenPlaceholderView as iOS SPI |
| https://bugs.webkit.org/show_bug.cgi?id=184826 |
| rdar://problem/39600825 |
| |
| Reviewed by Tim Horton. |
| |
| Add _fullScreenPlaceholderView for iOS similar to the one for Mac. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _fullScreenPlaceholderView]): |
| (-[WKWebView closeFullScreenWindowController]): |
| (-[WKWebView fullScreenPlaceholderView]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController webViewPlaceholder]): |
| |
| 2018-04-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Injected bundle form client should be notified when editing text fields |
| https://bugs.webkit.org/show_bug.cgi?id=184822 |
| <rdar://problem/38807319> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by making a couple of tweaks: (1) don't use a separate codepath for inserting text in text inputs, |
| and (2) force a user typing gesture when inserting text using this codepath (i.e. WKTextInputListViewController). |
| Also adds plumbing to enable testing text entry with WKTextInputListViewController in extra zoom mode. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _simulateTextEntered:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Introduce testing SPI to simulate text entry. Additionally, add a missing availability annotation around testing |
| SPI added in 2017 to help test drag and drop for iOS 11. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _simulateTextEntered:]): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTextAsync): |
| |
| 2018-04-20 Jeremy Jones <jeremyj@apple.com> |
| |
| EnterFullscreen must update the minimum and maximum layout sizes. |
| https://bugs.webkit.org/show_bug.cgi?id=184828 |
| rdar://problem/38435829 |
| |
| Reviewed by Jon Lee. |
| |
| Without this, the WKWebView won't layout to the full size in fullscreen mode. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController enterFullScreen]): |
| |
| 2018-04-18 Jer Noble <jer.noble@apple.com> |
| |
| Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds |
| https://bugs.webkit.org/show_bug.cgi?id=184762 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/BaseTarget.xcconfig: |
| |
| 2018-04-20 Youenn Fablet <youenn@apple.com> |
| |
| Refactor NetworkResourceLoader to check for m_networkLoadChecker presence before using it |
| https://bugs.webkit.org/show_bug.cgi?id=184755 |
| |
| Reviewed by Chris Dumez. |
| |
| Make NetworkResourceLoader always use m_networkLoadChecker if there is one. |
| This is only used now for synchronous loads but will be used in the future for asynchronous loads as well. |
| |
| Since we call didFail asynchronously to make sync/async handling more consistent, |
| We need to keep track of whether we will do clean-up twice. |
| A boolean is added for that purpose in NetworkResourceLoader. |
| |
| There is a small change of behavior in the way we return an error. |
| Instead of returning a platformBadResponseError, we are now returning the error as computed by NetworkLoadChecker. |
| This allows getting some more error logging in the JS console. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-04-20 Timothy Hatcher <timothy@apple.com> |
| |
| Include missing files in WKContentViewInteraction.{mm,h} |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184832 |
| rdar://problem/35377120 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Some WebDriver files were missing and should be included. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| |
| 2018-04-20 Youenn Fablet <youenn@apple.com> |
| |
| WebPage sometimes incorrectly rules out PDF as a mime type that can be showed |
| https://bugs.webkit.org/show_bug.cgi?id=184369 |
| |
| Reviewed by Chris Dumez. |
| |
| Use API to check for plugin availability for response at navigation time. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::canShowResponse const): |
| (WebKit::WebPage::canShowMIMEType const): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-04-20 Daniel Bates <dabates@apple.com> |
| |
| Remove Strong Password decoration when text field type changes |
| https://bugs.webkit.org/show_bug.cgi?id=184795 |
| <rdar://problem/38325108> |
| |
| Reviewed by Antti Koivisto. |
| |
| Add injected bundle API and WebKit UI delegate SPI to notify the embedding client when the |
| Strong Password appearance of an HTML input element is resigned. |
| |
| We add C SPI for Safari on Mac. |
| |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::didResignInputElementStrongPasswordAppearance): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageUIClient): |
| * UIProcess/API/C/WKPageUIClient.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didResignInputElementStrongPasswordAppearance): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: |
| (API::InjectedBundle::PageUIClient::didResignInputElementStrongPasswordAppearance): |
| * WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h: |
| * WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp: |
| (WebKit::InjectedBundlePageUIClient::didResignInputElementStrongPasswordAppearance): |
| * WebProcess/InjectedBundle/InjectedBundlePageUIClient.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::inputElementDidResignStrongPasswordAppearance): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-04-20 Megan Gardner <megan_gardner@apple.com> |
| |
| Fixes for failing tests associated with switching Text Selection Assistants |
| https://bugs.webkit.org/show_bug.cgi?id=184806 |
| <rdar://problem/39367905> |
| |
| Reviewed by Beth Dakin and Wenson Hsieh. |
| |
| The major fix is the disabling the double tap noneditable text selection gesture. |
| The other fixes are small tweaks that shouldn't even be run into with the fix to |
| the double tap gesture, but they are incorrect, so I am taking the opportunity to |
| fix them now, in case we run into them again. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| We should not be allowing a double tap text gestures in non-editable web content. |
| We didn't have one with the old assistant. Fortunately, this is easily disabled. |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| We should not allow the lookup action if we do not actually have a selection. |
| It is meaningless without one. |
| (-[WKContentView selectedTextRange]): |
| We should not return a selection to UIKit if all we have is caret selection |
| in non-editable content. We have this for selections on Mac, but UIKit does |
| not know how to properly handle this, and will have incorrect behavior if we |
| return a valid selection. |
| |
| 2018-04-20 Timothy Hatcher <timothy@apple.com> |
| |
| WebEvent fails to convert synthetic WebMouseEvent for automation |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184824 |
| rdar://problem/35377120 |
| |
| Reviewed by Brian Burg. |
| |
| Add WebEvent conversions that existed in PlatformEventFactoryIOS for legacy WebKit, |
| but never got added in WebIOSEventFactory and NativeWebMouseEvent for modern WebKit. |
| This affected WebDriver, and some events not being deliverd to the page. |
| |
| * Shared/NativeWebMouseEvent.h: |
| (WebKit::NativeWebMouseEvent::nativeEvent const): |
| * Shared/ios/NativeWebMouseEventIOS.mm: Added. |
| (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): |
| * Shared/ios/WebIOSEventFactory.h: |
| * Shared/ios/WebIOSEventFactory.mm: |
| (WebIOSEventFactory::createWebMouseEvent): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-20 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix -Wformat warning |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| |
| 2018-04-20 Youenn Fablet <youenn@apple.com> |
| |
| Make PluginData cache its web visible plugins |
| https://bugs.webkit.org/show_bug.cgi?id=184421 |
| |
| Reviewed by Chris Dumez. |
| |
| Rename methods. |
| Pass an URL instead of relying on Page URL as the page URL |
| might not always be the URL we want to check against plugins. |
| In particular when navigation is on-going, we want to check the |
| plugins against the being navigated URL. |
| |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::pluginInfo): |
| (WebKit::WebPluginInfoProvider::webVisiblePluginInfo): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| |
| 2018-04-19 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK+ build after r230830. |
| |
| Add SimulatedInputDispatcher.cpp to the build. |
| |
| * CMakeLists.txt: |
| |
| 2018-04-19 Brady Eidson <beidson@apple.com> |
| |
| Make back forward cache work with process swapping. |
| <rdar://problem/38676604> and https://bugs.webkit.org/show_bug.cgi?id=184793 |
| |
| Reviewed by Chris Dumez. |
| |
| We previously saved old processes in "SuspendedPageProxy" objects. |
| Now we reuse them when going back or forward. |
| |
| * Platform/Logging.h: |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| (WebKit::WebBackForwardListItem::loggingString): |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::suspendedPage const): |
| |
| Teach Navigation objects their source WebBackForwardListItems: |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::loggingString const): |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::create): |
| (API::Navigation::targetItem const): |
| (API::Navigation::fromItem const): |
| (API::Navigation::backForwardListItem): Deleted. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::messageNamesToIgnoreWhileSuspended): |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::webProcessDidClose): |
| (WebKit::SuspendedPageProxy::didReceiveMessage): |
| (WebKit::SuspendedPageProxy::loggingString const): |
| * UIProcess/SuspendedPageProxy.h: |
| (WebKit::SuspendedPageProxy::origin const): |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::WebBackForwardList): |
| (WebKit::WebBackForwardList::~WebBackForwardList): |
| (WebKit::WebBackForwardList::pageClosed): |
| (WebKit::WebBackForwardList::addItem): |
| (WebKit::WebBackForwardList::goToItem): |
| (WebKit::WebBackForwardList::removeAllItems): |
| (WebKit::WebBackForwardList::clear): |
| (WebKit::WebBackForwardList::restoreFromState): |
| (WebKit::WebBackForwardList::filteredItemStates const): |
| (WebKit::WebBackForwardList::itemStates const): |
| (WebKit::WebBackForwardList::loggingString): |
| * UIProcess/WebBackForwardList.h: |
| |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::createLoadRequestNavigation): |
| (WebKit::WebNavigationState::createBackForwardNavigation): |
| * UIProcess/WebNavigationState.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::reattachToWebProcessWithItem): |
| (WebKit::WebPageProxy::loadRequest): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::connectionWillOpen): |
| (WebKit::WebPageProxy::attachToProcessForNavigation): Deleted. |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessLifetimeTracker.cpp: |
| (WebKit::WebProcessLifetimeTracker::webPageEnteringWebProcess): |
| (WebKit::WebProcessLifetimeTracker::connectionWillOpen): Deleted. |
| * UIProcess/WebProcessLifetimeTracker.h: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::registerSuspendedPageProxy): |
| (WebKit::WebProcessPool::unregisterSuspendedPageProxy): |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::suspendWebPageProxy): |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| (WebKit::WebProcessProxy::frameCreated): |
| * UIProcess/WebProcessProxy.h: |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::attachDrawingArea): |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::addItemFromUIProcess): |
| (WebKit::WebBackForwardListProxy::addItem): |
| * WebProcess/WebPage/WebBackForwardListProxy.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::reinitializeWebPage): |
| (WebKit::WebPage::goToBackForwardItem): |
| (WebKit::WebPage::restoreSessionInternal): |
| (WebKit::WebPage::restoreSession): |
| (WebKit::WebPage::updateBackForwardListForReattach): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| (WebKit::TiledCoreAnimationDrawingArea::attachDrawingArea): Force a reattachment of the drawing |
| area from a resumed WebProcess to the UIProcess (to make the page cache work) |
| |
| 2018-04-19 Brian Burg <bburg@apple.com> |
| |
| Web Automation: add support for mouse/keyboard interaction sequences |
| https://bugs.webkit.org/show_bug.cgi?id=184603 |
| <rdar://problem/39421839> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add new protocol methods and WebKit support for implementing the W3C Actions API. |
| This is a generic command for sending low-level mouse, key, and touch events to |
| test page behavior when performing drag-and-drop, gestures, or specific keydown/keyups. |
| |
| To implement this functionality, this patch adds SimulatedInputDispatcher, a class |
| for dispatching input events asynchronously. Similar to the WebDriver specification, |
| this is designed as a keyframing API. Callers set up several "input sources" such |
| as keyboard or mouse, and then specify the states of that input source over time. The |
| dispatcher calculates diffs between the previous and current keyframes and generates |
| the appropriate events that would happen if a user caused the state transition. |
| |
| For example, if a mouse input source's state changes, the dispatcher sends synthetic mousemove, |
| mousedown, or mouseup events depending on the pre- and post-state. This is uninteresting |
| and overcomplicated for simple key and mouse presses, but it's really designed with an |
| eye towards supporting mousemove interpolation and touch event interpolation in later patches. |
| |
| The strategy for dispatching events depends on the input source type; right now, these |
| map directly to the existing platformSimulate{Mouse, Keyboard}Interaction methods. In |
| the future, the dispatch strategy may be elaborated for interpolated mousemove events. |
| |
| This patch depends on support added in bug 184462. |
| |
| No tests yet. When this command is hooked up to a driver, the code will be exercised by |
| W3C actions test suite, which is fairly complex at this point relative to end-user code. |
| |
| * UIProcess/Automation/Automation.json: Add new types and commands. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.h: Added. |
| (WebKit::SimulatedInputSourceState::emptyState): |
| (WebKit::SimulatedInputSource::create): |
| (WebKit::SimulatedInputSource::SimulatedInputSource): |
| (WebKit::SimulatedInputDispatcher::Client::~Client): |
| Add structs for input source, source state, and keyframe. |
| The dispatcher's client interface is implemented by WebAutomationSession. |
| |
| (WebKit::SimulatedInputDispatcher::create): |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: Added. |
| (WebKit::SimulatedInputKeyFrame::SimulatedInputKeyFrame): |
| (WebKit::SimulatedInputKeyFrame::maximumDuration const): |
| (WebKit::SimulatedInputKeyFrame::keyFrameFromStateOfInputSources): |
| (WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): |
| (WebKit::SimulatedInputDispatcher::SimulatedInputDispatcher): |
| (WebKit::SimulatedInputDispatcher::~SimulatedInputDispatcher): |
| (WebKit::SimulatedInputDispatcher::isActive const): |
| (WebKit::SimulatedInputDispatcher::keyFrameTransitionDurationTimerFired): |
| (WebKit::SimulatedInputDispatcher::isKeyFrameTransitionComplete const): |
| (WebKit::SimulatedInputDispatcher::transitionToNextKeyFrame): |
| (WebKit::SimulatedInputDispatcher::transitionToNextInputSourceState): |
| (WebKit::SimulatedInputDispatcher::transitionBetweenKeyFrames): |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| (WebKit::SimulatedInputDispatcher::run): |
| (WebKit::SimulatedInputDispatcher::cancel): |
| (WebKit::SimulatedInputDispatcher::finishDispatching): |
| The dispatcher handles one interaction at a time. The interaction is described |
| by an array of keyframes, and each keyframe has an array of states. The dispatcher |
| transitions between keyframes by sequentially and asynchronously emitting events |
| that cause each input source state to transition as desired. Keyframe transitions |
| are additionally gated by a "maximum duration" timer. Each step that the dispatcher |
| executes is asynchronous, so the dispatcher keeps most state in members and uses |
| error argument lambdas as completion handlers for various async things. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::WebAutomationSession): |
| (WebKit::WebAutomationSession::inputDispatcherForPage): |
| (WebKit::WebAutomationSession::inputSourceForType const): |
| Add canonical input sources that are used to keep track of state across |
| interaction sequences. |
| |
| (WebKit::WebAutomationSession::isSimulatingUserInteraction const): |
| (WebKit::WebAutomationSession::mouseEventsFlushedForPage): |
| (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): |
| Remove m_simulatingUserInteraction since it can be computed based on other members. |
| |
| (WebKit::WebAutomationSession::willClosePage): |
| If the page is being torn down, stop the dispatcher if needed and cancel any |
| callbacks waiting for mouse/key events to be retired. |
| |
| (WebKit::WebAutomationSession::simulateMouseInteraction): |
| (WebKit::WebAutomationSession::simulateKeyboardInteraction): |
| Add easy-to-use async methods for simulating mouse and key events. These are |
| hooked up to SimulatedInputDispatcher using async completion handlers. |
| |
| (WebKit::protocolMouseButtonToWebMouseEventButton): |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| Adjust some naming. |
| |
| (WebKit::simulatedInputSourceTypeFromProtocolSourceType): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| (WebKit::WebAutomationSession::cancelInteractionSequence): |
| Add command handlers for the new action commands in Automation protocol. |
| |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| (WebKit::mouseButtonToGdkButton): |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeyStroke): Deleted. |
| * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeyStroke): Deleted. |
| Rename the keyboard platform method to match the naming of the mouse platform method. |
| Take advantage of the 'using' alias to make the tedious switches easier to read. |
| |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::platformSimulateMouseInteraction): |
| (WebKit::virtualKeyHasStickyModifier): |
| (WebKit::keyCodeForVirtualKey): |
| (WebKit::eventModifierFlagsForVirtualKey): |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| (WebKit::WebAutomationSession::platformSimulateKeySequence): |
| (WebKit::keyHasStickyModifier): Deleted. |
| (WebKit::WebAutomationSession::platformSimulateKeyStroke): Deleted. |
| Allow the keyboard simulation method to take a virtual key and unichar to better |
| match how this is used by the Perform Actions command and its machinery. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-19 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Remove access to keychain from the WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=184428 |
| <rdar://problem/13150903> |
| |
| Reviewed by Brent Fulgham. |
| |
| Part 1. |
| |
| Remove com.apple.identities from WebContent-iOS.entitlements, which is needed to encode/decode NSError’s userInfo[NSErrorClientCertificateChainKey] |
| when the corresponding NSErorr is relayed through WebContent Process from Networking Process to UI Process after a HTTPS client certificate |
| authentication is rejected becuase of bad certificates. This patch implements corresponding workarounds as well. The workaround works for mac, too. |
| |
| Sadly, this change can only be tested manually at this moment. Please refer to the radar for testing steps. |
| |
| * Configurations/WebContent-iOS.entitlements: |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::encodeNSError): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitialize): |
| |
| 2018-04-19 David Kilzer <ddkilzer@apple.com> |
| |
| Enable Objective-C weak references |
| <https://webkit.org/b/184789> |
| <rdar://problem/39571716> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| (CLANG_ENABLE_OBJC_WEAK): Enable. |
| |
| 2018-04-19 Youenn Fablet <youenn@apple.com> |
| |
| Web Inspector backend should get headers & cookies from network process separately from resource requests |
| https://bugs.webkit.org/show_bug.cgi?id=184396 |
| <rdar://problem/38877384> |
| |
| Reviewed by Brian Burg. |
| |
| Add support for storing response and network metrics for every resource load. |
| This is made conditional on inspector being activated. |
| NetworkConnectionToWebProcess keeps a response and network metrics for every load. |
| This is cleared when inspector is going away or when a web process requests |
| the data. |
| |
| WebLoaderStrategy gets this data through synchronous IPC. |
| Synchronous IPC is a temporary implementation until Inspector code gets refactored. |
| |
| Updated WebLoaderStrategy to pass the sourceOrigin for every NetworkResourceLoader. |
| This activates additional sanitization based on cross origin status. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::setCaptureExtraNetworkLoadMetricsEnabled): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationResponse): |
| (WebKit::NetworkConnectionToWebProcess::takeNetworkLoadInformationMetrics): |
| (WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationResponse): |
| (WebKit::NetworkConnectionToWebProcess::addNetworkLoadInformationMetrics): |
| (WebKit::NetworkConnectionToWebProcess::removeNetworkLoadInformation): |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::didFailLoading): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier): |
| (WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| |
| 2018-04-19 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add a mechanism to extend the height of the layout viewport in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184782 |
| <rdar://problem/38346712> |
| |
| Reviewed by Tim Horton. |
| |
| In extra zoom mode, at initial scale, fixed position elements may take up a large portion of the viewport. This |
| leaves little room for non-fixed-position elements; to improve this experience, we introduce a mechanism to |
| extend the height of the layout viewport. By default, the layout viewport size is determined by the FrameView's |
| baseLayoutViewportSize, and passed into FrameView::computeUpdatedLayoutViewportRect in the client layer; in |
| extra zoom mode, if the layout viewport is shorter than the document width, we try to double the height of the |
| layout viewport and clamp to the document height if necessary. |
| |
| * Shared/WebPreferences.yaml: |
| |
| Add a new preference to determine the factor by which we should expand the height of the layout viewport. By |
| default, this is 0 (no increase in layout viewport height); in extra zoom mode, this is 1, which means we'll |
| increase the layout viewport's height by 1x the default height. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView activeMinimumLayoutSizes:]): |
| |
| Fixes a bug when computing the active minimum layout size. If a minimum allowed layout width is specified, we |
| clamp the active layout width (normally the view size) so that it is no less than the minimum allowed layout |
| width. However, the height is currently unaffected, which causes FrameView::baseLayoutViewportSize to return a |
| bogus size, where the width is scaled to 320px but the height isn't. Instead, we should scale the layout height |
| to match the new width here. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::computeCustomFixedPositionRect const): |
| |
| Expand the base viewport layout size if necessary, given the expansion factor in WebPreferences. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| |
| Expand the base viewport layout size if necessary, given the expansion factor in Settings. |
| |
| 2018-04-19 Brian Burg <bburg@apple.com> |
| |
| Web Automation: simulated mouse interactions should not be done until associated DOM events have been dispatched |
| https://bugs.webkit.org/show_bug.cgi?id=184462 |
| <rdar://problem/39323336> |
| |
| Reviewed by Carlos Garcia Campos and Tim Horton. |
| |
| Covered by existing layout tests and actions endpoints in WebDriver test suite. |
| |
| In preparation for implementing the W3C WebDriver command "Perform Actions", we need a way to |
| know when a simulated mouse event has been fully processed by WebProcess and it is okay to continue |
| to dispatch more simulated events. |
| |
| This patch makes mouse events go through a queue as they are delivered to WebPageProxy. The approach |
| is very similar to how key events are handled. In the key event case, lots of WebEvents can come out |
| of typing one keystroke, so these need to be queued up and retired one by one when the WebProcess has |
| finished handling each event. In some mouse event cases---particularly fake mouse moves---there can |
| also be more than one mouse event waiting to be handled by WebProcess. |
| |
| In the past, these queued mouse events were tracked with several member variables as different |
| use cases emerged. These are all replaced with ordinary deque operations, such as peeking or |
| checking the queue length. |
| |
| * Platform/Logging.h: Add logging channel for mouse events. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::AutomationCommandError::toProtocolString): Add type-safe helper class for command errors. |
| In future patches we can hide knowledge of how this is sent over the protocol by relying more on |
| the convenience constructors and .toProtocolString() method. |
| |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| This section needs adjustments. Since performMouseInteraction now depends on key events being processed |
| prior to returning from the command, we need to abort any key event callbacks that are pending if an |
| alert pops up as a result of sending a mousedown event. Any mouse events that are still queued will |
| be handled when the alert is dismissed and the nested run loop exits. |
| |
| (WebKit::WebAutomationSession::mouseEventsFlushedForPage): |
| (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): |
| Modernize this a bit. Don't spread knowledge about how commands are sent back out into event handling code. |
| Our wrapper callbacks in performXXXInteraction handle the protocol-specific details of the response. |
| |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| Add code similar to performKeyboardInteractions so that the command doesn't finish until the mouse |
| event has been fully handled. Unlike keyboards, sometimes mouse interactions don't turn into WebEvents |
| so we also need to handle the case where there is nothing to be waited on because hit testing did |
| not return a target to deliver the event to. |
| |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| Modernize a little bit to use generic callbacks rather than protocol-generated callbacks in the |
| event waiting/handling code. Now it matches the types used for the mouse event case. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| (WebKit::AutomationCommandError::AutomationCommandError): |
| Add a helper struct to hold an enumerated error name and an optional free-form error message. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::webMouseEventTypeString): |
| (WebKit::webKeyboardEventTypeString): |
| (WebKit::WebPageProxy::handleMouseEvent): |
| (WebKit::WebPageProxy::processNextQueuedMouseEvent): |
| Split the old method into handleMouseEvent (called by other code) and processNextQueuedMouseEvent. |
| The latter sends the next mouse event to WebProcess, and can be triggered in didReceiveEvent |
| if there are more mouse events to be sent to WebProcess. |
| |
| (WebKit::WebPageProxy::isProcessingMouseEvents const): Added. |
| (WebKit::WebPageProxy::currentlyProcessedMouseDownEvent): Reimplemented on top of the deque. |
| (WebKit::WebPageProxy::didReceiveEvent): |
| Unify the code paths for different mouse event types to all use the deque. They also will |
| notify the automation session if there are no more mouse events to send (i.e., interaction is over). |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Add handling for new map. |
| |
| 2018-04-19 Andy Estes <aestes@apple.com> |
| |
| [iOS] Implement find-in-page in the new WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184654 |
| <rdar://problem/39331654> |
| |
| Reviewed by Tim Horton. |
| |
| This is theoretically covered by existing WKPDFView API tests, but that's currently blocked |
| by <rdar://problem/39475542>. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (stringCompareOptions): |
| |
| Mapped _WKFindOptions to NSStringCompareOptions. |
| |
| (-[WKPDFView _resetFind]): |
| |
| Cancelled an in-progress search and reset the search state. |
| |
| (-[WKPDFView _findString:withOptions:maxCount:completion:]): |
| |
| Stored the completion block, find string, and max count, then called |
| -[PDFHostViewController findString:withOptions:]. |
| |
| (-[WKPDFView web_countStringMatches:options:maxCount:]): |
| |
| Called -_findString:withOptions:maxCount:completion: with a completion block that calls |
| FindClient::didCountStringMatches() with _findStringCount. |
| |
| (-[WKPDFView _computeFocusedSearchResultIndexWithOptions:didWrapAround:]): |
| |
| Computed the focused search result index, taking _findStringCount and wrap-around into |
| account. There are two interesting cases to mention here: |
| |
| 1. We can't change focus while a search is in progress, because we can't properly handle |
| wrap-around without a _findStringCount. If a search is in progress, store the requested |
| focus change in _focusedSearchResultPendingOffset, which will be applied once the search |
| finishes. |
| |
| 2. If wrap-around is about to happen but the find options do not allow it, we need to call |
| FindClient::didFailToFindString(). Handle this by returning NO, which will tell |
| -_focusOnSearchResultWithOptions: to call didFailToFindString() if a search is not in |
| progress. |
| |
| (-[WKPDFView _focusOnSearchResultWithOptions:]): |
| |
| If -_computeFocusedSearchResultIndexWithOptions:didWrapAround: failed while a search is in |
| progress, just return early. Otherwise, call FindClient::didFailToFindString(). If |
| computing the index did not fail, call -[PDFHostViewController focusOnSearchResultAtIndex:] |
| to change focus and then call FindClient::didFindString() to inform the client. |
| |
| (-[WKPDFView web_findString:options:maxCount:]): |
| |
| If the find string is equal to _findString, change focus. Otherwise, start a new search. |
| |
| (-[WKPDFView web_hideFindUI]): |
| |
| Called -_resetFind. |
| |
| (-[WKPDFView pdfHostViewController:findStringUpdate:done:]): |
| |
| Stored the count in _findStringCount and called _findCompletion once the search is done. |
| |
| 2018-04-17 Filip Pizlo <fpizlo@apple.com> |
| |
| The InternalFunction hierarchy should be in IsoSubspaces |
| https://bugs.webkit.org/show_bug.cgi?id=184721 |
| |
| Reviewed by Saam Barati. |
| |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| (WebKit::JSNPMethod::subspaceForImpl): |
| * WebProcess/Plugins/Netscape/JSNPMethod.h: |
| (WebKit::JSNPMethod::create): Deleted. |
| (WebKit::JSNPMethod::npIdentifier const): Deleted. |
| (WebKit::JSNPMethod::createStructure): Deleted. |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| (WebKit::JSNPObject::subspaceForImpl): |
| * WebProcess/Plugins/Netscape/JSNPObject.h: |
| (WebKit::JSNPObject::create): Deleted. |
| (WebKit::JSNPObject::npObject const): Deleted. |
| (WebKit::JSNPObject::createStructure): Deleted. |
| |
| 2018-04-19 Brady Eidson <beidson@apple.com> |
| |
| Add globally-unique HistoryItem identifiers (and have WebKit2 adopt them). |
| <rdar://problem/39533949> and https://bugs.webkit.org/show_bug.cgi?id=184750 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| With process swapping, the assumption that "back/forward items belong to a process" is invalid. |
| |
| All HistoryItem/WebBackForwardListItems now need to be uniquely identified across all processes, |
| no matter which process they originated from, so there will never be a collision in the UIProcess. |
| |
| This allows us to: |
| - Have the UIProcess to keep a single process-wide map of all WebBackForwardListItems |
| - Get rid of the per-WebProcess WebBackForwardListItem map |
| - Simplify a lot of WebBackForwardList(Proxy) code that no longer needs to keep that per-process |
| map in sync |
| - Get rid of a lot of other ancillary code |
| |
| * Shared/SessionState.cpp: |
| (WebKit::BackForwardListItemState::decode): |
| * Shared/SessionState.h: |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::WebBackForwardListItem): |
| (WebKit::WebBackForwardListItem::~WebBackForwardListItem): |
| (WebKit::WebBackForwardListItem::itemForID): |
| (WebKit::WebBackForwardListItem::highestUsedItemID): Deleted. |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::itemID const): |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::itemForID): |
| (WebKit::WebBackForwardList::pageClosed): |
| (WebKit::WebBackForwardList::addItem): |
| (WebKit::WebBackForwardList::restoreFromState): |
| (WebKit::generateWebBackForwardItemID): Deleted. |
| * UIProcess/WebBackForwardList.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| (WebKit::WebPageProxy::backForwardAddItem): |
| (WebKit::WebPageProxy::backForwardGoToItem): |
| (WebKit::WebPageProxy::backForwardItemAtIndex): |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::backForwardRemovedItem): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: Explicitly set the UIProcess Process::Identifier so it starts |
| at "1" and then the first child process starts at "2", etc etc. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::removeWebPage): |
| (WebKit::WebProcessProxy::checkURLReceivedFromWebProcess): |
| (WebKit::WebProcessProxy::updateBackForwardItem): |
| (WebKit::WebProcessProxy::webBackForwardItem const): Deleted. |
| (WebKit::WebProcessProxy::registerNewWebBackForwardListItem): Deleted. |
| (WebKit::WebProcessProxy::removeBackForwardItem): Deleted. |
| (WebKit::WebProcessProxy::addOrUpdateBackForwardItem): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toBackForwardListItemState): |
| (WebKit::applyFrameState): |
| (WebKit::toHistoryItem): |
| (WebKit::toPageState): Deleted. |
| * WebProcess/WebCoreSupport/SessionStateConversion.h: |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem const): |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::addItemFromUIProcess): |
| (WebKit::WK2NotifyHistoryItemChanged): |
| (WebKit::WebBackForwardListProxy::itemForID): |
| (WebKit::WebBackForwardListProxy::removeItem): |
| (WebKit::WebBackForwardListProxy::addItem): Previously this was a two-step process of adding an item |
| to the process and then associating it with the page. Now it's just directly adding it to the page, |
| so we don't need to call updateBackForwardItem first. |
| (WebKit::WebBackForwardListProxy::goToItem): |
| (WebKit::WebBackForwardListProxy::itemAtIndex): |
| (WebKit::WebBackForwardListProxy::close): |
| (WebKit::historyItemToIDMap): Deleted. |
| (WebKit::generateHistoryItemID): Deleted. |
| (WebKit::WebBackForwardListProxy::setHighestItemIDFromUIProcess): Deleted. |
| (WebKit::updateBackForwardItem): Deleted. |
| (WebKit::WebBackForwardListProxy::idForItem): Deleted. |
| * WebProcess/WebPage/WebBackForwardListProxy.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::goToBackForwardItem): |
| (WebKit::WebPage::restoreSessionInternal): |
| (WebKit::WebPage::didRemoveBackForwardItem): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-04-19 Youenn Fablet <youenn@apple.com> |
| |
| NetworkProcess should use CSP/content blockers for sync XHR |
| https://bugs.webkit.org/show_bug.cgi?id=184760 |
| |
| Reviewed by Chris Dumez. |
| |
| Setting CSP/ContentBlockers parameters for sync XHR loads. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| |
| 2018-04-19 Nan Wang <n_wang@apple.com> |
| |
| AX: AOM: respect the accessibility setting for dispatching the accessible events |
| https://bugs.webkit.org/show_bug.cgi?id=184619 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Linked libAccessibility on iOS and macOS to use the platform accessibility settings |
| for allowing dispatching the accessibility events. |
| |
| * Configurations/WebKit.xcconfig: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (accessibilityEventsEnabledChangedCallback): |
| (-[WKWebView _updateAccessibilityEventsEnabled]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateAccessibilityEventsEnabled): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updateAccessibilityEventsEnabled): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-04-18 Chris Dumez <cdumez@apple.com> |
| |
| Rename WindowProxyController to WindowProxy |
| https://bugs.webkit.org/show_bug.cgi?id=184756 |
| |
| Reviewed by Sam Weinig. |
| |
| Rename WindowProxyController to WindowProxy for clarity. When the IDL uses WindowProxy, the implementation |
| needed use WindowProxyController type, which was a bit confusing. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::windowScriptNPObject): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| |
| 2018-04-18 Youenn Fablet <youenn@apple.com> |
| |
| Allow SameOrigin credentials handling for synchronous XHR |
| https://bugs.webkit.org/show_bug.cgi?id=184723 |
| |
| Reviewed by Alex Christensen. |
| |
| In case of SameOrigin credentials, we need to stop the current load |
| in case of cross origin redirection to restart a load with a different session. |
| Covered by updated WK2 tests. |
| Rebased WK1 tests since this is Wk1 only. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-04-18 Chris Dumez <cdumez@apple.com> |
| |
| Set RemoteDOMWindow's initial opener |
| https://bugs.webkit.org/show_bug.cgi?id=184716 |
| |
| Reviewed by Sam Weinig. |
| |
| When a frame becomes remote, transfer the frame opener from the old |
| frame to the new remote one. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| |
| 2018-04-18 Youenn Fablet <youenn@apple.com> |
| |
| NetworkResourceLoader should not clean itself inside didReceiveResponse |
| https://bugs.webkit.org/show_bug.cgi?id=184754 |
| |
| Reviewed by Chris Dumez. |
| |
| Delay the cleanup to after the didReceiveResponse call so that NetworkLoad can terminate its work. |
| Covered by XHR sync tests no longer crashing on GuardMalloc bots. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| |
| 2018-04-18 Jer Noble <jer.noble@apple.com> |
| |
| Fix rendering of WKRemoteView layers in the simulator |
| https://bugs.webkit.org/show_bug.cgi?id=184752 |
| |
| Reviewed by Tim Horton. |
| |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| |
| 2018-04-18 Jer Noble <jer.noble@apple.com> |
| |
| Fix entitlements and sandboxing for iphoneminimalsimulator |
| https://bugs.webkit.org/show_bug.cgi?id=184692 |
| |
| Reviewed by Tim Horton. |
| |
| Use the correct implementations for ChildProcess and NetworkProcess |
| when building for iphoneminimalsimulator. Stub out imlementations |
| which rely on methods not available in the iphoneminimalsimulator SDK. |
| |
| * Configurations/Network-OSX.entitlements: Added. |
| * Configurations/NetworkService.xcconfig: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::sourceApplicationAuditData const): |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::initializeProcessName): |
| (WebKit::overrideSystemProxies): |
| * Shared/ios/ChildProcessIOS.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::setApplicationIsDaemon): |
| (WebKit::enableSandboxStyleFileQuarantine): |
| (WebKit::ChildProcess::initializeSandbox): |
| (WebKit::ChildProcess::platformStopRunLoop): |
| * Shared/mac/CodeSigning.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeSandbox): |
| |
| 2018-04-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r230743. |
| https://bugs.webkit.org/show_bug.cgi?id=184747 |
| |
| causes mouse clicks to not work on some platforms (Requested |
| by brrian on #webkit). |
| |
| Reverted changeset: |
| |
| "Web Automation: simulated mouse interactions should not be |
| done until associated DOM events have been dispatched" |
| https://bugs.webkit.org/show_bug.cgi?id=184462 |
| https://trac.webkit.org/changeset/230743 |
| |
| 2018-04-18 Brent Fulgham <bfulgham@apple.com> |
| |
| Avoid crash if ITP Debug mode is on, but ResourceLoadStatistics are not being used |
| https://bugs.webkit.org/show_bug.cgi?id=184739 |
| <rdar://problem/39287964> |
| |
| Reviewed by David Kilzer. |
| |
| If a user has the ResourceLoadStatistics logic turned off, but has the ITP Debug experimental |
| flag turned on, you can cause a crash. |
| |
| This is because the WebsiteDataStore for the process doesn't bother creating a ResourceLoadStatisticsStore |
| if the statistics machinery is not running. The ITP debug flag was being blindly set without checking |
| if the statistics store exists or not, which can cause a crash. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode): Check if the statistics store exists |
| before calling functions on it. |
| |
| 2018-04-18 Paul Knight <pknight@apple.com> |
| |
| Add -[_WKInputDelegateDelegate willStartInputSession:] for clients that want to configure input session before assisting form node |
| https://bugs.webkit.org/show_bug.cgi?id=184662 |
| |
| Reviewed by Beth Dakin. |
| |
| Clients may wish to configure a WKInputSession before we start assisting |
| a node. Add a -[_WKInputDelegateDelegate _webView:willStartInputSession:] |
| callback. |
| |
| For example, clients that wish to present a custom input view will want |
| to configure the WKFormInputSession's customInputView before the |
| keyboard is presented. Otherwise the standard keyboard will begin to |
| animate and then the custom input view will swap in later. |
| |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| Call -_webView:willStartInputSession: before assisting the node. |
| Only create the form session if the delegate implements either |
| the willStart or didStartInputSession callbacks. |
| |
| 2018-04-18 Chris Dumez <cdumez@apple.com> |
| |
| Add support for converting a local window to a remote window |
| https://bugs.webkit.org/show_bug.cgi?id=184515 |
| <rdar://problem/39011318> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add initial support for process-swapping when navigating cross-origin as a result |
| of a window.open(). The window object returned by window.open() is initially same |
| origin and is for about:blank. The navigation cross-origin then happens and the |
| JS wrappers for the window then point to a cross-origin window which is remote (i.e. |
| hosted in another WebProcess). |
| |
| The RemoteDOMWindow exposed to JS looks like a regular cross-origin Window with a few |
| exceptions due to our incomplete implementation (e.g. w.location returns null) and |
| most of its API is currently not functional. The RemoteDOMWindow API will be implemented |
| in a follow-up by relying on IPC. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationProcessSwapsOnWindowOpenWithOpener): |
| (WKContextConfigurationSetProcessSwapsOnWindowOpenWithOpener): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setProcessSwapsOnWindowOpenWithOpener:]): |
| (-[_WKProcessPoolConfiguration processSwapsOnWindowOpenWithOpener]): |
| Add ProcessPool configuration flag to turn on processSwap on window.open(), even |
| if there is an opener. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| If the navigation was triggered via window.open(), then set up on handler for when |
| a DOMWindow is constructed for the main frame in the new process. |
| |
| (WebKit::WebPageProxy::didCreateWindow): |
| When a Window is constructed for the main frame in a new process on process swap, |
| notify the old process that its representation of the window should become remote |
| and provide it with the Frame / Window identifiers it needs. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| Do process swapping on cross-origin window.open() if the corresponding setting is |
| enabled. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::didCreateWindow): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| This is called when process swapping has happened due to a window.open() navigation |
| cross-origin, when a Frame / Window has been constructed in the new process. We do |
| the following: |
| - Construct a RemoteFrame / RemoteWindow using the provided global identifiers to |
| represent the Frame / Window in the new process. |
| - We transfer the WindowProxies from the old Frame's WindowProxyController to the |
| new RemoteFrame's WindowProxyController. |
| - We update the window proxied by those WindowProxies to be the new RemoteWindow. |
| - We detach the old Frame as it is now remote and represented by the new RemoteFrame |
| object we constructed. |
| - If the old frame was the main frame (always the case currently), we close the page |
| as it is no longer needed. The new RemoteFrame is currently owned by the RemoteWindow |
| which is kept alive by its JS wrappers. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-04-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.1 release. |
| |
| * gtk/NEWS: Add release notes for 2.21.1. |
| |
| 2018-04-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Remove symbols from webkitglib-symbols.map. |
| |
| Remove symbols not present in WebKit. |
| |
| * webkitglib-symbols.map: |
| |
| 2018-04-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Add missing symbols to webkitglib-symbols.map. |
| |
| Add symbols global in JSC and present in WebKit. |
| |
| * webkitglib-symbols.map: |
| |
| 2018-04-18 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][WebKit] Implement InjectedBundleWin.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=184525 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * WebProcess/InjectedBundle/win/InjectedBundleWin.cpp: |
| (WebKit::InjectedBundle::initialize): |
| |
| 2018-04-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Programmatically changing focus when an element already has focus is a confusing experience |
| https://bugs.webkit.org/show_bug.cgi?id=184635 |
| <rdar://problem/39440642> |
| |
| Reviewed by Tim Horton. |
| |
| Currently on iOS, we allow element focus to present UI if the keyboard is already shown. In extra zoom mode, |
| this would lead to a confusing experience when the focus form control overlay is disabled, since fullscreen |
| input view controllers are swapped out from underneath the user. Currently, this also puts the UI process into a |
| bad state where the focused form control overlay is active, but still hidden. This patch makes some tweaks to |
| input view controller handling in the UI process to address these issues, and also adds WebKitTestRunner support |
| for simulating interactions with select menus in extra zoom mode. See comments below for more detail. |
| |
| Test: fast/events/extrazoom/change-focus-during-change-event.html |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| |
| Add new SPI delegate hooks to notify the UI delegate when view controllers are presented or dismissed in extra |
| zoom mode. See -presentViewControllerForCurrentAssistedNode and -dismissAllInputViewControllers. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::takeBackgroundActivityTokenForFullscreenInput): |
| (WebKit::WebProcessProxy::releaseBackgroundActivityTokenForFullscreenInput): |
| |
| See the comment below -dismissAllInputViewControllers. |
| |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| In extra zoom mode, when changing focus from one assisted node to another, only allow the second node to be |
| assisted if the focused form control overlay is being shown. Otherwise, (i.e. when a fullscreen input view |
| controller is being presented), don't allow focus to start an input session. |
| |
| Additionally, make a minor tweak to allow the previous node to blur, even if we are not showing the keyboard for |
| the new focused element. Without this adjustment, in the case where the page has programmatically focused |
| another element while a fullscreen input view controller is presented, we'll show the old view controller for |
| the new focused element. |
| |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers:]): |
| |
| Currently, when a fullscreen input view controller is presented, the web process gets backgrounded. This |
| prevents event handlers from executing, which leads to strange behaviors in many cases (for instance: if we |
| have a multiple select, and the "change" event handler blurs the select, the user may check or uncheck multiple |
| items, but only the first change will actually take effect). |
| |
| To fix this, we maintain a background activity token while presenting an input view controller. |
| |
| (-[WKContentView focusedFormControlViewDidBeginEditing:]): |
| |
| Start hiding the focused form overlay when re-presenting an input view controller. This allows us to bail from |
| showing fullscreen input UI for another focused element if focus programmatically changes while the current |
| fullscreen input view controller is presented, due to the -isHidden check in -_startAssistingNode:. |
| |
| (-[WKContentView selectFormAccessoryPickerRow:]): |
| |
| Simulate tapping a given row in select menu UI in extra zoom mode. |
| |
| 2018-04-17 Conrad Shultz <conrad_shultz@apple.com> |
| |
| WebKit::DisplayLink maintains a strong reference to WebPageProxy, creating a reference cycle |
| https://bugs.webkit.org/show_bug.cgi?id=184718 |
| |
| Reviewed by Tim Horton. |
| |
| It turns out that the m_webPageProxy back-reference in DisplayLink, which was creating a |
| reference cycle, wasn't ever read, so we can just remove it. |
| |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::DisplayLink): |
| * UIProcess/mac/DisplayLink.h: |
| |
| 2018-04-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Double tap to zoom should account for text legibility in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184631 |
| <rdar://problem/39303706> |
| |
| Reviewed by Tim Horton. |
| |
| Implement the text legibility heuristic alluded to in r230506 by iterating through text runs in the document (up |
| to a maximum of 200) and building a histogram of font sizes that appear in the document, where each tally |
| represents a character. |
| |
| The first and second text legibility zoom scales are then computed based on the zoom scales needed to |
| make 50% and 90% of the text legible, respectively. Here, a zoom scale that makes text legible is such that the |
| text would have an apparent font size of a hard-coded constant (currently, 12) after zooming. This means the |
| first and second text legibility scales may end up being close to one another, or even the same (in the case |
| where there is only a single font size in the entire document). In this case, we just snap the first scale to |
| the second, so that double tapping will only toggle between two zoom scales. In another case where the document |
| has no text (e.g. an image document), we just fall back to a zoom scale of 1. |
| |
| Test: fast/events/extrazoom/double-tap-to-zoom-on-full-width-text.html |
| |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales): |
| |
| 2018-04-17 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't activate selection on become first responder |
| https://bugs.webkit.org/show_bug.cgi?id=184719 |
| |
| Reviewed by Tim Horton. |
| |
| If we activate the selection immediately on becoming first responder, we cause the selection view to delete itself |
| since it is not guaranteed to have selection rects immediately due to async/two process architecture. The selection |
| is activated already when the selection rects change, so there is no reason to activate it now. This has likely worked |
| in the past because this selection assistant was only for editable text, which would immediately set a caret, which |
| is a selection. Now that this is for non-editable text as well, activating the selection is problematic. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView becomeFirstResponderForWebView]): |
| |
| 2018-04-11 Brian Burg <bburg@apple.com> |
| |
| Web Automation: simulated mouse interactions should not be done until associated DOM events have been dispatched |
| https://bugs.webkit.org/show_bug.cgi?id=184462 |
| <rdar://problem/39323336> |
| |
| Reviewed by Carlos Garcia Campos and Tim Horton. |
| |
| Covered by existing layout tests and actions endpoints in WebDriver test suite. |
| |
| In preparation for implementing the W3C WebDriver command "Perform Actions", we need a way to |
| know when a simulated mouse event has been fully processed by WebProcess and it is okay to continue |
| to dispatch more simulated events. |
| |
| This patch makes mouse events go through a queue as they are delivered to WebPageProxy. The approach |
| is very similar to how key events are handled. In the key event case, lots of WebEvents can come out |
| of typing one keystroke, so these need to be queued up and retired one by one when the WebProcess has |
| finished handling each event. In some mouse event cases---particularly fake mouse moves---there can |
| also be more than one mouse event waiting to be handled by WebProcess. |
| |
| In the past, these queued mouse events were tracked with several member variables as different |
| use cases emerged. These are all replaced with ordinary deque operations, such as peeking or |
| checking the queue length. |
| |
| * Platform/Logging.h: Add logging channel for mouse events. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::AutomationCommandError::toProtocolString): Add type-safe helper class for command errors. |
| In future patches we can hide knowledge of how this is sent over the protocol by relying more on |
| the convenience constructors and .toProtocolString() method. |
| |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| This section needs adjustments. Since performMouseInteraction now depends on key events being processed |
| prior to returning from the command, we need to abort any key event callbacks that are pending if an |
| alert pops up as a result of sending a mousedown event. Any mouse events that are still queued will |
| be handled when the alert is dismissed and the nested run loop exits. |
| |
| (WebKit::WebAutomationSession::mouseEventsFlushedForPage): |
| (WebKit::WebAutomationSession::keyboardEventsFlushedForPage): |
| Modernize this a bit. Don't spread knowledge about how commands are sent back out into event handling code. |
| Our wrapper callbacks in performXXXInteraction handle the protocol-specific details of the response. |
| |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| Add code similar to performKeyboardInteractions so that the command doesn't finish until the mouse |
| event has been fully handled. Unlike keyboards, sometimes mouse interactions don't turn into WebEvents |
| so we also need to handle the case where there is nothing to be waited on because hit testing did |
| not return a target to deliver the event to. |
| |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| Modernize a little bit to use generic callbacks rather than protocol-generated callbacks in the |
| event waiting/handling code. Now it matches the types used for the mouse event case. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| (WebKit::AutomationCommandError::AutomationCommandError): |
| Add a helper struct to hold an enumerated error name and an optional free-form error message. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::webMouseEventTypeString): |
| (WebKit::webKeyboardEventTypeString): |
| (WebKit::WebPageProxy::handleMouseEvent): |
| (WebKit::WebPageProxy::processNextQueuedMouseEvent): |
| Split the old method into handleMouseEvent (called by other code) and processNextQueuedMouseEvent. |
| The latter sends the next mouse event to WebProcess, and can be triggered in didReceiveEvent |
| if there are more mouse events to be sent to WebProcess. |
| |
| (WebKit::WebPageProxy::isProcessingMouseEvents const): Added. |
| (WebKit::WebPageProxy::currentlyProcessedMouseDownEvent): Reimplemented on top of the deque. |
| (WebKit::WebPageProxy::didReceiveEvent): |
| Unify the code paths for different mouse event types to all use the deque. They also will |
| notify the automation session if there are no more mouse events to send (i.e., interaction is over). |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Add handling for new map. |
| |
| 2018-04-17 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK][WPE] Build failure due to presence of Avahi's <dns_sd.h> header |
| https://bugs.webkit.org/show_bug.cgi?id=184711 |
| |
| Unreviewed build fix. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.h: Set ENABLE_MDNS only for PLATFORM(COCOA). |
| |
| 2018-04-17 Jonathan Bedard <jbedard@apple.com> |
| |
| Unreviewed rollout of r230632. Regression in memory usage. |
| |
| That bug tracked in https://bugs.webkit.org/show_bug.cgi?id=184569. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-17 Timothy Hatcher <timothy@apple.com> |
| |
| Always use LayerContentsType::IOSurface in minimal simulator mode |
| https://bugs.webkit.org/show_bug.cgi?id=184710 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| |
| 2018-04-17 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assert in InjectedBundle::postSynchronousMessage |
| https://bugs.webkit.org/show_bug.cgi?id=184683 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Some injected bundles sends sync message when it's not safe to execute scripts. |
| |
| Use DoNotProcessIncomingMessagesWhenWaitingForSyncReply option in InjectedBundle::postSynchronousMessage |
| to avoid processing incoming sync IPC messages so that we don't execute arbitrary scripts in those cases. |
| |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::postSynchronousMessage): |
| |
| 2018-04-17 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r229831): CMD-clicking an iCloud web app link unexpectedly opens that link in a new tab and the current tab |
| https://bugs.webkit.org/show_bug.cgi?id=184678 |
| <rdar://problem/39422122> |
| |
| Reviewed by Alex Christensen. |
| |
| Re-introduce synchronous code path which existed pre-r229831 and use it for fragment navigations. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-04-17 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] GObject introspection annotation fixes: BackForwardList, NetworkProxySettings |
| https://bugs.webkit.org/show_bug.cgi?id=184658 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Thanks to Dylan Simon for recommending these annotation fixes. |
| |
| * UIProcess/API/glib/WebKitBackForwardList.cpp: |
| * UIProcess/API/glib/WebKitNetworkProxySettings.cpp: |
| |
| 2018-04-17 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Don't establish unneeded Dock connections (Follow-up) |
| https://bugs.webkit.org/show_bug.cgi?id=184664 |
| <rdar://problem/16863698> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Because the Plugin process is driven by NSApplication's run loop, we aren't |
| setting the 'don't connect to the dock' setting early enough. |
| |
| This patch sets the flag in XPCServiceMain for those services that |
| are linked to AppKit. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializeProcess): Remove unneeded code. |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: |
| (main): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): Remove unneeded code. |
| |
| 2018-04-17 Saam Barati <sbarati@apple.com> |
| |
| Add system trace points for process launch and for initializeWebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184669 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/Launcher/ProcessLauncher.cpp: |
| (WebKit::ProcessLauncher::ProcessLauncher): |
| (WebKit::ProcessLauncher::didFinishLaunchingProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-04-16 Timothy Hatcher <timothy@apple.com> |
| |
| Unreviewed 32-bit build fix for r230673. |
| |
| https://bugs.webkit.org/show_bug.cgi?id=184657 |
| rdar://problem/39463307 |
| |
| * Configurations/PluginProcessShim.xcconfig: Use the correct names. |
| |
| 2018-04-16 Andy Estes <aestes@apple.com> |
| |
| [iOS] Enable WKPDFView by default |
| https://bugs.webkit.org/show_bug.cgi?id=184675 |
| <rdar://problem/27885452> |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| |
| 2018-04-16 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Don't establish unneeded Dock connections |
| https://bugs.webkit.org/show_bug.cgi?id=184664 |
| <rdar://problem/16863698> |
| |
| Reviewed by Simon Fraser. |
| |
| There is no reason for the WebContent or Plugin processes to interact with |
| the Dock. We should tell AppKit that we don't want this connection, and to |
| avoid creating such connections. |
| |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::PluginProcess::platformInitializeProcess): Tell NSApplication to |
| not create a Dock connection. |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): Ditto. |
| |
| 2018-04-16 Megan Gardner <megan_gardner@apple.com> |
| |
| Switch to UIWKTextInteractionAssistant for non-editable text |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| |
| Reviewed by Beth Dakin. |
| |
| Switch to only using one assistant for text selection. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| |
| 2018-04-16 Youenn Fablet <youenn@apple.com> |
| |
| Use NetworkLoadChecker to handle synchronous HTTP loads |
| https://bugs.webkit.org/show_bug.cgi?id=184240 |
| |
| Reviewed by Chris Dumez. |
| |
| For every NetworkResourceLoader synchronous load, we create a NetworkLoadChecker. |
| NetworkLoadChecker handles all security checks in that case. |
| This allows supporting cross-origin loads for synchronous XHR. |
| |
| Updated NetworkCORSPreflightChecker to return the result as a ResourceError. |
| This is used to convey any error message from NetworkProcess to the JS console. |
| Ensure NetworkCORSPreflightChecker computes correctly Access-Control-Request-Headers value |
| by providing the headers set by the application plus Referrer/Origin. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::~NetworkCORSPreflightChecker): |
| (WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection): |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| (WebKit::NetworkCORSPreflightChecker::didCompleteWithError): |
| (WebKit::NetworkCORSPreflightChecker::wasBlocked): |
| (WebKit::NetworkCORSPreflightChecker::cannotShowURL): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::NetworkResourceLoader): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::validateCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-04-16 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: add SPI to terminate automation session and disconnect the remote end |
| https://bugs.webkit.org/show_bug.cgi?id=184523 |
| <rdar://problem/39368599> |
| |
| Reviewed by Simon Fraser. |
| |
| When a user breaks the automation glass pane and chooses "Stop Session", there is no way |
| for Safari to actually disconnect the remote connection using automation-related ObjC SPI. |
| This can lead to sessions getting stuck and safaridriver is unable to request a new session. |
| |
| Expose the -terminate method as SPI. This disconnects the remote connection and then notifies |
| the session delegate that the remote disconnected. At that point, Safari can uninstall |
| the session from the process pool and tear down other session state. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSession.h: |
| * UIProcess/API/Cocoa/_WKAutomationSession.mm: |
| (-[_WKAutomationSession terminate]): |
| |
| 2018-04-16 Timothy Hatcher <timothy@apple.com> |
| |
| Clean up OTHER_LDFLAGS for WebKit processes |
| https://bugs.webkit.org/show_bug.cgi?id=184657 |
| |
| Reviewed by Jer Noble. |
| |
| * Configurations/PluginProcessShim.xcconfig: |
| * Configurations/PluginService.32.xcconfig: |
| * Configurations/PluginService.64.xcconfig: |
| * Configurations/WebContentService.xcconfig: |
| |
| 2018-04-15 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Install files needed for WebKitWebExtensions |
| https://bugs.webkit.org/show_bug.cgi?id=179915 |
| |
| Reviewed by Žan Doberšek. |
| |
| * PlatformWPE.cmake: Install pkg-config file, injected bundle, and API headers. |
| * UIProcess/API/glib/WebKitWebContext.cpp: Load the injected bundle when installed. |
| * wpe/wpe-web-extension.pc.in: Added. |
| |
| 2018-04-14 Carlos Eduardo Ramalho <cadubentzen@gmail.com> |
| |
| [GTK][WPE] Build is broken after r230640 |
| https://bugs.webkit.org/show_bug.cgi?id=184623 |
| |
| Reviewed by Žan Doberšek. |
| |
| UIProcess/SuspendedPageProxy.cpp was not included to CMake build in r230640. |
| |
| * CMakeLists.txt: Added UIProcess/SuspendedPageProxy.cpp to WebKit_SOURCES. |
| |
| 2018-04-13 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230447. |
| |
| Caused flaky selection test failures on iOS |
| |
| Reverted changeset: |
| |
| "Switch to UIWKTextInteractionAssistant for non-editable text" |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| https://trac.webkit.org/changeset/230447 |
| |
| 2018-04-13 Chris Dumez <cdumez@apple.com> |
| |
| Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame |
| https://bugs.webkit.org/show_bug.cgi?id=184591 |
| |
| Reviewed by Sam Weinig. |
| |
| Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame. |
| RemoteFrames do not need a ScriptController but do need to maintain WindowProxies. |
| This is work towards fixing Bug 184515. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::windowScriptNPObject): |
| |
| 2018-04-13 Brady Eidson <beidson@apple.com> |
| |
| Introduce SuspendedPageProxy to keep old web processes around after their WebPageProxy has been swapped to a new one. |
| https://bugs.webkit.org/show_bug.cgi?id=184559 |
| |
| Reviewed by Alex Christensen. |
| |
| Before this patch, when a WebPageProxy navigates and is swapped to a new process, the old process almost always goes away. |
| |
| This is not desirable for a few reasons: |
| 1 - We can't keep the PageCache working for back/forward scenarios |
| 2 - We throw away a "foo.com" web process, meaning the next time we need to host a "foo.com" web page we have to launch |
| and initialize a new web process. |
| |
| This patch adds a SuspendedPageProxy object to keep around the old web process and to manage communication with it. |
| |
| For now, a WebPageProxy keeps exactly one "suspended page" representing the most recently visited page and its process. |
| Additionally, that process is never reused. |
| |
| So no benefit is achieved with this patch, but it enables future benefits. |
| |
| * Platform/Logging.h: |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| * Shared/WebBackForwardListItem.h: |
| |
| New object to represent the state of a WebPageProxy in an old web process that is not currently hosting the view. |
| * UIProcess/SuspendedPageProxy.cpp: Added. |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::webProcessDidClose): |
| (WebKit::SuspendedPageProxy::didFinishLoad): |
| (WebKit::SuspendedPageProxy::didReceiveMessage): |
| (WebKit::SuspendedPageProxy::loggingString const): |
| * UIProcess/SuspendedPageProxy.h: Copied from Source/WebKit/Platform/Logging.h. |
| (WebKit::SuspendedPageProxy::create): |
| (WebKit::SuspendedPageProxy::page const): |
| (WebKit::SuspendedPageProxy::process const): |
| (WebKit::SuspendedPageProxy::item const): |
| (WebKit::SuspendedPageProxy::finishedSuspending const): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::attachToProcessForNavigation): |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::suspendedPageProcessClosed): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::suspendWebPageProxy): |
| (WebKit::WebProcessProxy::suspendedPageWasDestroyed): |
| (WebKit::WebProcessProxy::removeWebPage): |
| (WebKit::WebProcessProxy::didReceiveMessage): Optionally pass WebPageProxy messages along to SuspendedPageProxy objects. |
| (WebKit::WebProcessProxy::didClose): |
| (WebKit::WebProcessProxy::maybeShutDown): |
| (WebKit::WebProcessProxy::canTerminateChildProcess): Don't terminate child processes if they still have suspended pages. |
| * UIProcess/WebProcessProxy.h: |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setIsSuspended): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::isSuspended const): For now, used only by WebProcess::updateActivePages. Will have more uses soon. |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::updateActivePages): Allow the UIProcess to request an update of the web processes user visible name. |
| |
| 2018-04-13 Daniel Bates <dabates@apple.com> |
| |
| Inline NetworkLoad::sharedWillSendRedirectedRequest() into NetworkLoad::willPerformHTTPRedirection() |
| https://bugs.webkit.org/show_bug.cgi?id=184593 |
| |
| Reviewed by Alex Christensen. |
| |
| Following the removal of the pre-Network Session code in r227364, NetworkLoad::sharedWillSendRedirectedRequest() |
| is only referenced from NetworkLoad::willPerformHTTPRedirection(). We should inline its |
| implementation into the NetworkLoad::willPerformHTTPRedirection(), remove a function call, |
| and the cognitive load to follow such a function call when reading the code. |
| |
| No functionality changed. So, no new tests. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::willPerformHTTPRedirection): Moved the implementation of NetworkLoad::sharedWillSendRedirectedRequest() |
| into this function. |
| (WebKit::NetworkLoad::sharedWillSendRedirectedRequest): Deleted. Moved its implementation |
| into NetworkLoad::willPerformHTTPRedirection(). |
| * NetworkProcess/NetworkLoad.h: |
| |
| 2018-04-13 Daniel Bates <dabates@apple.com> |
| |
| Inline NetworkLoad::sharedDidReceiveResponse() into NetworkLoad::notifyDidReceiveResponse() |
| https://bugs.webkit.org/show_bug.cgi?id=184592 |
| |
| Reviewed by Alex Christensen. |
| |
| Following the removal of the pre-Network Session code in r227364, NetworkLoad::sharedDidReceiveResponse() |
| is only referenced from NetworkLoad::notifyDidReceiveResponse(). We should inline its |
| implementation into the NetworkLoad::notifyDidReceiveResponse(), remove a function |
| call, and the cognitive load to follow such a function call when reading the code. |
| |
| No functionality changed. So, no new tests. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::notifyDidReceiveResponse): Moved the implementation of NetworkLoad::sharedDidReceiveResponse() |
| into this function. |
| (WebKit::NetworkLoad::sharedDidReceiveResponse): Deleted. Moved its implementation into |
| NetworkLoad::notifyDidReceiveResponse(). |
| * NetworkProcess/NetworkLoad.h: |
| |
| 2018-04-13 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r230468): Improper assertion firing under STP |
| <rdar://problem/39411676> |
| |
| Unreviewed, rolling out an improper assertion. |
| |
| I added an assertion in Bug 184322 that should not have been added. I did not notice that this |
| call stack was always used in builds where NSApp is still active. Builds where we stop relying |
| on AppKit runloops uses a different code path to shut down. |
| |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::stopNSAppRunLoop): |
| |
| 2018-04-12 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn CSS Animations and CSS Transitions as Web Animations on by default |
| https://bugs.webkit.org/show_bug.cgi?id=184569 |
| <rdar://problem/38671301> |
| |
| Reviewed by Jon Lee. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-13 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [GStreamer] Convert GStreamerUtilities in GStreamerCommon and include the GStreamer smart pointer traits |
| https://bugs.webkit.org/show_bug.cgi?id=184533 |
| |
| Reviewed by Philippe Normand. |
| |
| Renamed GStreamerUtilities* files into GStreamerCommon* and |
| modified files including them accordingly. Include |
| GRefPtrGStreamer.h and GUniquePtrGStreamer.h in GStreamerCommon.h |
| to avoid problems destroying objects when those files are |
| forgotten to be included. |
| |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| * WebProcess/soup/WebProcessSoup.cpp: |
| |
| 2018-04-12 Beth Dakin <bdakin@apple.com> |
| |
| Fix the MOBILE_WIFI build |
| https://bugs.webkit.org/show_bug.cgi?id=184571 |
| -and corresponding- |
| <rdar://problem/39398181> |
| |
| Reviewed by Jer Noble. |
| |
| * config.h: |
| |
| 2018-04-12 Beth Dakin <bdakin@apple.com> |
| |
| Use -iframework to ensure that frameworks from user paths and system paths are |
| ordered appropriately |
| https://bugs.webkit.org/show_bug.cgi?id=184557 |
| -and corresponding- |
| rdar://problem/39386359 |
| |
| Reviewed by Dean Jackson. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-04-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Suppress UI for inputs of type file in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184556 |
| <rdar://problem/39062239> |
| |
| Reviewed by Andy Estes. |
| |
| When running in this mode, we don't have the facilities to present document picker UI. For now, just make this |
| feature fail gracefully. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel presentWithParameters:resultListener:]): |
| (-[WKFileUploadPanel platformSupportsPickerViewController]): |
| |
| 2018-04-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove block selection code |
| https://bugs.webkit.org/show_bug.cgi?id=184470 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove block selection code that isn't run and is currently not even used. |
| Had to put this back in for a bug in the mid-year release, but we're past that |
| so it's time for this to go away. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::stopAssistingNode): |
| (WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (toSelectionHandlePosition): Deleted. |
| (-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]): Deleted. |
| (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]): Deleted. |
| (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::saveImageToLibrary): |
| (WebKit::WebPageProxy::updateBlockSelectionWithTouch): Deleted. |
| (WebKit::WebPageProxy::didUpdateBlockSelectionWithTouch): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeAtWordBoundaryForPosition): |
| (WebKit::distanceBetweenRectsForPosition): Deleted. |
| (WebKit::rectsEssentiallyTheSame): Deleted. |
| (WebKit::unionDOMRanges): Deleted. |
| (WebKit::computeEdgeCenter): Deleted. |
| (WebKit::WebPage::expandedRangeFromHandle): Deleted. |
| (WebKit::WebPage::contractedRangeFromHandle): Deleted. |
| (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Deleted. |
| (WebKit::WebPage::rangeForBlockAtPoint): Deleted. |
| (WebKit::shouldExpand): Deleted. |
| (WebKit::WebPage::changeBlockSelection): Deleted. |
| (WebKit::WebPage::updateBlockSelectionWithTouch): Deleted. |
| |
| 2018-04-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't have selections get stuck in editable elements |
| https://bugs.webkit.org/show_bug.cgi?id=184483 |
| |
| Reviewed by Timothy Hatcher. |
| |
| When selecting in editable elements, if the keyboard does not come up, which is not required, |
| then the selections are stuck in that element. If you try and select something in web content, |
| it will only select in the editable element. By clearing the assisted node when clearing a selection, |
| it no longer sticks. Also, textSelectionAssistant should not be used as if we are currently editing. |
| Change it to the function we created for that purpose in a pervious patch. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView clearSelection]): |
| (-[WKContentView _isInteractingWithAssistedNode]): |
| |
| 2018-04-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Move libWPEWebInspectorResources.so to pkglibdir |
| https://bugs.webkit.org/show_bug.cgi?id=184379 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is important to allow parallel installation. |
| |
| * PlatformWPE.cmake: |
| |
| 2018-04-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Improve include hierarchy |
| https://bugs.webkit.org/show_bug.cgi?id=184376 |
| |
| Reviewed by Žan Doberšek. |
| |
| Install our headers under /usr/include/wpe-webkit-0.1/wpe instead of |
| /usr/include/wpe-0.1/WPE/wpe. Too much WPE, not enough WebKit! |
| |
| * PlatformWPE.cmake: |
| * wpe/wpe-webkit.pc.in: |
| |
| 2018-04-11 Andy Estes <aestes@apple.com> |
| |
| [iOS] Add a mechanism for holding Wi-Fi assertions |
| https://bugs.webkit.org/show_bug.cgi?id=184520 |
| <rdar://problem/39025726> |
| |
| Reviewed by Sam Weinig. |
| |
| Add plumbing for holding a Wi-Fi assertion on iOS as long as there are active |
| network data tasks. This functionality is turned off by default right now. |
| |
| * Configurations/Network-iOS.entitlements: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| * NetworkProcess/cocoa/WiFiAssertionHolder.cpp: Added. |
| (WebKit::ensureWiFiManagerClient): Create a global WiFiManagerClient when needed. |
| (WebKit::WiFiAssertionHolder::WiFiAssertionHolder): If this is the first active |
| Wi-Fi assertion holder, set the client's type to kWiFiClientTypeBackground. |
| (WebKit::WiFiAssertionHolder::~WiFiAssertionHolder): If the last active Wi-Fi |
| assertion holder is being destroyed, set the client's type back to |
| kWiFiClientTypeNormal. |
| * NetworkProcess/cocoa/WiFiAssertionHolder.h: Added. |
| * Platform/Logging.h: Added a logging channel for Wi-Fi assertions. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-12 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Switch to use always complex text code path |
| https://bugs.webkit.org/show_bug.cgi?id=183285 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Now that we have branched for 2.20, it's a good time to try using complex text path always. We can simply force |
| it for GTK+ port and see how it works for the whole release cycle and if we don't notice any issues or |
| performance regressions we release 2.22 with complex text path forced. A debug env variable is added to switch |
| back to auto without having to recompile. After 2.22 is released we can make a final decision and remove the env |
| variable. |
| |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Force complex text code path unless |
| WEBKIT_FORCE_COMPLEX_TEXT is present and set to 0. |
| |
| 2018-04-11 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors |
| https://bugs.webkit.org/show_bug.cgi?id=184513 |
| |
| Reviewed by Michael Catanzaro. |
| |
| webkit_web_view_new*() constructors should always expect a non-null |
| WebKitWebViewBackend object, forcing the user to specify how the |
| wpe_view_backend object is managed for the WebKitWebView that's being |
| created. |
| |
| webkitWebViewBackendCreateDefault() and the default |
| _WebKitWebViewBackend() constructor are removed. WPE-specific |
| webkit_web_view_new*() entrypoints are updated to bail if the passed-in |
| WebKitWebViewBackend object is null. Documentation is updated |
| accordingly. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewConstructed): |
| * UIProcess/API/wpe/WebKitWebViewBackend.cpp: |
| (webkitWebViewBackendCreateDefault): Deleted. |
| * UIProcess/API/wpe/WebKitWebViewBackendPrivate.h: |
| * UIProcess/API/wpe/WebKitWebViewWPE.cpp: |
| (webkit_web_view_new): |
| (webkit_web_view_new_with_context): |
| (webkit_web_view_new_with_related_view): |
| (webkit_web_view_new_with_settings): |
| (webkit_web_view_new_with_user_content_manager): |
| |
| 2018-04-11 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [curl][WebKit] Implement NetworkDataTaskCurl |
| https://bugs.webkit.org/show_bug.cgi?id=184488 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::create): |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: Added. |
| (WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): |
| (WebKit::NetworkDataTaskCurl::~NetworkDataTaskCurl): |
| (WebKit::NetworkDataTaskCurl::resume): |
| (WebKit::NetworkDataTaskCurl::suspend): |
| (WebKit::NetworkDataTaskCurl::cancel): |
| (WebKit::NetworkDataTaskCurl::invalidateAndCancel): |
| (WebKit::NetworkDataTaskCurl::state const): |
| (WebKit::NetworkDataTaskCurl::createCurlRequest): |
| (WebKit::NetworkDataTaskCurl::curlDidSendData): |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveBuffer): |
| (WebKit::NetworkDataTaskCurl::curlDidComplete): |
| (WebKit::NetworkDataTaskCurl::curlDidFailWithError): |
| (WebKit::NetworkDataTaskCurl::shouldRedirectAsGET): |
| (WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCurl::tryHttpAuthentication): |
| (WebKit::NetworkDataTaskCurl::restartWithCredential): |
| (WebKit::NetworkDataTaskCurl::appendCookieHeader): |
| (WebKit::NetworkDataTaskCurl::handleCookieHeaders): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: Added. |
| * PlatformWin.cmake: |
| |
| 2018-04-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Support pushing input view controllers onto the navigation stack |
| https://bugs.webkit.org/show_bug.cgi?id=184397 |
| <rdar://problem/39265294> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Currently, all input view controllers in extra zoom mode are presented modally. However, the latest iteration of |
| the HI specification depicts most of these view controllers (with the exception of time pickers) being presented |
| and dismissed via navigation stack. Since WebKit's iOS API surface doesn't force clients to embed WKWebViews |
| within a view controller with a corresponding UINavigationController, we cannot always guarantee that UI |
| presented when focusing form controls in a web view will be pushed onto the navigation stack; as such, the |
| approach taken in this patch will automatically allow WKWebView clients that already embed WKWebViews within a |
| UINavigationController to hook into this behavior, with modal presentation as a fallback. |
| |
| At a high level, this patch makes the following tweaks to implement this behavior: |
| |
| 1. Store the currently presented view controller using a single member variable |
| (_presentedFullScreenInputViewController) instead of having one for each type. This makes bookkeepping around |
| which view controller to present or dismiss much more straightforward. |
| |
| 2. Replace WKFocusedFormControlViewController with just WKFocusedFormControlView. This addresses problems with |
| pushing an input view controller onto the navigation stack after presenting the focused form control view |
| controller modally. Now, we'll only need to present or push one view controller on the navigation stack. |
| |
| 3. Remove -handleWheelEvent: forwarding to date and time pickers. Pushing date picker view controllers onto the |
| navigation stack rather than presenting them modally means that we end up in a state where neither the |
| WKContentView nor WKTimePickerViewController are first responder, which renders time pickers unusable. |
| Instead, have the WKTimePickerViewController actually become first responder when presenting. |
| |
| 4. Lastly, and most importantly: change -presentViewControllerForCurrentAssistedNode and |
| -dismissAllInputViewControllers to try and push onto a navigation stack if possible, and fall back to modal |
| presentation. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| |
| Remove the separate member variables for each type of input view controller, and instead have one to keep track |
| of the current (and only) presented input view controller. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| |
| Boilerplate renaming of _focusedFormControlViewController => _focusedFormControlView. |
| |
| (-[WKContentView reloadContextViewForPresentedListViewController]): |
| |
| Adjust for consolidation of the different input view controller member variables to a single member (see changes |
| in WKContentViewInteraction.h). |
| |
| (-[WKContentView addFocusedFormControlOverlay]): |
| (-[WKContentView removeFocusedFormControlOverlay]): |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers:]): |
| |
| Add an `animated` argument. In the case where a different view controller was presented after presenting the |
| input view controller, this allows us to dismiss the other view controller with animation, and directly reveal |
| the web view or focus overlay underneath. |
| |
| (-[WKContentView focusedFormControlViewDidSubmit:]): |
| (-[WKContentView focusedFormControlViewDidCancel:]): |
| (-[WKContentView focusedFormControlViewDidBeginEditing:]): |
| (-[WKContentView rectForFocusedFormControlView:]): |
| (-[WKContentView nextRectForFocusedFormControlView:]): |
| (-[WKContentView previousRectForFocusedFormControlView:]): |
| (-[WKContentView scrollViewForFocusedFormControlView:]): |
| (-[WKContentView actionNameForFocusedFormControlView:]): |
| (-[WKContentView focusedFormControlViewDidRequestNextNode:]): |
| (-[WKContentView focusedFormControlViewDidRequestPreviousNode:]): |
| (-[WKContentView hasNextNodeForFocusedFormControlView:]): |
| (-[WKContentView hasPreviousNodeForFocusedFormControlView:]): |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): |
| |
| Boilerplate renaming of focus overlay delegate methods. |
| |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Remove event forwarding hacks for date and time inputs, now that they directly become first responder. |
| |
| (-[WKContentView presentFocusedFormControlViewController:]): Deleted. |
| (-[WKContentView dismissFocusedFormControlViewController:]): Deleted. |
| |
| Renamed to -addFocusedFormControlOverlay and -removeFocusedFormControlOverlay. |
| |
| (-[WKContentView dismissAllInputViewControllers]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidSubmit:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidCancel:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): Deleted. |
| (-[WKContentView rectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| (-[WKContentView nextRectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| (-[WKContentView previousRectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| (-[WKContentView scrollViewForFocusedFormControlController:]): Deleted. |
| (-[WKContentView actionNameForFocusedFormControlController:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidRequestNextNode:]): Deleted. |
| (-[WKContentView focusedFormControlControllerDidRequestPreviousNode:]): Deleted. |
| (-[WKContentView hasNextNodeForFocusedFormControlController:]): Deleted. |
| (-[WKContentView hasPreviousNodeForFocusedFormControlController:]): Deleted. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.h: Removed. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.mm: Removed. |
| |
| Completely remove WKFocusedFormControlViewController; instead, just directly place the focused form overlay in |
| the WKWebView's hierarchy. In the case where we have a navigation stack to push to, we can no longer modally |
| present the focused form overlay as a separate view controller using the UINavigationController, and then |
| immediately push the input view controller on top of the navigation stack, since the navigation stack isn't |
| updated until after the animation of the focused form overlay presentation is complete. Rather than hack around |
| this limitation by dispatch_after-ing after presenting the overlay's view controller, we should just make the |
| overlay a view. This also fixes the case where a client embedding a WKWebView that is smaller than the bounds of |
| the screen will no longer see the entire screen dim when focusing an input, but instead, just the web content. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-11 Youenn Fablet <youenn@apple.com> |
| |
| Pass FetchOptions and SecurityOrigin as load parameters from WebProcess to NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184374 |
| |
| Reviewed by Chris Dumez. |
| |
| Pass full FetchOptions parameters as part of NetworkResourceLoadParameters. |
| This will allow handling redirection mode as well as credentials in case of cross origin redirections. |
| In case of SameOrigin credentials and there is a redirection from same-origin to cross-origin, |
| we will be able to stop using credentials without going to WebProcess. |
| |
| To handle properly cross-origin checks, we have to be able to use SecurityOrigin as in WebProcess. |
| We make WebProcess sends Origin Access White list information to NetworkProcess. |
| This allows supporting the white list when doing loading in NetworkProcess. |
| This only works consistently if all WebProcesses share the same whitelist. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| (WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry): |
| (WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry): |
| (WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRedirectedRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::create): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| * NetworkProcess/PingLoad.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::addOriginAccessWhitelistEntry): |
| (WebKit::InjectedBundle::removeOriginAccessWhitelistEntry): |
| (WebKit::InjectedBundle::resetOriginAccessWhitelists): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| |
| 2018-04-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] WaylandCompositorDisplay leaks its wl_display |
| https://bugs.webkit.org/show_bug.cgi?id=184406 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Since we allocate our own wl_display here, need to chain up to the parent constructor |
| passing NativeDisplayOwned::Yes, or it won't ever be released. Move the initialize call to |
| the create function to ensure it's called after the constructor completes. |
| |
| * WebProcess/gtk/WaylandCompositorDisplay.cpp: |
| (WebKit::WaylandCompositorDisplay::create): Fix a log message (drive-by). |
| (WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay): |
| |
| 2018-04-11 Youenn Fablet <youenn@apple.com> |
| |
| Use more r-values in NetworkResourceLoader |
| https://bugs.webkit.org/show_bug.cgi?id=184478 |
| |
| Reviewed by Chris Dumez. |
| |
| Pass load parameters as r-values to remove some unneeded copies. |
| Ditto for ResourceRequest inside NetworkResourceLoader. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad): |
| (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::NetworkResourceLoader): |
| (WebKit::NetworkResourceLoader::start): |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| (WebKit::NetworkResourceLoader::validateCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-04-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Missing label when focusing a <select> with a title attribute but no associated <label> |
| https://bugs.webkit.org/show_bug.cgi?id=184352 |
| <rdar://problem/39237683> |
| |
| Reviewed by Andy Estes. |
| |
| Currently, AssistedNodeInformation only sends the `title` of input elements to the UI process. This means that |
| any information requested in the UI process that is dependent on the `title` of the focused element is broken |
| in the case of select elements. An existing example of this is the title of the table view controller used to |
| present select menus on iPad. |
| |
| To fix this, we simply send the `title` of the focused element across, as long as the focused element is an |
| HTMLElement. This ensures that there's label text when focusing unlabeled select elements with titles in extra |
| zoom mode, and also fixes a currenly broken codepath where we show the title of the select in the presented view |
| controller's title. |
| |
| Test: fast/forms/ios/ipad/select-with-title.html |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView selectFormPopoverTitle]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Add new testing SPI to fetch the title of the UITableViewController presented for the currently focused select |
| element. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView selectFormPopoverTitle]): |
| * UIProcess/ios/forms/WKFormSelectControl.h: |
| * UIProcess/ios/forms/WKFormSelectControl.mm: |
| (-[WKFormSelectControl selectFormPopoverTitle]): |
| * UIProcess/ios/forms/WKFormSelectPopover.h: |
| * UIProcess/ios/forms/WKFormSelectPopover.mm: |
| (-[WKSelectPopover initWithView:hasGroups:]): |
| (-[WKSelectPopover tableViewController]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| |
| Always send the title across if the focused node is an HTMLElement. |
| |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-04-11 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230508. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Remove block selection code" |
| https://bugs.webkit.org/show_bug.cgi?id=184470 |
| https://trac.webkit.org/changeset/230508 |
| |
| 2018-04-11 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations on by default |
| https://bugs.webkit.org/show_bug.cgi?id=184491 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-04-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed test fix after r230468 |
| |
| Roll out an assertion added in r230468 that should not be present |
| until https://bugs.webkit.org/show_bug.cgi?id=184451 is landed. |
| |
| * Shared/mac/HangDetectionDisablerMac.mm: |
| (WebKit::setClientsMayIgnoreEvents): |
| |
| 2018-04-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed follow-up to r230468. |
| |
| Switch some RELEASE_ASSERTs in hot codepaths to normal DEBUG asserts. |
| |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::setCursor): |
| |
| 2018-04-10 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] Add UserAgentWin.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=184438 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * WebProcess/WebPage/win/WebPageWin.cpp: |
| (WebKit::WebPage::platformUserAgent const): |
| Use WebCore::standardUserAgentForURL. |
| |
| 2018-04-10 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove block selection code |
| https://bugs.webkit.org/show_bug.cgi?id=184470 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove block selection code that isn't run and is currently not even used. |
| Had to put this back in for a bug in the mid-year release, but we're past that |
| so it's time for this to go away. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::stopAssistingNode): |
| (WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (toSelectionHandlePosition): Deleted. |
| (-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]): Deleted. |
| (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]): Deleted. |
| (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::saveImageToLibrary): |
| (WebKit::WebPageProxy::updateBlockSelectionWithTouch): Deleted. |
| (WebKit::WebPageProxy::didUpdateBlockSelectionWithTouch): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::rangeAtWordBoundaryForPosition): |
| (WebKit::distanceBetweenRectsForPosition): Deleted. |
| (WebKit::rectsEssentiallyTheSame): Deleted. |
| (WebKit::unionDOMRanges): Deleted. |
| (WebKit::computeEdgeCenter): Deleted. |
| (WebKit::WebPage::expandedRangeFromHandle): Deleted. |
| (WebKit::WebPage::contractedRangeFromHandle): Deleted. |
| (WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Deleted. |
| (WebKit::WebPage::rangeForBlockAtPoint): Deleted. |
| (WebKit::shouldExpand): Deleted. |
| (WebKit::WebPage::changeBlockSelection): Deleted. |
| (WebKit::WebPage::updateBlockSelectionWithTouch): Deleted. |
| |
| 2018-04-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add a mechanism to zoom to fixed scales when double tapping in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184435 |
| <rdar://problem/38726260> |
| |
| Reviewed by Dean Jackson. |
| |
| Adds support for an alternate codepath when computing a zoom rect when double tapping that doesn't take the hit- |
| tested node into account, and instead cycles the zoom scale between 2 fixed values (in addition to the initial |
| scale). In the next patch, these fixed scales will be determined by computing zoom scales needed to make most of |
| the text on the page legible (i.e. the first text legibility zoom scale), and another to make all of the text on |
| the page legible, with the exception of outliers (this is the second text legibility zoom scale). |
| |
| See comments below for more detail. |
| |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/Cocoa/ViewGestureController.messages.in: |
| * UIProcess/ios/SmartMagnificationController.h: |
| * UIProcess/ios/SmartMagnificationController.messages.in: |
| * UIProcess/ios/SmartMagnificationController.mm: |
| (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture): |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::dispatchDidCollectGeometryForSmartMagnificationGesture): |
| |
| Rename the boolean `isReplacedElement` argument to `fitEntireRect` instead. The UI process only uses this on iOS |
| to determine whether or not to fit the entire element rect to the viewport and add padding. This patch renames |
| this variable because we are not zooming to a replaced element in the case where text legibility on the page |
| (rather than element geometry) is being used to figure out the zoom scale, but we still want to fit the entire |
| target rect to the viewport. |
| |
| (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture): |
| |
| If text legiblity zoom scaling is preferred, then compute first and second-level text legibility zoom scales to |
| zoom to upon double tap (where the second zoom scale is greater than the first). To choose a target zoom |
| scale, choose the lowest target zoom scale that is at least a small amount less than the current scale. If |
| neither of the two scales fulfill this description, then zoom back out to the initial scale. This has the effect |
| of consistently cycling between all three zoom scales as the user double taps. |
| |
| (WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales): |
| |
| Introduce a new helper method that computes and caches target scales to zoom to when double tapping to zoom. If |
| a cached pair of target scales is already present, it skips this computation and immediately returns it. |
| |
| (WebKit::ViewGestureGeometryCollector::computeZoomInformationForNode): |
| (WebKit::ViewGestureGeometryCollector::computeMinimumAndMaximumViewportScales const): |
| |
| Factor out logic to compute min and max zoom scales into a separate helper, and call it from both |
| computeZoomInformationForNode and computeTextLegibilityScales. |
| |
| (WebKit::ViewGestureGeometryCollector::mainFrameDidLayout): |
| |
| Invalidate cached text legibility scales when layout is triggered. |
| |
| * WebProcess/WebPage/ViewGestureGeometryCollector.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::mainFrameDidLayout): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::viewportConfiguration const): |
| |
| Expose WebPage's ViewportConfiguration as a const reference. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformPrefersTextLegibilityBasedZoomScaling const): |
| |
| Adds a platform hook for opting into text-legibility-based zoom scaling instead of regular hit-testing-based |
| zoom scaling heuristics. |
| |
| 2018-04-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix availability annotations for _WKAttachment SPI |
| https://bugs.webkit.org/show_bug.cgi?id=184473 |
| <rdar://problem/39319732> |
| |
| Reviewed by Dan Bernstein. |
| |
| _WKAttachmentInfo is available in WK_MAC_TBA and WK_IOS_TBA, but the SPI method -[_WKAttachment requestInfo:] |
| is currently available in macOS 10.13.4 and iOS 11.3. Instead, the availability of this SPI should match the |
| availability of the SPI object it depends on. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| |
| 2018-04-10 Chris Dumez <cdumez@apple.com> |
| |
| Avoid constructing a service worker RegistrationStore for private sessions |
| https://bugs.webkit.org/show_bug.cgi?id=184463 |
| <rdar://problem/36613948> |
| |
| Reviewed by Youenn Fablet. |
| |
| Avoid constructing a service worker RegistrationStore for private sessions since there |
| is no need for persistence and the registrationDatabaseDirectory is the empty string in |
| such cases. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::initializeWebsiteDataStore): |
| |
| 2018-04-10 Andy Estes <aestes@apple.com> |
| |
| [iOS] Navigate to URL and page number annotations in WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184410 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Implemented navigation to URL and page number (same-document) link annotations in PDFs. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _scrollToURLFragment:]): |
| (-[WKPDFView web_didSameDocumentNavigation:]): |
| (-[WKPDFView pdfHostViewController:updatePageCount:]): |
| (-[WKPDFView pdfHostViewController:goToURL:]): |
| (-[WKPDFView pdfHostViewController:goToPageIndex:withViewFrustum:]): |
| |
| 2018-04-10 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKPDFView should conform to _WKWebViewPrintProvider |
| https://bugs.webkit.org/show_bug.cgi?id=184471 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _printProvider]): |
| |
| The print provider will always be either _contentView or _customContentView, but |
| might not be _currentContentView. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _wk_pageCountForPrintFormatter:]): |
| |
| Asked _hostViewController for the page count, clamped to 1 if |
| -[_WKWebViewPrintFormatter snapshotFirstPage] is YES. |
| |
| (-[WKPDFView _wk_printedDocument]): |
| |
| Created a CGPDFDocumentRef from _data and returned it. |
| |
| 2018-04-10 Youenn Fablet <youenn@apple.com> |
| |
| Beacon redirect responses should be CORS validated |
| https://bugs.webkit.org/show_bug.cgi?id=184378 |
| |
| Reviewed by Chris Dumez. |
| |
| Add CORS checks to any redirection response if mode is CORS. |
| Update response tainting and redirected accordingly. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::validateResponse): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| |
| 2018-04-10 Sihui Liu <sihui_liu@apple.com> |
| |
| Loading of multipart response was cancelled because of content policy set in WebFrameLoaderClient::dispatchDecidePolicyForResponse |
| https://bugs.webkit.org/show_bug.cgi?id=184268 |
| <rdar://problem/39144446> |
| |
| Reviewed by Chris Dumez. |
| |
| Webpage for multipart stream responses failed to refresh because content policy was set to |
| be ignore when provisonalDocumentLoader was null and navigation ID could not be retrieved. |
| As loading should not stop in this case, we set navigation ID 0 and still ask for content |
| policy. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-04-10 Andy Estes <aestes@apple.com> |
| |
| [iOS] Use PDFKit to render PDFs in WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=184387 |
| |
| Reviewed by Beth Dakin. |
| |
| Adopted PDFHostViewController for rendering PDFs in WKWebView. |
| |
| This patch implements rendering the PDF document and page number indicator. Link |
| navigation, find-in-page, and printing will be implemented in follow-up patches. |
| |
| WKLegacyPDFView is still the default PDF view. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| Linked WebKit with PDFKit on iOS. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _currentContentView]): |
| (-[WKWebView viewForZoomingInScrollView:]): |
| |
| When WKPDFView loads a PDF document, it replaces itself with a view vended by |
| PDFHostViewController as the WKScrollView's content view. Abstracted WKWebView's |
| concept of the "current content view" to be either the WKContentView or a view of |
| the custom content view's choosing (-web_contentView). |
| |
| (-[WKWebView scrollViewWillBeginZooming:withView:]): |
| (-[WKWebView scrollViewDidZoom:]): |
| (-[WKWebView scrollViewDidEndZooming:withView:atScale:]): |
| |
| Forwarded these calls to _customContentView if it responds to the equivalent |
| WKWebViewContentProvider selectors. |
| |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| |
| Defined new protocol selectors. |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| * UIProcess/ios/WKLegacyPDFView.h: |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| |
| Changed ENABLE(WKPDFVIEW) to ENABLE(WKLEGACYPDFVIEW). |
| |
| (-[WKLegacyPDFView web_contentView]): |
| |
| Added. Returns self as the content view. |
| |
| * UIProcess/ios/WKPDFView.h: Added. |
| * UIProcess/ios/WKPDFView.mm: Added. |
| (-[WKPDFView dealloc]): |
| |
| Removed the host view and page number indicator from their superviews. |
| |
| (-[WKPDFView gestureRecognizerShouldBegin:]): |
| |
| Forwarded to _hostViewController. |
| |
| (-[WKPDFView web_initWithFrame:webView:]): |
| |
| Set ours and the scroll view's background color to UIColor.grayColor to match |
| WKLegacyPDFView. |
| |
| (-[WKPDFView web_setContentProviderData:suggestedFilename:]): |
| |
| Created a PDFHostViewController and set its root view as the scroll view's content |
| view after removing the WKPDFView itself. This allows WKPDFView to act as a |
| placeholder content view until the PDF is loaded. Added the host view controller's |
| page number indicator to the fixed overlay view. Finally, loaded the PDF document |
| by calling -[PDFHostViewController setDocumentData:withScrollView:]. |
| |
| (-[WKPDFView _offsetForPageNumberIndicator]): |
| |
| Computed an offset for the page number indicator like WKLegacyPDFView did, taking |
| into account the overlaid accessory views inset, computed unobscured safe area |
| inset, and computed obscured inset. |
| |
| (-[WKPDFView _movePageNumberIndicatorToPoint:animated:]): |
| |
| Moved the page number indicator using the margin and animation duration from |
| WKLegacyPDFView. |
| |
| (-[WKPDFView _updateLayoutAnimated:]): |
| |
| Added a convenience method to update the PDF view layout and position the page |
| number indicator. |
| |
| (-[WKPDFView web_setMinimumSize:]): |
| |
| Updated our own frame in case we are still the placeholder content view. |
| Called -_updateLayoutAnimated:. |
| |
| (-[WKPDFView web_setOverlaidAccessoryViewsInset:]): |
| |
| Stored the inset and called -_updateLayoutAnimated:. |
| |
| (-[WKPDFView web_computedContentInsetDidChange]): |
| |
| Called -_updateLayoutAnimated:. |
| |
| (-[WKPDFView web_setFixedOverlayView:]): |
| |
| Stored the fixed overlay view. |
| |
| (-[WKPDFView web_didSameDocumentNavigation:]): |
| (-[WKPDFView web_countStringMatches:options:maxCount:]): |
| (-[WKPDFView web_findString:options:maxCount:]): |
| (-[WKPDFView web_hideFindUI]): |
| |
| Added FIXMEs. |
| |
| (-[WKPDFView web_contentView]): |
| |
| If there is a host view controller, return its root view. Otherwise, return self. |
| |
| (-[WKPDFView web_scrollViewDidScroll:]): |
| (-[WKPDFView web_scrollViewWillBeginZooming:withView:]): |
| (-[WKPDFView web_scrollViewDidEndZooming:withView:atScale:]): |
| (-[WKPDFView web_scrollViewDidZoom:]): |
| |
| Called -[PDFHostViewController updatePDFViewLayout]. |
| |
| (-[WKPDFView web_dataRepresentation]): |
| |
| Returned _data. |
| |
| (-[WKPDFView web_suggestedFilename]): |
| |
| Returned _suggestedFilename. |
| |
| (-[WKPDFView web_isBackground]): |
| |
| Returned self.isBackground. |
| |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView web_contentView]): |
| |
| Added. Returns self as the content view. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-10 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Race condition when destroying webprocesses |
| https://bugs.webkit.org/show_bug.cgi?id=184445 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Ensure that the WebProcess is properly closing its pages when it's exiting because |
| the UIProcess has invalidated the IPC connection. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::didClose): |
| |
| 2018-04-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add missing availability macros after r230462 |
| https://bugs.webkit.org/show_bug.cgi?id=184426 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Annotate new SPI added in r230462 with the appropriate availability macros. |
| |
| * UIProcess/API/Cocoa/WKViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-04-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Add ProcessPrivilege assertions to places that access NSApp |
| https://bugs.webkit.org/show_bug.cgi?id=184322 |
| <rdar://problem/39194560> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Add ProcessPrivilege assertions to places where we interact with NSApp so |
| that we can prevent accidentally using them in the WebContent process. |
| |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::stopNSAppRunLoop): |
| * Shared/mac/HangDetectionDisablerMac.mm: |
| (WebKit::setClientsMayIgnoreEvents): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::WebViewImpl): |
| (WebKit::WebViewImpl::becomeFirstResponder): |
| (WebKit::WebViewImpl::pluginFocusOrWindowFocusChanged): |
| (WebKit::WebViewImpl::validateUserInterfaceItem): |
| (WebKit::WebViewImpl::startSpeaking): |
| (WebKit::WebViewImpl::stopSpeaking): |
| (WebKit::applicationFlagsForDrag): |
| (WebKit::WebViewImpl::doneWithKeyEvent): |
| * UIProcess/Gamepad/mac/UIGamepadProviderMac.mm: |
| (WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::enterFullscreen): |
| (WebKit::PluginProcessProxy::beginModal): |
| (WebKit::PluginProcessProxy::endModal): |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::DisplayLink): |
| (WebKit::DisplayLink::~DisplayLink): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::setCursor): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::getIsSpeaking): |
| (WebKit::WebPageProxy::speak): |
| (WebKit::WebPageProxy::stopSpeaking): |
| (WebKit::WebPageProxy::startDisplayLink): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| |
| 2018-04-09 John Wilander <wilander@apple.com> |
| |
| Refactor Ignore HSTS code |
| https://bugs.webkit.org/show_bug.cgi?id=184433 |
| <rdar://problem/39298238> |
| |
| Reviewed by Darin Adler. |
| |
| This patch refactors our ignore HSTS code. The convenience functions are moved |
| out of CFNetwork SPI in PAL, and into where they are used. It also switches |
| from performSelector: calls to straight function calls, after checking that |
| there is a responder. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (schemeWasUpgradedDueToDynamicHSTS): |
| (setIgnoreHSTS): |
| (ignoreHSTS): |
| Add convenience functions here since they were moved out of |
| CFNetworkSPI.h. |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Rename UNUSED to BUNUSED |
| https://bugs.webkit.org/show_bug.cgi?id=184093 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _getApplicationManifestWithCompletionHandler:]): |
| |
| 2018-04-09 Timothy Hatcher <timothy@apple.com> |
| |
| Add support for setting a background color on WKWebView and WKView |
| https://bugs.webkit.org/show_bug.cgi?id=184426 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKViewPrivate.h: Added _backgroundColor property. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _backgroundColor]): Added. Call through to WebViewImpl. |
| (-[WKWebView _setBackgroundColor:]): Added. Call through to WebViewImpl. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Added _backgroundColor property. |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _backgroundColor]): Added. Call through to WebViewImpl. |
| (-[WKView _setBackgroundColor:]): Added. Call through to WebViewImpl. |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setBackgroundColor): Added. |
| (WebKit::WebViewImpl::backgroundColor const): Added. |
| (WebKit::WebViewImpl::updateLayer): Use m_backgroundColor when set. |
| |
| 2018-04-09 Yousuke Kimoto <yousuke.kimoto@sony.com> and Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] Add WebKit Shared/win event files for wincairo webkit |
| https://bugs.webkit.org/show_bug.cgi?id=183043 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/NativeWebKeyboardEvent.h: |
| (WebKit::NativeWebKeyboardEvent::nativeEvent const): |
| * Shared/NativeWebMouseEvent.h: |
| (WebKit::NativeWebMouseEvent::nativeEvent const): |
| * Shared/NativeWebTouchEvent.h: |
| * Shared/NativeWebWheelEvent.h: |
| (WebKit::NativeWebWheelEvent::nativeEvent const): |
| * Shared/win/NativeWebKeyboardEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): |
| * Shared/win/NativeWebMouseEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::NativeWebMouseEvent::NativeWebMouseEvent): |
| * Shared/win/NativeWebTouchEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebTouchEvent.h. |
| (WebKit::NativeWebTouchEvent::NativeWebTouchEvent): |
| * Shared/win/NativeWebWheelEventWin.cpp: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::NativeWebWheelEvent::NativeWebWheelEvent): |
| * Shared/win/WebEventFactory.cpp: Added. |
| (WebKit::relativeCursorPosition): |
| (WebKit::point): |
| (WebKit::horizontalScrollChars): |
| (WebKit::verticalScrollLines): |
| (WebKit::clickCount): |
| (WebKit::IsKeyInDownState): |
| (WebKit::modifiersForEvent): |
| (WebKit::modifiersForCurrentKeyState): |
| (WebKit::keyboardEventTypeForEvent): |
| (WebKit::isSystemKeyEvent): |
| (WebKit::isKeypadEvent): |
| (WebKit::textFromEvent): |
| (WebKit::unmodifiedTextFromEvent): |
| (WebKit::keyIdentifierFromEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::WebEventFactory::createWebWheelEvent): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * Shared/win/WebEventFactory.h: Copied from Source/WebKit/Shared/NativeWebMouseEvent.h. |
| (WebKit::createNativeEvent): |
| |
| 2018-04-09 Brent Fulgham <bfulgham@apple.com> |
| |
| WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll is directly accessing NSScreen |
| https://bugs.webkit.org/show_bug.cgi?id=184344 |
| <rdar://problem/39224969> |
| |
| Reviewed by Per Arne Vollan. |
| |
| The implementation of targetPositionInWindowForSelectionAutoscroll uses the display ID to get the |
| screen boundaries of the current display. This causes a bunch of interaction with NSScreen that |
| we do not want to allow in the WebContent process. |
| |
| Instead, we should just use the cached screen information the WebContent process already possesses. |
| |
| This patch makes the following changes: |
| 1. We now retrieve the screen rect of the page's display from the cache, rather than interacting with |
| the WindowServer directly. |
| 2. Add a new 'toUserSpaceForPrimaryScreen' so we don't have to deal with a nil NSWindow when computing |
| the user space version of the coordinates. A nil Window just means we want to get coordinates in |
| terms of the primary display. |
| 3. Keep track of the primary display so we can refer to it later. |
| 4. Modify the IPC messages to include the primary display's ID so we can easily access it later. |
| 5. Modify the PlatformScreen methods to actually use the primary display when appropriate, rather |
| than whichever screen happened to hash to the lowest value. |
| |
| Reviewed by Per Arne Vollan. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::displayReconfigurationCallBack): Update for new getScreenProperties implementation. |
| (WebKit::WebProcessPool::initializeNewWebProcess): Ditto. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setScreenProperties): Ditto. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: Ditto. |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Add API version to library soname and pkg-config files |
| https://bugs.webkit.org/show_bug.cgi?id=180608 |
| |
| Reviewed by Žan Doberšek. |
| |
| * PlatformWPE.cmake: |
| * wpe/wpe-webkit.pc.in: |
| |
| 2018-04-09 Jer Noble <jer.noble@apple.com> |
| |
| Fix the selection assistant selectionView build |
| https://bugs.webkit.org/show_bug.cgi?id=184423 |
| <rdar://problem/39288235> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _didExitStableState]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _updateChangedSelection:]): |
| |
| 2018-04-09 Megan Gardner <megan_gardner@apple.com> |
| |
| Switch to UIWKTextInteractionAssistant for non-editable text |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| |
| Switch to only using one assistant for text selection. |
| |
| Reviewed by Timothy Hatcher and Andy Estes. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, move 'using namespace' back to the right place after r230429 |
| |
| * Shared/glib/ProcessExecutablePathGLib.cpp: |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r230390. |
| |
| Broke accelerated compositing |
| |
| Reverted changeset: |
| |
| "[GTK] WaylandCompositorDisplay leaks its wl_display" |
| https://bugs.webkit.org/show_bug.cgi?id=184406 |
| https://trac.webkit.org/changeset/230390 |
| |
| 2018-04-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Disable fast clicking by default in extra zoom mode |
| https://bugs.webkit.org/show_bug.cgi?id=184411 |
| <rdar://problem/38726867> |
| |
| Reviewed by Andy Estes. |
| |
| As it turns out, existing fast-clicking heuristics don't work so well in extra zoom mode. Even at device-width, |
| since the page is scaled to fit within the viewport, having single taps take precedence over double taps leads |
| to a confusing experience when trying to double tap to zoom further on content that contains links and other |
| click targets. Revert to legacy behavior here by disabling these heuristics. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| 2018-04-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add an SPI hook for clients to opt in to focus overlay UI |
| https://bugs.webkit.org/show_bug.cgi?id=184370 |
| <rdar://problem/39250494> |
| |
| Reviewed by Timothy Hatcher and Andy Estes. |
| |
| Add a new SPI hook for internal clients to opt in to showing the focused form control overlay. By default, the |
| overlay is not shown. |
| |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Use GNU install directories |
| https://bugs.webkit.org/show_bug.cgi?id=184377 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Merge ProcessExecutablePathGtk and ProcessExecutablePathWPE into ProcessExecutablePathGLib. |
| WPE will now load its secondary processes from PKGLIBEXECDIR, like WebKitGTK+. |
| |
| * PlatformWPE.cmake: |
| * Shared/glib/ProcessExecutablePathGLib.cpp: Renamed from Source/WebKit/Shared/gtk/ProcessExecutablePathGtk.cpp. |
| (WebKit::getExecutablePath): |
| (WebKit::findWebKitProcess): |
| (WebKit::executablePathOfWebProcess): |
| (WebKit::executablePathOfPluginProcess): |
| (WebKit::executablePathOfNetworkProcess): |
| (WebKit::executablePathOfStorageProcess): |
| * Shared/wpe/ProcessExecutablePathWPE.cpp: Removed. |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| |
| 2018-04-09 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] WaylandCompositorDisplay leaks its wl_display |
| https://bugs.webkit.org/show_bug.cgi?id=184406 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/gtk/WaylandCompositorDisplay.cpp: |
| (WebKit::WaylandCompositorDisplay::create): Fix a log message (drive-by). |
| (WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay): Fix the leak. |
| |
| 2018-04-08 Zan Dobersek <zdobersek@igalia.com> |
| |
| Non-Cocoa ports use default directory for ServiceWorker data during testing |
| https://bugs.webkit.org/show_bug.cgi?id=183784 |
| |
| Reviewed by Youenn Fablet. |
| |
| Add API to WKWebsiteDataStore that enables setting and retrieving the |
| service worker registration directory for a given data store object. |
| This enables setting the temporary directory for testing purposes in |
| WebKitTestRunner. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreCopyServiceWorkerRegistrationDirectory): |
| (WKWebsiteDataStoreSetServiceWorkerRegistrationDirectory): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-04-08 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [CMake] WebKit should link to WebCore as a PRIVATE library if WebCore is a static library |
| https://bugs.webkit.org/show_bug.cgi?id=184127 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * CMakeLists.txt: Link with WebCore as private, |
| WebCoreHeaderInterface as public to WebKit if WebCore is a static |
| library. |
| * CMakeLists.txt: |
| * PlatformGTK.cmake: Added PRIVATE keyword for WebKit_LIBRARIES. |
| * PlatformWPE.cmake: Ditto. |
| * PlatformWin.cmake: Ditto. |
| |
| 2018-04-08 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKContentView and WKLegacyPDFView should share application state tracking logic |
| https://bugs.webkit.org/show_bug.cgi?id=184402 |
| |
| Reviewed by Dan Bernstein. |
| |
| WKContentView and WKLegacyPDFView have nearly identical logic for tracking |
| application foreground state. Let's share it so we can more easily create new |
| content views with proper application state tracking. |
| |
| * UIProcess/ios/WKApplicationStateTrackingView.h: Added. |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: Added. |
| (-[WKApplicationStateTrackingView initWithFrame:webView:]): |
| (-[WKApplicationStateTrackingView willMoveToWindow:]): |
| (-[WKApplicationStateTrackingView didMoveToWindow]): |
| (-[WKApplicationStateTrackingView _applicationDidEnterBackground]): |
| (-[WKApplicationStateTrackingView _applicationDidCreateWindowContext]): |
| (-[WKApplicationStateTrackingView _applicationDidFinishSnapshottingAfterEnteringBackground]): |
| (-[WKApplicationStateTrackingView _applicationWillEnterForeground]): |
| (-[WKApplicationStateTrackingView isBackground]): |
| |
| Moved common logic from WKContentView and WKLegacyPDFView into |
| WKApplicationStateTrackingView. |
| |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView initWithFrame:processPool:configuration:webView:]): |
| (-[WKContentView willMoveToWindow:]): |
| (-[WKContentView _applicationDidCreateWindowContext]): |
| (-[WKContentView didMoveToWindow]): Deleted. |
| (-[WKContentView isBackground]): Deleted. |
| (-[WKContentView _applicationDidEnterBackground]): Deleted. |
| (-[WKContentView _applicationDidFinishSnapshottingAfterEnteringBackground]): Deleted. |
| (-[WKContentView _applicationWillEnterForeground]): Deleted. |
| |
| Made WKContentView a subclass of WKApplicationStateTrackingView. |
| |
| * UIProcess/ios/WKLegacyPDFView.h: |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| (-[WKLegacyPDFView web_initWithFrame:webView:]): |
| (-[WKLegacyPDFView web_isBackground]): |
| (-[WKLegacyPDFView _applicationWillEnterForeground]): |
| (-[WKLegacyPDFView willMoveToWindow:]): Deleted. |
| (-[WKLegacyPDFView didMoveToWindow]): Deleted. |
| (-[WKLegacyPDFView _applicationDidEnterBackground]): Deleted. |
| (-[WKLegacyPDFView _applicationDidCreateWindowContext]): Deleted. |
| (-[WKLegacyPDFView _applicationDidFinishSnapshottingAfterEnteringBackground]): Deleted. |
| |
| Made WKLegacyPDFView a subclass of WKApplicationStateTrackingView. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-08 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Keep library validation disabled for WebContent.Development |
| https://bugs.webkit.org/show_bug.cgi?id=184393 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebContent.Development.entitlements: Added. Includes the |
| com.apple.security.cs.disable-library-validation entitlement set to true. |
| * Configurations/WebContentService.Development.xcconfig: Set CODE_SIGN_ENTITLEMENTS to the |
| above. |
| * WebKit.xcodeproj/project.pbxproj: Added reference to new file. |
| |
| 2018-04-06 Brian Burg <bburg@apple.com> |
| |
| REGRESSION(r228371): WebAutomationSession::deleteAllCookies doesn't delete some cookies |
| https://bugs.webkit.org/show_bug.cgi?id=184334 |
| <rdar://problem/39212863> |
| |
| Reviewed by Timothy Hatcher. |
| |
| When WebDriver adds a cookie for 'localhost', it actually uses the domain '.localhost' per RFC. |
| When deleting cookies, we first fetch all cookies matching the document's hostname, and |
| then delete them one by one. However, this code path does not add the dot prefix. This causes |
| no cookies to match the requested domain, and thus none of them are deleted. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::domainByAddingDotPrefixIfNeeded): Extract this helper method. |
| (WebKit::WebAutomationSession::addSingleCookie): Use helper method. |
| (WebKit::WebAutomationSession::deleteAllCookies): Add a dot prefix when |
| requesting to delete all cookies for a hostname. |
| |
| 2018-04-06 Youenn Fablet <youenn@apple.com> |
| |
| Response headers should be filtered when sent from NetworkProcess to WebProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184310 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Pass destination parameter to NetworkResourceLoader. |
| Use new sanitization routine to filter response headers as needed: |
| - Cross-origin routines are filtered by removing any non CORS allowed headers. |
| - Same-origin responses are filtered by removing non used headers, except when filtering would be visible by JS (XHR, fetch). |
| In all cases, Set-Cookie/Set-Cookie2 headers are filtered out. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::sanitizeResponseIfPossible): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::updatePreferencesStore): |
| |
| 2018-04-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Make all sync IPCs during ScriptDisallowedScope set DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| https://bugs.webkit.org/show_bug.cgi?id=182449 |
| <rdar://problem/39222541> |
| |
| Reviewed by Chris Dumez. |
| |
| Release assert that a sync IPC inside ScriptDisallowedScope sets DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| to avoid executing arbitrary scripts as a result of processing incoming sync IPCs. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::sendSync): Added the release assertion. |
| |
| 2018-04-05 Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION (r230223): LayoutTest http/tests/contentextensions/css-display-none-overflows-rule-data-1.html is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=184306 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * NetworkProcess/NetworkContentRuleListManager.cpp: |
| (WebKit::NetworkContentRuleListManager::addContentRuleLists): |
| |
| 2018-04-05 Brent Fulgham <bfulgham@apple.com> |
| |
| WebContent process is calling CGDisplayUsesInvertedPolarity |
| https://bugs.webkit.org/show_bug.cgi?id=184337 |
| <rdar://problem/39215702> |
| |
| Reviewed by Zalan Bujtas. |
| |
| The PlatformScreenMac code is still calling display-related routines directly, specifically |
| CGDisplayUsesInvertedPolarity and CGDisplayUsesForceToGray. These should be brokered from |
| the UIProcess. |
| |
| There's also no reason to avoid the brokering behavior on current WebKit builds. Remove |
| the compile guards so all macOS builds use this behavior. |
| |
| Finally, add some ProcessPrivilege assertions to guard against accidentally calling these |
| routines in the future. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): Activate screen brokering code for all builds. |
| * WebProcess/WebProcess.cpp: Ditto. |
| * WebProcess/WebProcess.h: Ditto. |
| * WebProcess/WebProcess.messages.in: Ditto. |
| |
| 2018-04-05 Brady Eidson <beidson@apple.com> |
| |
| Process Swap on Navigation causes many webpages to hang due to attempted process swap for iframe navigations. |
| <rdar://problem/39162236> and https://bugs.webkit.org/show_bug.cgi?id=184318 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): Don't consider a swap if the navigation is not in the main frame. |
| |
| 2018-04-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| WebContent process sometimes hangs in WebProcess::ensureNetworkProcessConnection |
| https://bugs.webkit.org/show_bug.cgi?id=184326 |
| |
| Reviewed by Chris Dumez. |
| |
| The hang was caused by UI process never sending the reply back to GetNetworkProcessConnection |
| due to m_pendingOutgoingMachMessage being set and the event handler for DISPATCH_MACH_SEND_POSSIBLE |
| never getting called. This is because the event handler registration happens asynchronously, |
| and may not have completed by the time we send the first IPC to the web content process |
| in which case it can timeout and we may never get the callback. |
| |
| Fixed the hang by waiting for the event handler registration to be completed using |
| dispatch_source_set_registration_handler. To do this, this patch adds a new boolean instance variable, |
| m_isInitializingSendSource, to Connection which is set to true between the time mach port is created |
| and until the event handler registration has been completed. platformCanSendOutgoingMessages returns |
| false while m_isInitializingSendSource is set to prevent the attempt to send messages like we do when |
| m_pendingOutgoingMachMessage is set to true. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::m_isInitializingSendSource): Added. |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInvalidate): Set m_isInitializingSendSource to false. |
| (IPC::Connection::sendMessage): Assert that m_isInitializingSendSource is false. |
| (IPC::Connection::platformCanSendOutgoingMessages const): Return false if m_isInitializingSendSource |
| is set to true. |
| (IPC::Connection::sendOutgoingMessage): Assert that m_isInitializingSendSource is false. |
| (IPC::Connection::initializeSendSource): Set m_isInitializingSendSource to true temporarily until |
| dispatch_source_set_registration_handler's callback is called. Resume and send any pending outgoing |
| messages. |
| (IPC::Connection::resumeSendSource): Extracted from initializeSendSource. |
| |
| 2018-04-05 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC data channel only applications require capture permissions for direct connections |
| https://bugs.webkit.org/show_bug.cgi?id=174500 |
| <rdar://problem/34134281> |
| |
| Unreviewed. |
| Changed the code to suppress: "error: unused variable 'error' [-Werror,-Wunused-variable]" |
| Added some logging to this error case as a side bonus. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| |
| 2018-04-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r229831): Test WebKit2.ProvisionalURLAfterWillSendRequestCallback times out since r229831 |
| https://bugs.webkit.org/show_bug.cgi?id=184293 |
| |
| Reviewed by Alex Christensen. |
| |
| The problem is that after willSendRequest callback changes the request, the load is cancelled while |
| transitioning to committed state. This happens because the load is not waiting for the response policy check, so |
| it continues and when transitioning to committed, FrameLoader::closeURL() invalidates the current policy check |
| that causes a load failure. The new request returned by the API doesn't have any requester, so it's no longer |
| considered a main resource load. In the network process the resource load task doesn't wait for the response |
| policy and continues the load, sending the data to the web process. Once the first data is received, the load |
| transitions to commit, but the response policy check is still ongoing. This can only happen when using the C API |
| (I don't know about the Cocoa API), but not with the GLib API because it doesn't allow to create a new request, |
| only to modify the passed in one. With the C API we loss other internal things of the request like the priority, |
| but I guess the most important one is the requester. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillSendRequest): |
| |
| 2018-04-04 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230283. |
| |
| Caused webkitpy test failures. |
| |
| Reverted changeset: |
| |
| "Use CompletionHandlers for DelayedReplies" |
| https://bugs.webkit.org/show_bug.cgi?id=182269 |
| https://trac.webkit.org/changeset/230283 |
| |
| 2018-04-04 Youenn Fablet <youenn@apple.com> |
| |
| webrtc/video-update-often.html is flakily crashing on iOS simulator Debug |
| https://bugs.webkit.org/show_bug.cgi?id=184022 |
| |
| Reviewed by Jer Noble. |
| |
| Remove client context once the new context identifier is set. |
| Covered by test no longer crashing locally. |
| |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::setUpPlaybackControlsManager): |
| |
| 2018-04-04 Youenn Fablet <youenn@apple.com> |
| |
| WebRTC data channel only applications require capture permissions for direct connections |
| https://bugs.webkit.org/show_bug.cgi?id=174500 |
| <rdar://problem/34134281> |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for MDNS registration and resolution by NetworkProcess. |
| WebProcess gives instruction to do the actual registrations/resolutions. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| (WebKit::NetworkConnectionToWebProcess::mdnsRegister): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: Added. |
| (WebKit::NetworkMDNSRegister::NetworkMDNSRegister): |
| (WebKit::NetworkMDNSRegister::~NetworkMDNSRegister): |
| (WebKit::NetworkMDNSRegister::unregisterMDNSNames): |
| (WebKit::PendingRegistrationRequest::PendingRegistrationRequest): |
| (WebKit::registerMDNSNameCallback): |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| (WebKit::PendingResolutionRequest::PendingResolutionRequest): |
| (WebKit::PendingResolutionRequest::~PendingResolutionRequest): |
| (WebKit::PendingResolutionRequest::timeout): |
| (WebKit::resolveMDNSNameCallback): |
| (WebKit::NetworkMDNSRegister::resolveMDNSName): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.h: Added. |
| * NetworkProcess/webrtc/NetworkMDNSRegister.messages.in: Added. |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebRTCMDNSICECandidatesEnabled): |
| (WKPreferencesGetWebRTCMDNSICECandidatesEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| * WebProcess/Network/webrtc/LibWebRTCNetwork.h: |
| (WebKit::LibWebRTCNetwork::mdnsRegister): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::unregisterMDNSNames): |
| (WebKit::LibWebRTCProvider::registerMDNSName): |
| (WebKit::LibWebRTCProvider::resolveMDNSName): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/Network/webrtc/WebMDNSRegister.cpp: Added. |
| (WebKit::WebMDNSRegister::finishedRegisteringMDNSName): |
| (WebKit::WebMDNSRegister::finishedResolvingMDNSName): |
| (WebKit::WebMDNSRegister::unregisterMDNSNames): |
| (WebKit::WebMDNSRegister::registerMDNSName): |
| (WebKit::WebMDNSRegister::resolveMDNSName): |
| * WebProcess/Network/webrtc/WebMDNSRegister.h: Added. |
| * WebProcess/Network/webrtc/WebMDNSRegister.messages.in: Added. |
| |
| 2018-04-04 Alex Christensen <achristensen@webkit.org> |
| |
| Use CompletionHandlers for DelayedReplies |
| https://bugs.webkit.org/show_bug.cgi?id=182269 |
| |
| Reviewed by Youenn Fablet. |
| |
| DelayedReplies should be a noncopyable, non-refcountable type. They should be |
| called once and only once. This is what CompletionHandlers are for. |
| |
| No change in behavior. Just cleaner code. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::performSynchronousLoad): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::SynchronousLoadData::SynchronousLoadData): |
| (WebKit::sendReplyToSynchronousRequest): |
| (WebKit::NetworkResourceLoader::NetworkResourceLoader): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/HandleMessage.h: |
| (IPC::callMemberFunctionImpl): |
| (IPC::callMemberFunction): |
| (IPC::handleMessageDelayed): |
| * PluginProcess/PluginControllerProxy.cpp: |
| (WebKit::PluginControllerProxy::setInitializationReply): |
| (WebKit::PluginControllerProxy::takeInitializationReply): |
| * PluginProcess/PluginControllerProxy.h: |
| * PluginProcess/WebProcessConnection.cpp: |
| (WebKit::WebProcessConnection::destroyPlugin): |
| (WebKit::WebProcessConnection::createPlugin): |
| (WebKit::WebProcessConnection::createPluginAsynchronously): |
| * PluginProcess/WebProcessConnection.h: |
| * Scripts/webkit/messages.py: |
| (message_to_struct_declaration): |
| (generate_message_handler): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| (WebKit::NetworkProcessProxy::networkProcessFailedToLaunch): |
| (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| (WebKit::PluginProcessManager::getPluginProcessConnection): |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::getPluginProcessConnection): |
| (WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch): |
| (WebKit::PluginProcessProxy::didCreateWebProcessConnection): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| (WebKit::StorageProcessProxy::didClose): |
| (WebKit::StorageProcessProxy::didCreateStorageToWebProcessConnection): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::ExceededDatabaseQuotaRecords::createRecord): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::runJavaScriptAlert): |
| (WebKit::WebPageProxy::runJavaScriptConfirm): |
| (WebKit::WebPageProxy::runJavaScriptPrompt): |
| (WebKit::WebPageProxy::webGLPolicyForURL): |
| (WebKit::WebPageProxy::resolveWebGLPolicyForURL): |
| (WebKit::WebPageProxy::getToolbarsAreVisible): |
| (WebKit::WebPageProxy::getMenuBarIsVisible): |
| (WebKit::WebPageProxy::getStatusBarIsVisible): |
| (WebKit::WebPageProxy::getWindowFrame): |
| (WebKit::WebPageProxy::screenToRootView): |
| (WebKit::WebPageProxy::rootViewToScreen): |
| (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): |
| (WebKit::WebPageProxy::exceededDatabaseQuota): |
| (WebKit::WebPageProxy::reachedApplicationCacheOriginQuota): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::networkProcessCrashed): |
| (WebKit::WebProcessPool::getNetworkProcessConnection): |
| (WebKit::WebProcessPool::getStorageProcessConnection): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPluginProcessConnection): |
| (WebKit::WebProcessProxy::getNetworkProcessConnection): |
| (WebKit::WebProcessProxy::getStorageProcessConnection): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::syncTerminateWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::computePagesForPrintingAndDrawToPDF): |
| |
| 2018-04-04 Alex Christensen <achristensen@webkit.org> |
| |
| Remove legacyCustomProtocolManager from NetworkSessionCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=182178 |
| |
| Reviewed by Youenn Fablet. |
| |
| Now that we only make NetworkSessions in the NetworkProcess, we don't need to pass this parameter around. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2018-04-04 Alex Christensen <achristensen@webkit.org> |
| |
| Move PingHandle to WebKitLegacy |
| https://bugs.webkit.org/show_bug.cgi?id=184145 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| |
| 2018-04-04 Brent Fulgham <bfulgham@apple.com> |
| |
| Failures from mach port reference handling should be fatal |
| https://bugs.webkit.org/show_bug.cgi?id=184202 |
| <rdar://problem/37771114> |
| |
| Reviewed by Anders Carlsson. |
| |
| Update for new location of MachSendRight.h. Switch to |
| #pragma once in a few places. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInvalidate): Adopt new 'safe mach_port_t deallocation' function. |
| (IPC::Connection::initializeSendSource): Ditto. |
| (IPC::Connection::receiveSourceEventHandler): Ditto. |
| * Platform/SharedMemory.h: |
| * Platform/cocoa/SharedMemoryCocoa.cpp: |
| (WebKit::SharedMemory::Handle::clear): Ditto. |
| (WebKit::makeMemoryEntry): Ditto. |
| (WebKit::SharedMemory::createSendRight const): Ditto. |
| * Platform/mac/LayerHostingContext.h: |
| * Platform/mac/LayerHostingContext.mm: |
| * PluginProcess/PluginControllerProxy.h: |
| * PluginProcess/PluginProcess.h: |
| (WebKit::PluginProcess::compositingRenderServerPort const): |
| * Scripts/messages.py: |
| (headers_for_type): Update for new location of MachSendRight. |
| * Shared/Plugins/PluginProcessCreationParameters.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::encode const): |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * UIProcess/DrawingAreaProxy.cpp: |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): Ditto. Remove uneeded mach_port_dealloc called after |
| xpc_dictionary_set_mach_send. While '..._set_mach_send' retains the send right, it gets automatically |
| released when the message is handled. We only want to manually deallocate the send right if |
| the message failed to send. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| * UIProcess/mac/WKViewLayoutStrategy.mm: |
| * WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.h: |
| * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: |
| * WebProcess/Plugins/PluginController.h: |
| * WebProcess/Plugins/PluginView.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::addFence): |
| (WebKit::DrawingArea::updateGeometry): |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updateGeometry): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTopContentInsetFenced): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updateGeometry): |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::compositingRenderServerPort const): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::setVideoLayerFrameFenced): |
| |
| 2018-04-04 Beth Dakin <bdakin@apple.com> |
| |
| Fix the print formatter build |
| https://bugs.webkit.org/show_bug.cgi?id=184289 |
| -and corresponding- |
| rdar://problem/39164641 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _webViewPrintFormatter]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/_WKWebViewPrintFormatter.h: |
| * UIProcess/_WKWebViewPrintFormatter.mm: |
| * UIProcess/_WKWebViewPrintFormatterInternal.h: |
| * UIProcess/ios/WKContentView.mm: |
| * UIProcess/ios/WKPDFView.mm: |
| |
| 2018-04-04 Andy Estes <aestes@apple.com> |
| |
| [iOS] Rename WKPDFView to WKLegacyPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184286 |
| |
| Rubber-stamped by Wenson Hsieh. |
| |
| A series of upcoming patches will implement a new WKPDFView based on PDFKit. |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| * UIProcess/ios/WKLegacyPDFView.h: Renamed from Source/WebKit/UIProcess/ios/WKPDFView.h. |
| * UIProcess/ios/WKLegacyPDFView.mm: Renamed from Source/WebKit/UIProcess/ios/WKPDFView.mm. |
| (-[WKLegacyPDFView _computeMatchesForString:options:maxCount:completionHandler:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-04 Yousuke Kimoto <yousuke.kimoto@sony.com> and Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] Add WebKit Shared/win files for wincairo webkit |
| https://bugs.webkit.org/show_bug.cgi?id=183044 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/win/ChildProcessMainWin.cpp: Added. |
| |
| 2018-04-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Remove effective font size constraints when determining focus zoom scale |
| https://bugs.webkit.org/show_bug.cgi?id=184287 |
| <rdar://problem/39063886> |
| |
| Reviewed by Timothy Hatcher. |
| |
| As it turns out, form controls on some important websites can be very wide, with a small font size, which |
| renders the approach taken in <https://trac.webkit.org/r230171> moot, since we'll just end up zooming to a scale |
| that is too large anyways. To mitigate this for now, remove the minimum font scaling threshold while we think of |
| more clever ways to account for this scenario. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| |
| 2018-04-04 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] WebFrameLoaderClient: 'getpid': identifier not found |
| https://bugs.webkit.org/show_bug.cgi?id=184291 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): |
| Use WTF::getCurrentProcessID() instead of getpid(). |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Ditto. |
| |
| 2018-04-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| ASSERTION FAILED: !m_mainFrame->coreFrame()->loader().frameHasLoaded() || !m_pendingNavigationID when reloading page while a page is loading |
| https://bugs.webkit.org/show_bug.cgi?id=153210 |
| |
| Reviewed by Alex Christensen. |
| |
| The assert happens when WebPage::reload() is called twice and the first time the reload is ignored by |
| FrameLoader because the document URL is empty. In that case the pending navigation is not reset, because |
| FrameLoader::reload() returns before creating the document loader. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reload): Check if the pending navigation has been reset after calling FrameLoader::reload() |
| and reset it otherwise. |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkProcess get ContentBlocker information from UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| <rdar://problem/39146551> |
| |
| Unreviewed. |
| Updated decode/encode methods to not hit null identifier assertion. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::encode const): |
| (WebKit::WebPageGroupData::decode): |
| |
| 2018-04-03 Andy Estes <aestes@apple.com> |
| |
| [iOS] WKWebView shouldn't know about WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=184283 |
| |
| Reviewed by Timothy Hatcher. |
| |
| WKWebView shouldn't be checking if _customContentView is a particular kind of |
| class (e.g., WKPDFView). Instead, it should interact with the _customContentView |
| using the WKWebViewContentProvider protocol. |
| |
| Reimplement -_isBackground, -_isDisplayingPDF, -_dataForDisplayedPDF, and |
| -_suggestedFilenameForDisplayedPDF using new WKWebViewContentProvider protocol |
| methods that WKPDFView implements. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _isBackground]): |
| (-[WKWebView _isDisplayingPDF]): |
| (-[WKWebView _dataForDisplayedPDF]): |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| * UIProcess/ios/WKPDFView.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_dataRepresentation]): |
| (-[WKPDFView web_suggestedFilename]): |
| (-[WKPDFView web_isBackground]): |
| (-[WKPDFView suggestedFilename]): Deleted. |
| (-[WKPDFView pdfDocument]): Deleted. |
| (-[WKPDFView isBackground]): Deleted. |
| |
| 2018-04-03 Brent Fulgham <bfulgham@apple.com> |
| |
| Guard against keychain/certificate access outside the network process |
| https://bugs.webkit.org/show_bug.cgi?id=184214 |
| <rdar://problem/38734795> |
| |
| Reviewed by Youenn Fablet. |
| |
| Use the ProcessPrivilege assertions to guard against accessing the Keychain from |
| a non-Networking process. |
| |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): Assert if we access the keychain from a proces other than the Network or UI process. |
| (IPC::decode): Ditto. |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| NetworkResourceLoader does not need to expose all redirect response headers |
| https://bugs.webkit.org/show_bug.cgi?id=184114 |
| <rdar://problem/39010557> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| WebProcess instructs NetworkProcess whether to sanitize response headers based on a runtime flag. |
| We sanitize redirection response headers in case this is not related to a navigation load. |
| Navigation loads may currently require the full response for content blockers. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| (WebKit::NetworkResourceLoader::sanitizeRedirectResponseIfPossible): |
| (WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetRestrictedHTTPResponseAccess): |
| (WKPreferencesGetRestrictedHTTPResponseAccess): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkProcess get ContentBlocker information from UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| |
| Reviewed by Alex Christensen. |
| |
| Make NetworkProcess get content blockers from UIProcess directly. |
| Before that patch, WebProcess sent content blockers to NetworkProcess for each PingLoad. |
| Instead, WebProcess sends the content blocker identifier for each PingLoad and NetworkProcess fetches the content blocker once. |
| |
| This is both more efficient than passing them for each PingLoad and safer in the sense |
| that a compromised WebProcess will not be able to bypass any of these. |
| In the future, NetworkProcess should get the content blocker identifier directly from the WebPageID attached to the request. |
| |
| Covered by existing beacon+content blocker tests. |
| |
| Did some refactoring to add a typed content blocker identifier. |
| Once NetworkProcess fetches a given content blocker, the content blocker will send any modification to NetworkProcess. |
| Introduced NetworkContentRuleListManager to handle the content blockers in NetworkProcess. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::setContentExtensionController): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didReceiveMessage): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::networkUserContentController): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkContentRuleListManager.cpp: Added. |
| (WebKit::NetworkContentRuleListManager::contentExtensionsBackend): |
| (WebKit::NetworkContentRuleListManager::addContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::removeContentRuleList): |
| (WebKit::NetworkContentRuleListManager::removeAllContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::remove): |
| * NetworkProcess/NetworkContentRuleListManager.h: Added. |
| * NetworkProcess/NetworkContentRuleListManager.messages.in: Added. |
| * NetworkProcess/PingLoad.cpp: |
| * Scripts/webkit/messages.py: |
| * Shared/UserContentControllerIdentifier.h: Added. |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::decode): |
| * Shared/WebPageGroupData.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::~NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::contentExtensionRules): |
| (WebKit::NetworkProcessProxy::didDestroyWebUserContentControllerProxy): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::get): |
| (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::addProcess): |
| (WebKit::WebUserContentControllerProxy::removeProcess): |
| (WebKit::WebUserContentControllerProxy::addUserContentWorldUse): |
| (WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): |
| (WebKit::WebUserContentControllerProxy::addUserScript): |
| (WebKit::WebUserContentControllerProxy::removeUserScript): |
| (WebKit::WebUserContentControllerProxy::removeAllUserScripts): |
| (WebKit::WebUserContentControllerProxy::addUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets): |
| (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler): |
| (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName): |
| (WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers): |
| (WebKit::WebUserContentControllerProxy::addContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeAllContentRuleLists): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| (WebKit::WebUserContentControllerProxy::create): |
| (WebKit::WebUserContentControllerProxy::addNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::removeNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::contentExtensionRules): |
| (WebKit::WebUserContentControllerProxy::identifier const): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| (WebKit::WebUserContentController::getOrCreate): |
| (WebKit::WebUserContentController::WebUserContentController): |
| (WebKit::WebUserContentController::~WebUserContentController): |
| * WebProcess/UserContent/WebUserContentController.h: |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::userContentControllerIdentifier const): |
| |
| 2018-04-03 Andy Estes <aestes@apple.com> |
| |
| [Mac] Prioritize file promises over filenames during drag and drop |
| https://bugs.webkit.org/show_bug.cgi?id=184237 |
| <rdar://problem/38278076> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-04-03 Brady Eidson <beidson@apple.com> |
| |
| Make SessionStorage work with process swapping. |
| https://bugs.webkit.org/show_bug.cgi?id=184270 |
| |
| Reviewed by Andy Estes. |
| |
| Due to a minor process accounting error, WebPageProxys weren't always being reconnected with their |
| WebsiteDataStore's StorageManager when doing process swaps. |
| |
| Fix that error, and SessionStorage "just works." |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::webProcessWillShutDown): |
| (WebKit::WebPageProxy::processDidTerminate): For NavigationSwap termination, make sure to tell the |
| process lifetime tracker that this page was removed. |
| |
| * UIProcess/WebProcessLifetimeObserver.h: |
| (WebKit::WebProcessLifetimeObserver::webPageWasInvalidated): Renamed from "webPageWasRemoved" |
| (WebKit::WebProcessLifetimeObserver::webPageWasRemoved): Deleted. |
| |
| * UIProcess/WebProcessLifetimeTracker.cpp: |
| (WebKit::WebProcessLifetimeTracker::webPageLeavingWebProcess): Renamed from "webProcessWillShutDown" |
| (WebKit::WebProcessLifetimeTracker::pageWasInvalidated): |
| (WebKit::WebProcessLifetimeTracker::webProcessWillShutDown): Deleted. |
| * UIProcess/WebProcessLifetimeTracker.h: |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::webPageWasInvalidated): |
| (WebKit::WebsiteDataStore::webPageWasRemoved): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-04-03 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r230210. |
| https://bugs.webkit.org/show_bug.cgi?id=184277 |
| |
| it is breaking internal bots (Requested by youenn on #webkit). |
| |
| Reverted changeset: |
| |
| "Make NetworkProcess get ContentBlocker information from |
| UIProcess" |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| https://trac.webkit.org/changeset/230210 |
| |
| 2018-04-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Update time picker to use platform view controller |
| https://bugs.webkit.org/show_bug.cgi?id=184252 |
| <rdar://problem/38804795> |
| |
| Reviewed by Andy Estes. |
| |
| Adjust for some small WKTimePickerViewController changes, and remove some files that we no longer need. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView textInputController:didCommitText:]): Deleted. |
| (-[WKContentView textInputController:didCommitText:withSuggestion:]): Deleted. |
| (-[WKContentView textInputControllerDidRequestDismissal:]): Deleted. |
| * UIProcess/ios/forms/WKTextFormControlViewController.h: Removed. |
| * UIProcess/ios/forms/WKTextFormControlViewController.mm: Removed. |
| * UIProcess/ios/forms/WKTextSuggestionButton.h: Removed. |
| * UIProcess/ios/forms/WKTextSuggestionButton.mm: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-04-03 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Xcode prepends line comments from WTF/Compiler.h to *.sb files |
| https://bugs.webkit.org/show_bug.cgi?id=184166 |
| |
| Reviewed by Brent Fulgham. |
| |
| * DerivedSources.make: |
| Strip ;-comments from *.sb.in files before preprocessing so we can stop treating Platform.h/Compiler.h as C89. |
| |
| 2018-04-03 Chris Dumez <cdumez@apple.com> |
| |
| Drop MainFrame class |
| https://bugs.webkit.org/show_bug.cgi?id=184191 |
| |
| Reviewed by Darin Adler. |
| |
| Drop MainFrame class and move contents into Page / Frame since there is a 1:1 |
| relationship between the Page and the MainFrame. |
| |
| This is ground work for introducing LocalFrame / RemoteFrame concepts. |
| |
| * Shared/WebRenderLayer.cpp: |
| * Shared/WebRenderObject.cpp: |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::paymentCoordinator): |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageInstallPageOverlay): |
| (WKBundlePageUninstallPageOverlay): |
| (WKBundlePageInstallPageOverlayWithAnimation): |
| (WKBundlePageUninstallPageOverlayWithAnimation): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| * WebProcess/Plugins/PluginView.cpp: |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| * WebProcess/WebCoreSupport/WebContextMenuClient.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::~WebInspectorClient): |
| (WebKit::WebInspectorClient::highlight): |
| (WebKit::WebInspectorClient::hideHighlight): |
| (WebKit::WebInspectorClient::showPaintRect): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp: |
| * WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::updateFindUIAfterPageScroll): |
| (WebKit::FindController::hideFindUI): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updatePreferences): |
| * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm: |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| * WebProcess/WebPage/WebFrame.cpp: |
| * WebProcess/WebPage/WebInspector.cpp: |
| * WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::mainFrame const): |
| (WebKit::WebPage::determinePrimarySnapshottedPlugIn): |
| (WebKit::WebPage::plugInIntersectsSearchRect): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/atk/WebPageAccessibilityObjectAtk.cpp: |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updatePreferences): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::performImmediateActionHitTestAtLocation): |
| (WebKit::WebPage::dataDetectorsDidPresentUI): |
| (WebKit::WebPage::dataDetectorsDidChangeUI): |
| (WebKit::WebPage::dataDetectorsDidHideUI): |
| * WebProcess/WebProcess.cpp: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| |
| 2018-04-03 Youenn Fablet <youenn@apple.com> |
| |
| Make NetworkProcess get ContentBlocker information from UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184205 |
| |
| Reviewed by Alex Christensen. |
| |
| Make NetworkProcess get content blockers from UIProcess directly. |
| Before that patch, WebProcess sent content blockers to NetworkProcess for each PingLoad. |
| Instead, WebProcess sends the content blocker identifier for each PingLoad and NetworkProcess fetches the content blocker once. |
| |
| This is both more efficient than passing them for each PingLoad and safer in the sense |
| that a compromised WebProcess will not be able to bypass any of these. |
| In the future, NetworkProcess should get the content blocker identifier directly from the WebPageID attached to the request. |
| |
| Covered by existing beacon+content blocker tests. |
| |
| Did some refactoring to add a typed content blocker identifier. |
| Once NetworkProcess fetches a given content blocker, the content blocker will send any modification to NetworkProcess. |
| Introduced NetworkContentRuleListManager to handle the content blockers in NetworkProcess. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::continueCheckingRequest): |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::setContentExtensionController): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didReceiveMessage): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::networkUserContentController): |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkContentRuleListManager.cpp: Added. |
| (WebKit::NetworkContentRuleListManager::contentExtensionsBackend): |
| (WebKit::NetworkContentRuleListManager::addContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::removeContentRuleList): |
| (WebKit::NetworkContentRuleListManager::removeAllContentRuleLists): |
| (WebKit::NetworkContentRuleListManager::remove): |
| * NetworkProcess/NetworkContentRuleListManager.h: Added. |
| * NetworkProcess/NetworkContentRuleListManager.messages.in: Added. |
| * NetworkProcess/PingLoad.cpp: |
| * Scripts/webkit/messages.py: |
| * Shared/UserContentControllerIdentifier.h: Added. |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::decode): |
| * Shared/WebPageGroupData.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::~NetworkProcessProxy): |
| (WebKit::NetworkProcessProxy::contentExtensionRules): |
| (WebKit::NetworkProcessProxy::didDestroyWebUserContentControllerProxy): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/UserContent/WebUserContentControllerProxy.cpp: |
| (WebKit::WebUserContentControllerProxy::get): |
| (WebKit::WebUserContentControllerProxy::WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::~WebUserContentControllerProxy): |
| (WebKit::WebUserContentControllerProxy::addProcess): |
| (WebKit::WebUserContentControllerProxy::removeProcess): |
| (WebKit::WebUserContentControllerProxy::addUserContentWorldUse): |
| (WebKit::WebUserContentControllerProxy::removeUserContentWorldUses): |
| (WebKit::WebUserContentControllerProxy::addUserScript): |
| (WebKit::WebUserContentControllerProxy::removeUserScript): |
| (WebKit::WebUserContentControllerProxy::removeAllUserScripts): |
| (WebKit::WebUserContentControllerProxy::addUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeUserStyleSheet): |
| (WebKit::WebUserContentControllerProxy::removeAllUserStyleSheets): |
| (WebKit::WebUserContentControllerProxy::addUserScriptMessageHandler): |
| (WebKit::WebUserContentControllerProxy::removeUserMessageHandlerForName): |
| (WebKit::WebUserContentControllerProxy::removeAllUserMessageHandlers): |
| (WebKit::WebUserContentControllerProxy::addContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeContentRuleList): |
| (WebKit::WebUserContentControllerProxy::removeAllContentRuleLists): |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| (WebKit::WebUserContentControllerProxy::create): |
| (WebKit::WebUserContentControllerProxy::addNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::removeNetworkProcess): |
| (WebKit::WebUserContentControllerProxy::contentExtensionRules): |
| (WebKit::WebUserContentControllerProxy::identifier const): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::startPingLoad): |
| * WebProcess/UserContent/WebUserContentController.cpp: |
| (WebKit::WebUserContentController::getOrCreate): |
| (WebKit::WebUserContentController::WebUserContentController): |
| (WebKit::WebUserContentController::~WebUserContentController): |
| * WebProcess/UserContent/WebUserContentController.h: |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::userContentControllerIdentifier const): |
| |
| 2018-04-02 Beth Dakin <bdakin@apple.com> |
| |
| Fix the managed configurations build |
| https://bugs.webkit.org/show_bug.cgi?id=184253 |
| -and corresponding- |
| rdar://problem/39078586 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView _defineForWebView:]): |
| |
| 2018-04-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [Enchant] Clean up TextCheckerEnchant |
| https://bugs.webkit.org/show_bug.cgi?id=184233 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Use TextCheckerEnchant as a singleton now, instead of implementing the singleton here. |
| |
| * UIProcess/gtk/TextCheckerGtk.cpp: |
| (WebKit::TextChecker::checkSpellingOfString): |
| (WebKit::TextChecker::getGuessesForWord): |
| (WebKit::TextChecker::learnWord): |
| (WebKit::TextChecker::ignoreWord): |
| (WebKit::TextChecker::setSpellCheckingLanguages): |
| (WebKit::TextChecker::loadedSpellCheckingLanguages): |
| (WebKit::enchantTextChecker): Deleted. |
| |
| 2018-04-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] NetworkProcess from WebKitGtk+ 2.19.9x SIGSEVs in NetworkStorageSession (secret search callback) |
| https://bugs.webkit.org/show_bug.cgi?id=183346 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Pass the request cancellable to NetworkStorageSession::getCredentialFromPersistentStorage(). |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::authenticate): |
| |
| 2018-04-02 Brady Eidson <beidson@apple.com> |
| |
| Process swapping on navigation needs to handle server redirects. |
| <rdar://problem/38690465> and https://bugs.webkit.org/show_bug.cgi?id=184142 |
| |
| Reviewed by Alex Christensen. |
| |
| The same rules we apply to process swapping for basic navigations need to apply |
| to server redirects as well. |
| |
| There's three interesting cases we need to support that are covered by new API tests: |
| 1 - The initial load in a WKWebView redirects cross-origin. |
| 2 - A WKWebView is showing content from a.com, we start a load to b.com, and that redirects to c.com |
| 3 - A WKWebView is showing content from a.com, we start a load to a.com, that that redirects to b.com. |
| |
| Supporting all 3 of these brought their own little challenges. |
| |
| By teaching Navigation objects more about redirects I was able to support all 3 cases. |
| |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::setCurrentRequest): |
| (API::Navigation::appendRedirectionURL): |
| (API::Navigation::loggingString const): |
| (API::Navigation::loggingURL const): Deleted. |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::originalRequest const): |
| (API::Navigation::currentRequest const): |
| (API::Navigation::currentRequestProcessIdentifier const): |
| (API::Navigation::setCurrentRequestIsRedirect): |
| (API::Navigation::currentRequestIsRedirect const): |
| (API::Navigation::request const): Deleted. |
| |
| * UIProcess/API/Cocoa/WKNavigation.mm: |
| (-[WKNavigation _request]): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): If this continued navigation is currently in a server |
| redirect, save off a lambda to synthesize a "did receive server redirect" callback once the new WebProcess is running. |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): Possibly ignore this notification if it is really a |
| cross-origin redirect that is just starting back up in a new WebProcess. |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Do not clear pageLoadState if the process is exitting for |
| a navigation swap, as we will need to pick up where we left off when the load continues in a new WebProcess. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): If a process has never committed any provisional load, it can always |
| be used to continue a navigation. |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::didCommitProvisionalLoad): |
| (WebKit::WebProcessProxy::hasCommittedAnyProvisionalLoads const): |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-04-02 Eric Carlson <eric.carlson@apple.com> |
| |
| [Extra zoom mode] Replace video with a placeholder image during fullscreen transition |
| https://bugs.webkit.org/show_bug.cgi?id=184188 |
| <rdar://problem/38940307> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::willExitFullscreen): |
| (WebKit::VideoFullscreenManagerProxy::preparedToExitFullscreen): |
| (WebKit::VideoFullscreenManagerProxy::willExitFullscreen): |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| * WebProcess/cocoa/VideoFullscreenManager.messages.in: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::willExitFullscreen): |
| |
| 2018-04-02 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Fix some internal builds that consume WebDriver atoms |
| https://bugs.webkit.org/show_bug.cgi?id=184197 |
| |
| Reviewed by Dan Bernstein. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Use a Run Script phase to copy WebDriver atoms to WebKit.framework |
| private headers during the installhdrs phase. |
| |
| 2018-04-02 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230174. |
| |
| Caused LayoutTests to exit early with assertion failures. |
| |
| Reverted changeset: |
| |
| "Process swapping on navigation needs to handle server |
| redirects." |
| https://bugs.webkit.org/show_bug.cgi?id=184142 |
| https://trac.webkit.org/changeset/230174 |
| |
| 2018-04-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Update date picker UI to latest specifications |
| https://bugs.webkit.org/show_bug.cgi?id=184234 |
| <rdar://problem/38804760> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Rename WKTextFormControlListViewControllerDelegate to WKTextInputListViewControllerDelegate and adjust for the |
| new initializer of WKDatePickerViewController. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| |
| 2018-04-02 Brady Eidson <beidson@apple.com> |
| |
| Process swapping on navigation needs to handle server redirects. |
| <rdar://problem/38690465> and https://bugs.webkit.org/show_bug.cgi?id=184142 |
| |
| Reviewed by Alex Christensen. |
| |
| The same rules we apply to process swapping for basic navigations need to apply |
| to server redirects as well. |
| |
| There's three interesting cases we need to support that are covered by new API tests: |
| 1 - The initial load in a WKWebView redirects cross-origin. |
| 2 - A WKWebView is showing content from a.com, we start a load to b.com, and that redirects to c.com |
| 3 - A WKWebView is showing content from a.com, we start a load to a.com, that that redirects to b.com. |
| |
| Supporting all 3 of these brought their own little challenges. |
| |
| By teaching Navigation objects more about redirects I was able to support all 3 cases. |
| |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::setCurrentRequest): |
| (API::Navigation::appendRedirectionURL): |
| (API::Navigation::loggingString const): |
| (API::Navigation::loggingURL const): Deleted. |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::originalRequest const): |
| (API::Navigation::currentRequest const): |
| (API::Navigation::currentRequestProcessIdentifier const): |
| (API::Navigation::setCurrentRequestIsRedirect): |
| (API::Navigation::currentRequestIsRedirect const): |
| (API::Navigation::request const): Deleted. |
| |
| * UIProcess/API/Cocoa/WKNavigation.mm: |
| (-[WKNavigation _request]): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): If this continued navigation is currently in a server |
| redirect, save off a lambda to synthesize a "did receive server redirect" callback once the new WebProcess is running. |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): Possibly ignore this notification if it is really a |
| cross-origin redirect that is just starting back up in a new WebProcess. |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): Do not clear pageLoadState if the process is exitting for |
| a navigation swap, as we will need to pick up where we left off when the load continues in a new WebProcess. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): If a process has never committed any provisional load, it can always |
| be used to continue a navigation. |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::didCommitProvisionalLoad): |
| (WebKit::WebProcessProxy::hasCommittedAnyProvisionalLoads const): |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-04-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Zoom level is sometimes excessive when zooming to focused form controls |
| https://bugs.webkit.org/show_bug.cgi?id=184222 |
| <rdar://problem/39063886> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Upon interactively focusing an element, we zoom and scroll to reveal that element. The heuristics introduced in |
| <https://trac.webkit.org/r168744> work by computing a target scale, and then a point to zoom to given that |
| scale. Currently, this scale is dependent on the computed font size of the form control, such that the form |
| control would be scaled to have an effective font size of 16. |
| |
| However, in extra zoom mode, applying these same heuristics (ironically) results in excessive zoom levels, since |
| scaling the font up to 16 would cause most form controls to zoom so far in that we lose context of surrounding |
| elements such as labels and other form controls; the fact that the element is highlighted by the focused form |
| control overlay makes this even more confusing, since part of the focus overlay highlight rect often ends up |
| outside the viewport. |
| |
| To fix this, we make a couple of tweaks to focus rect zooming in extra zoom mode. (1) Instead of computing |
| target zoom level based on font size, try to zoom such that the focused element rect fills up most of the |
| viewport (similar to double-tap zooming). This ensures that the focused form control overlay's highlight rect |
| makes sense in most cases, with few exceptions (e.g. the element frame is larger than the viewport). (2) |
| Introduce a minimum legible font size of 11, and compute the minimium scale needed such that the form control |
| font would appear to be at least this legible font size. Then, clamp the target scale chosen by (1) to this |
| minimum scale. |
| |
| One additional consideration for (1) is that naively scaling to fit the element rect to the viewport (with some |
| fixed margins) would cause the viewport scale to always change when moving focus between form controls of |
| different dimensions, even if the current scale is more or less appropriate for all the focusable elements. To |
| address this, instead of computing a single target zoom scale for an element rect, compute a range of possible |
| target zoom scales (where the minimum and maximum values depend on the margin we add around the element rect). |
| If the current scale already falls within this target scale range, then we won't bother adjusting the scale at |
| all (unless the font size is too small — see (2)). If the current scale falls outside the target scale range, we |
| then make the minimal adjustment needed to ensure that the element rect fits well within the viewport without |
| being too small. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| |
| Move some logic around so that the target scale is computed after computing the visible size. Also renames some |
| constants local to this function (WKWebViewStandardFontSize, kMinimumHeightToShowContentAboveKeyboard, |
| UIWebFormAnimationDuration, CaretOffsetFromWindowEdge) such that they now share a consistent naming style. |
| |
| 2018-04-02 Jer Noble <jer.noble@apple.com> |
| |
| Enable Legacy EME for all WebKit & WebKitLegacy clients |
| https://bugs.webkit.org/show_bug.cgi?id=184018 |
| <rdar://problem/34887387> |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-04-02 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION (229680): Fullscreen video does not work (youtube, netflix) |
| https://bugs.webkit.org/show_bug.cgi?id=184235 |
| |
| Reviewed by Eric Carlson. |
| |
| Enable the Fullscreen API by default. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-04-02 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] MSVC can't compile WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent |
| https://bugs.webkit.org/show_bug.cgi?id=184120 |
| |
| Reviewed by Alex Christensen. |
| |
| It seems that MSVC can't compile the code using `this` in a |
| generalized lambda capture in another lambda. |
| |
| In this case, there is no need to copy `protectedThis` for the |
| inner lambda. Move `protectedThis` of the outer lambda to the |
| inner as well as `callback`. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| Moved `protectedThis` from the outer lambda to the inner. |
| |
| 2018-04-02 Dan Bernstein <mitz@apple.com> |
| |
| Build fix after r230121 |
| |
| * Configurations/WebKit.xcconfig: Disabled framework header postprocessing when building for |
| iOS 11.* |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Reverted r230159. |
| |
| 2018-04-02 Dan Bernstein <mitz@apple.com> |
| |
| Fixed the build when BOOL is not bool. |
| <rdar://problem/39094484> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): Removed the write-only ivar |
| _hasControlsManager, the assignment to which was causing the compiler error. |
| |
| 2018-04-02 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Update availability annotation. |
| |
| 2018-04-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] DragAndDropHandler.cpp should include GUniquePtrGtk.h |
| https://bugs.webkit.org/show_bug.cgi?id=184119 |
| |
| Reviewed by Daniel Bates. |
| |
| * UIProcess/gtk/DragAndDropHandler.cpp: |
| |
| 2018-04-02 Frederic Wang <fwang@igalia.com> |
| |
| Fix warnings for unused lambda captures in Source/WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=173555 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| When release logs are disabled, several lambda captures are unused, causing compilation |
| failures with -Wunused-lambda-capture. This patch marks the corresponding variables as unused |
| in order to fix these warnings. |
| |
| Based on initial patch by: Konstantin Tokarev <annulen@yandex.ru> |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::fetchWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteData): |
| (WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::fetchWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteData): |
| (WebKit::WebProcessProxy::deleteWebsiteDataForOrigins): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| |
| 2018-04-02 Alejandro G. Castro <alex@igalia.com> |
| |
| [GTK] Make libwebrtc backend buildable for GTK port |
| https://bugs.webkit.org/show_bug.cgi?id=178860 |
| |
| Reviewed by Youenn Fablet. |
| |
| * CMakeLists.txt: Add RTC network classes to the compilation and |
| the libwebrtc includes. |
| * PlatformGTK.cmake: Add the libwebrtc directory. |
| * SourcesGTK.txt: Add RTC files to the compilation. |
| |
| 2018-03-30 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r229828): Facebook login popup is blank |
| https://bugs.webkit.org/show_bug.cgi?id=184206 |
| <rdar://problem/39057006> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Add assertion to make sure we never try to do a policy check to |
| a resource response while a policy check for a navigation is |
| pending. This assertion was being hit by several of our redirection |
| tests without my fix. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-03-30 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r230125. |
| |
| Build fix broke more builds. |
| |
| Reverted changeset: |
| |
| "Unreviewed build fix, remove unused lambda capture." |
| https://trac.webkit.org/changeset/230125 |
| |
| 2018-03-30 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix, remove unused lambda capture. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| |
| 2018-03-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt list view controller UI for numeric input types |
| https://bugs.webkit.org/show_bug.cgi?id=184184 |
| <rdar://problem/37238916> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove existing logic for presenting a number pad view controller, since number pads will now be handled as a |
| special case of general text form controls in extra zoom mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| 2018-03-30 Dan Bernstein <mitz@apple.com> |
| |
| Update availability annotations to match the macOS 10.13.4 and iOS 11.3 GM SDKs |
| https://bugs.webkit.org/show_bug.cgi?id=184173 |
| |
| Reviewed by Alex Christensen. |
| |
| Changed WK_MAC_TBA and WK_IOS_TBA to 10.13.4 and 11.3, respectively, in all declarations that |
| appear in the GM SDKs. |
| |
| * Shared/API/Cocoa/_WKNSWindowExtras.h: |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKOpenPanelParameters.h: |
| * UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataRecord.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKApplicationManifest.h: |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| * UIProcess/API/Cocoa/_WKAutomationSession.h: |
| * UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h: |
| * UIProcess/API/Cocoa/_WKDownload.h: |
| * UIProcess/API/Cocoa/_WKDownloadDelegate.h: |
| * UIProcess/API/Cocoa/_WKFocusedElementInfo.h: |
| * UIProcess/API/Cocoa/_WKFullscreenDelegate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.h: |
| * UIProcess/API/Cocoa/_WKVisitedLinkStore.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h: |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: |
| |
| 2018-03-30 Youenn Fablet <youenn@apple.com> |
| |
| NetworkLoadChecker should upgrade redirects if needed |
| https://bugs.webkit.org/show_bug.cgi?id=184098 |
| |
| Reviewed by Chris Dumez. |
| |
| In case of redirections, upgrade URL according CSP. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy const): |
| |
| 2018-03-30 JF Bastien <jfbastien@apple.com> |
| |
| Update messages.py codegen for String, fix tests |
| https://bugs.webkit.org/show_bug.cgi?id=184179 |
| <rdar://problem/39041352> |
| |
| Reviewed by Mark Lam. |
| |
| I updated some of the code in |
| https://trac.webkit.org/changeset/230097 and auto-magically used a |
| script to update copyright headers... and that broke the tests |
| which checked for a particular date. Update all of the headers. |
| |
| Part of this change updates the code generated by messages.py |
| |
| * Scripts/webkit/LegacyMessageReceiver-expected.cpp: |
| * Scripts/webkit/MessageReceiver-expected.cpp: |
| * Scripts/webkit/MessageReceiverSuperclass-expected.cpp: |
| * Scripts/webkit/MessagesSuperclass-expected.h: |
| * Scripts/webkit/messages.py: |
| * Scripts/webkit/messages_unittest.py: |
| (GeneratedFileContentsTest.assertGeneratedFileContentsEqual): |
| generate a better error message |
| |
| 2018-03-29 JF Bastien <jfbastien@apple.com> |
| |
| Use Forward.h instead of forward-declaring WTF::String |
| https://bugs.webkit.org/show_bug.cgi?id=184172 |
| <rdar://problem/39026146> |
| |
| Reviewed by Yusuke Suzuki. |
| |
| As part of #184164 I'm changing WTF::String, and the forward |
| declarations are just wrong because I'm making it templated. We |
| should use Forward.h anyways, so do that instead. |
| |
| * Scripts/webkit/LegacyMessages-expected.h: |
| * Scripts/webkit/Messages-expected.h: |
| * Scripts/webkit/MessagesSuperclass-expected.h: |
| * UIProcess/WebOpenPanelResultListenerProxy.h: |
| |
| 2018-03-29 Brian Burg <bburg@apple.com> |
| |
| Web Automation: clipToViewport is ignored for element screenshots |
| https://bugs.webkit.org/show_bug.cgi?id=184158 |
| <rdar://problem/39014307> |
| |
| Reviewed by Timothy Hatcher. |
| |
| In §19.2 Take Element Screenshot, step 5.2 says that we should clip |
| the element screenshot rect with the visible viewport rect. We don't |
| do that right now even though we pass over clipToViewport. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::snapshotRectForScreenshot): |
| Clip the rect to viewport if needed. |
| |
| (WebKit::WebAutomationSessionProxy::takeScreenshot): |
| This scrollIntoView is misplaced; by this point we have already done |
| the math to figure out the screenshot rect. Move it before computing the rect. |
| |
| 2018-03-29 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r230035): ASSERT(MACH_PORT_VALID(m_sendPort)) hit in IPC::Connection::initializeSendSource() |
| https://bugs.webkit.org/show_bug.cgi?id=184122 |
| <rdar://problem/39003606> |
| |
| Reviewed by Chris Dumez. |
| |
| One of the new assertions added in r230035 begin firing while running tests locally. This was happening |
| because the WebInspector was attempting to open a new connection to a web process that had already |
| terminated its mach port connection (a dead port). |
| |
| We should avoid opening new connections when the port we were given is already dead. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::identifierIsValid): Added. |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInitialize): Do not perform initialization on a dead (or null) port. |
| (IPC::Connection::open): Add some assertions that ports are in a valid state. |
| (IPC::Connection::sendOutgoingMessage): Assert that the send port is not dead. |
| (IPC::Connection::receiveSourceEventHandler): Assert that the receive port is valid. |
| * UIProcess/ChildProcessProxy.cpp: |
| (WebKit::ChildProcessProxy::didFinishLaunching): Treat a dead port as a signal that the |
| child process failed to launch. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didFinishLaunching): Ditto. |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::didFinishLaunching): Ditto. |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::didFinishLaunching): Ditto. |
| * WebProcess/Plugins/PluginProcessConnectionManager.cpp: |
| (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): Ditto. |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::establishConnection): Ditto. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): Ditto. |
| (WebKit::WebProcess::ensureWebToStorageProcessConnection): Ditto. |
| |
| 2018-03-29 Youenn Fablet <youenn@apple.com> |
| |
| Synchronize SecurityOrigin related scheme registries with NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=184140 |
| |
| Reviewed by Chris Dumez. |
| |
| Add syncing of scheme registries that are used by SecurityOrigin and ContentSecurityPolicy |
| so that we can properly use them in NetworkProcess as we do in WebProcess. |
| The registries that are not synced are: |
| - URLSchemeAsEmptyDocument |
| - URLSchemeDomainRelaxationForbidden |
| - URLSchemeAsCachePartitioned |
| - URLSchemeAsCanDisplayOnlyIfCanRequest |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::registerURLSchemeAsSecure const): |
| (WebKit::NetworkProcess::registerURLSchemeAsBypassingContentSecurityPolicy const): |
| (WebKit::NetworkProcess::registerURLSchemeAsLocal const): |
| (WebKit::NetworkProcess::registerURLSchemeAsNoAccess const): |
| (WebKit::NetworkProcess::registerURLSchemeAsDisplayIsolated const): |
| (WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const): |
| (WebKit::NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::registerURLSchemeAsSecure): |
| (WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy): |
| (WebKit::WebProcessPool::registerURLSchemeAsLocal): |
| (WebKit::WebProcessPool::registerURLSchemeAsNoAccess): |
| (WebKit::WebProcessPool::registerURLSchemeAsDisplayIsolated): |
| (WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled): |
| (WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest): |
| |
| 2018-03-29 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r229480): ERROR: Unhandled web process message 'WebCookieManager:SetHTTPCookieAcceptPolicy' |
| https://bugs.webkit.org/show_bug.cgi?id=184124 |
| <rdar://problem/38998971> |
| |
| Reviewed by Chris Dumez. |
| |
| Cookie accept policy messages were still being sent to the WebContent process after |
| I removed cookie access in r229480. The WebContent process no longer recognizes these |
| messages, and generates logging to that effect. |
| |
| This patch stops sending these unnecessary messages to the WebContent process. Only the |
| Network process needs to receive this information. |
| |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy): |
| |
| 2018-03-29 Carlos Eduardo Ramalho <cadubentzen@gmail.com> |
| |
| [WPE] Floating point exception in WebEventFactory::createWebWheelEvent |
| https://bugs.webkit.org/show_bug.cgi?id=184037 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/wpe/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebWheelEvent): Use std::copysign() to avoid division by 0. |
| |
| 2018-03-28 Zalan Bujtas <zalan@apple.com> |
| |
| Make it possible to override the screen size |
| https://bugs.webkit.org/show_bug.cgi?id=184111 |
| <rdar://problem/38972181> |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::overrideScreenSize): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::overrideScreenSize const): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::overrideScreenSize const): |
| |
| 2018-03-28 Chris Dumez <cdumez@apple.com> |
| |
| Do process swap when opening a cross-origin URL via window.open(url, '_blank', 'noopener') |
| https://bugs.webkit.org/show_bug.cgi?id=183962 |
| <rdar://problem/38817833> |
| |
| Reviewed by Brady Eidson. |
| |
| Swap WebProcess on for the initial navigation in a new Window that was opened |
| via window.open(), when the new URL is cross-origin compared to the opener's |
| origin. For now, we only swap process if 'noopener' property is set when calling |
| window.open(). This is because we do not support the remote DOMWindows yet. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::setIsCrossOriginWindowOpenNavigation): |
| (API::Navigation::isCrossOriginWindowOpenNavigation const): |
| (API::Navigation::setOpener): |
| (API::Navigation::opener const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-28 Per Arne Vollan <pvollan@apple.com> |
| |
| Adopt WEBPROCESS_WINDOWSERVER_BLOCKING compiler guard in WebProcess. |
| https://bugs.webkit.org/show_bug.cgi?id=183959 |
| <rdar://problem/38965719> |
| |
| Reviewed by Brent Fulgham. |
| |
| Use the compile guard to guard the call to CGSSetDenyWindowServerConnections. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| |
| 2018-03-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Unreviewed build fix after r230045. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: Add missing include (breaks iOS). |
| |
| 2018-03-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Protect against invalid mach ports returned by mach_port_request_notification |
| https://bugs.webkit.org/show_bug.cgi?id=184106 |
| <rdar://problem/37865316> |
| |
| Reviewed by Chris Dumez. |
| |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::Identifier::Identifier): Use default initializer syntax. |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::open): Drive-by-fix: Include formatted mach error message in logging. |
| (IPC::Connection::receiveSourceEventHandler): Check return value from 'mach_port_request_notification' |
| and clean up if it experienced an error. |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): Ditto. |
| |
| 2018-03-28 Dean Jackson <dino@apple.com> |
| |
| WKWebViewContentProvider shouldn't be a UIScrollViewDelegate |
| https://bugs.webkit.org/show_bug.cgi?id=184107 |
| <rdar://problem/38967492> |
| |
| Reviewed by Tim Horton. |
| |
| There is no need for this class to be a UIScrollViewDelegate. Instead |
| the protocol should have an optional method that is effectively |
| scrollViewDidScroll. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView scrollViewDidScroll:]): Call web_scrollViewDidScroll |
| if it exists. |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: Remove UIScrollViewDelegate |
| and add an optional web_scrollViewDidScroll. |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView web_scrollViewDidScroll:]): Renamed from scrollViewDidScroll. |
| (-[WKPDFView scrollViewDidScroll:]): Deleted. |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView scrollViewDidScroll:]): Deleted. |
| |
| 2018-03-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Make boosted text autosizing values switchable at runtime |
| https://bugs.webkit.org/show_bug.cgi?id=184092 |
| <rdar://problem/38939917> |
| |
| Reviewed by Tim Horton. |
| |
| Add a private web view preference to switch between normal and boosted text autosizing mode. By default, we use |
| normal text autosizing values. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setShouldEnableTextAutosizingBoost:]): |
| (-[WKPreferences _shouldEnableTextAutosizingBoost]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Avoid uninitialized mach ports |
| https://bugs.webkit.org/show_bug.cgi?id=184090 |
| <rdar://problem/37261129> |
| |
| Reviewed by Chris Dumez. |
| |
| It is possible for mach_port_allocate to return an error, but we rarely check its return value. The value |
| of the argument passed to mach_port_allocate is not guaranteed to be valid when it returns an error, so |
| there is a potential for us to try to use invalid ports. |
| |
| We should always check return values, and ensure that the mach port variables we seek to initialize are |
| kept in a valid state. |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): Initialize new port to a safe default and |
| check the return state of the allocation function. |
| * Platform/IPC/Connection.h: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::open): Ditto. |
| (IPC::Connection::initializeSendSource): Ditto. |
| (IPC::readFromMachPort): Ditto. |
| (IPC::Connection::receiveSourceEventHandler): Ditto. |
| * Platform/SharedMemory.h: |
| * Platform/cocoa/SharedMemoryCocoa.cpp: |
| (WebKit::makeMemoryEntry): Ditto. |
| * Platform/mac/MachUtilities.cpp: |
| (setMachPortQueueLength): Ditto. |
| (setMachExceptionPort): Ditto. |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::createWebProcessConnection): Ditto. |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): Ditto. |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): Ditto. |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openFrontendConnection): Ditto. |
| |
| 2018-03-28 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Fails to build webkitgtk+ after git-svn-id: http://svn.webkit.org/repository/webkit/trunk@229877 268f45cc-cd09-0410-ab3c-d52691b4dbfc |
| https://bugs.webkit.org/show_bug.cgi?id=184081 |
| |
| Unreviewed, switch to use UNUSED_PARAM() |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-03-28 Tim Horton <timothy_horton@apple.com> |
| |
| Make use of HAVE(CORE_ANIMATION_RENDER_SERVER) in more places |
| https://bugs.webkit.org/show_bug.cgi?id=184072 |
| <rdar://problem/38946530> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * UIProcess/mac/ViewSnapshotStore.h: |
| * UIProcess/mac/ViewSnapshotStore.mm: |
| (WebKit::ViewSnapshot::clearImage): |
| |
| 2018-03-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Revert an unnecessary workaround when zooming focused form controls |
| https://bugs.webkit.org/show_bug.cgi?id=184067 |
| <rdar://problem/38805254> |
| |
| Reviewed by Tim Horton. |
| |
| Reverts an unintended change introduced in r227984. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _displayFormNodeInputView]): |
| |
| 2018-03-28 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Remove UpdateAtlas |
| https://bugs.webkit.org/show_bug.cgi?id=184042 |
| |
| Reviewed by Žan Doberšek. |
| |
| Remove all the code related to UpdateAtlas handling. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::purgeGLResources): |
| (WebKit::CoordinatedGraphicsScene::syncUpdateAtlases): Deleted. |
| (WebKit::CoordinatedGraphicsScene::createUpdateAtlas): Deleted. |
| (WebKit::CoordinatedGraphicsScene::removeUpdateAtlas): Deleted. |
| (WebKit::CoordinatedGraphicsScene::releaseUpdateAtlases): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::renderLayerTree): |
| (WebKit::ThreadedCompositor::releaseUpdateAtlases): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::delegatedScrollRequested): |
| (WebKit::WebChromeClient::resetUpdateAtlasForTesting): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::resetUpdateAtlasForTesting): Deleted. |
| * WebProcess/WebPage/AcceleratedDrawingArea.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::CompositingCoordinator): |
| (WebKit::CompositingCoordinator::flushPendingLayerChanges): |
| (WebKit::CompositingCoordinator::clearPendingStateChanges): |
| (WebKit::CompositingCoordinator::renderNextFrame): |
| (WebKit::CompositingCoordinator::purgeBackingStores): |
| (WebKit::CompositingCoordinator::createUpdateAtlas): Deleted. |
| (WebKit::CompositingCoordinator::removeUpdateAtlas): Deleted. |
| (WebKit::CompositingCoordinator::getCoordinatedBuffer): Deleted. |
| (): Deleted. |
| (WebKit::CompositingCoordinator::scheduleReleaseInactiveAtlases): Deleted. |
| (WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired): Deleted. |
| (WebKit::CompositingCoordinator::releaseAtlases): Deleted. |
| (WebKit::CompositingCoordinator::clearUpdateAtlases): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::clearUpdateAtlases): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| (WebKit::ThreadedCoordinatedLayerTreeHost::releaseUpdateAtlases): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/LayerTreeHost.h: |
| (WebKit::LayerTreeHost::setIsDiscardable): |
| |
| 2018-03-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r229998): WebDriver: MiniBrowser is crashing in a lot of tests after r229998 |
| https://bugs.webkit.org/show_bug.cgi?id=184075 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is because we are using a value after it has been moved. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): Save a reference to page in a local variable |
| before using it when it's also going to be moved in the lambda capture. |
| |
| 2018-03-27 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix typo in variable name |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseCrossingNotifyEvent): |
| |
| 2018-03-27 Per Arne Vollan <pvollan@apple.com> |
| |
| The layout test fast/canvas/webgl/read-pixels-test.html is timing out. |
| https://bugs.webkit.org/show_bug.cgi?id=183923 |
| <rdar://problem/38756869> |
| |
| Reviewed by Brent Fulgham. |
| |
| Send OpenGL display mask to the WebContent process when the display ID is changing. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::windowScreenDidChange): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::openGLDisplayMaskChanged): |
| |
| 2018-03-27 Youenn Fablet <youenn@apple.com> |
| |
| Move request checking out of PingLoad for future reuse in NetworkLoad |
| https://bugs.webkit.org/show_bug.cgi?id=183865 |
| |
| Reviewed by Chris Dumez. |
| |
| Introduce NetworkLoadChecker as a way to validate requests before sending them in the network process. |
| Validation encompasses: CORS checks, CSP and Content Extensions on both main request and redirected requests if any. |
| |
| Make PingLoad use NetworkLoadChecker. Future patch should make NetworkLoad to use it as well whenever needed. |
| |
| Make NetworkCORSPreflightChecker takes a CompletionHandler instead of a Function. |
| Ensure this callback is called even if preflight is not completed by returning a Canceled error. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::~NetworkCORSPreflightChecker): |
| (WebKit::NetworkCORSPreflightChecker::returnResult): |
| (WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection): |
| (WebKit::NetworkCORSPreflightChecker::didReceiveChallenge): |
| (WebKit::NetworkCORSPreflightChecker::didCompleteWithError): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkLoadChecker.cpp: Added. |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::check): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::returnError): |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRedirectedRequest): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| (WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const): |
| (WebKit::NetworkLoadChecker::contentSecurityPolicy const): |
| (WebKit::NetworkLoadChecker::contentExtensionsBackend): |
| (WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad): |
| * NetworkProcess/NetworkLoadChecker.h: Added. |
| (WebKit::NetworkLoadChecker::setCSPResponseHeaders): |
| (WebKit::NetworkLoadChecker::setContentExtensionRuleLists): |
| (WebKit::NetworkLoadChecker::url const): |
| (WebKit::NetworkLoadChecker::storedCredentialsPolicy const): |
| (WebKit::NetworkLoadChecker::isChecking const): |
| (WebKit::NetworkLoadChecker::isRedirected const): |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| (WebKit::PingLoad::~PingLoad): |
| (WebKit::PingLoad::willPerformHTTPRedirection): |
| (WebKit::PingLoad::didReceiveChallenge): |
| (WebKit::PingLoad::wasBlocked): |
| (WebKit::PingLoad::cannotShowURL): |
| (WebKit::PingLoad::timeoutTimerFired): |
| (WebKit::PingLoad::currentURL const): |
| * NetworkProcess/PingLoad.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-27 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Implement authenticatorGetAssertion |
| https://bugs.webkit.org/show_bug.cgi?id=183881 |
| <rdar://problem/37258628> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| (WebKit::WebCredentialsMessengerProxy::getAssertionReply): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: |
| (WebKit::WebCredentialsMessenger::getAssertion): |
| (WebKit::WebCredentialsMessenger::getAssertionReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: |
| |
| 2018-03-27 Chris Dumez <cdumez@apple.com> |
| |
| Avoid constructing SecurityOrigin objects from non-main threads |
| https://bugs.webkit.org/show_bug.cgi?id=184024 |
| |
| Reviewed by Youenn Fablet. |
| |
| Avoid constructing SecurityOrigin objects from non-main threads as much as possible. |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::mayHaveServiceWorkerRegisteredForOrigin const): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWOriginTable.cpp: |
| (WebKit::WebSWOriginTable::contains const): |
| * WebProcess/Storage/WebSWOriginTable.h: |
| |
| 2018-03-27 Chris Dumez <cdumez@apple.com> |
| |
| Move online state detection from the WebProcess to the NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=183989 |
| <rdar://problem/37093299> |
| |
| Reviewed by Youenn Fablet. |
| |
| Move online state detection from the WebProcess to the NetworkProcess. This avoid executing the same (expensive) code in |
| EACH web process whenever a network interface's state changes. Now, the Network Process monitors network interfaces |
| and determines the online state whenever an interface's state changes. If the onLine state changes, it notifies all |
| its connected WebProcesses via IPC. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::setOnLineState): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::setOnLineState): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Network/NetworkProcessConnection.messages.in: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::isOnLine const): |
| (WebKit::WebLoaderStrategy::addOnlineStateChangeListener): |
| (WebKit::WebLoaderStrategy::setOnLineState): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-03-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add support for new focused form control overlay behaviors |
| https://bugs.webkit.org/show_bug.cgi?id=184043 |
| <rdar://problem/38758727> |
| |
| Reviewed by Tim Horton. |
| |
| See below for more details. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| |
| Suppress focused form control navigation while the scroll view is undergoing a scroll or zoom animation (e.g., |
| when moving from one focused form control to another). |
| |
| (-[WKContentView textInputController:didCommitText:withSuggestion:]): |
| |
| When dismissing an input view controller, allow focused form control navigation only after updating assisted |
| node information to ensure that focus rects aren't stale as the user begins to navigate between forms. |
| |
| (-[WKContentView rectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView nextRectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView previousRectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView scrollViewForFocusedFormControlController:]): |
| (-[WKContentView highlightedRectForFocusedFormControlController:inCoordinateSpace:]): Deleted. |
| |
| Implement some new focused form overlay delegate hooks to vend the scroll view, as well as the rects of next and |
| previous focusable form controls. |
| |
| 2018-03-27 Brent Fulgham <bfulgham@apple.com> |
| |
| Further refine cookie read/write logging |
| https://bugs.webkit.org/show_bug.cgi?id=184044 |
| <rdar://problem/38915610> |
| |
| Reviewed by Chris Dumez. |
| |
| Cookie logging was passing the partition, rather than the first party, when logging, which |
| prevented logging in cases where partitioning or blocking was active. This patch corrects |
| these calls so that logging is generated in these cases, too. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): Call log routines if needed. |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): Ditto. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::escapeIDForJSON): Make available to use in multiple functions. |
| (WebKit::NetworkResourceLoader::logCookieInformation const): Revise to use shared |
| convenience functions. |
| (WebKit::logBlockedCookieInformation): Added. |
| (WebKit::logCookieInformationInternal): Added. |
| (WebKit::NetworkResourceLoader::logCookieInformation): Revise to use shared |
| convenience functions. |
| * NetworkProcess/NetworkResourceLoader.h: |
| |
| 2018-03-27 Brian Burg <bburg@apple.com> |
| |
| Web Automation: support enter/exit fullscreen and hide/restore window operations |
| https://bugs.webkit.org/show_bug.cgi?id=182837 |
| <rdar://problem/37580732> |
| |
| Reviewed by Tim Horton. |
| |
| The W3C specification is more explicit about when to exit fullscreen and |
| restore the window for a browsing context. So, WebKit needs to have support |
| for performing these operations on behalf of a driver. |
| |
| Based on prototyping, it is sufficient to use a JavaScript atom to enter |
| fullscreen mode. This is included in the patch as EnterFullscreen.js and |
| can be used to implement the §10.7.5 Fullscreen Window command. |
| |
| Other window operations cannot be peformed from JavaScript, so we need to |
| delegate these operations to the session client (i.e., Safari). |
| This patch adds session client callouts for restoring, minimizing, and |
| switching to a browsing context. |
| |
| Exiting fullscreen happens implicitly (per specification) when setting a |
| window frame without an actual frame, or when switching/restoring/minimizing a window. |
| If needed, a driver can call Set Window Rect in this way to unfullscreen a context. |
| Similarly, a driver can restore a minimized window using Set Window Rect. |
| |
| * UIProcess/API/APIAutomationSessionClient.h: |
| (API::AutomationSessionClient::requestHideWindowOfPage): |
| (API::AutomationSessionClient::requestRestoreWindowOfPage): |
| (API::AutomationSessionClient::requestSwitchToPage): |
| Add new API client methods. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: |
| Add new Cocoa API delegate methods. |
| |
| * UIProcess/Automation/Automation.json: |
| Make the switch to browsing context command asynchronous, since this functionality |
| is not always synchronous, and we prefer to use completion handlers in the delegates. |
| |
| Add new protocol method for hiding the window of a browsing context. |
| This is expected to minimize/miniaturize a window for desktop window managers. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| Make this function asynchronous. Call out to the session client. |
| |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): |
| Follow the steps in the specification to restore window and exit fullscreen. |
| |
| (WebKit::WebAutomationSession::hideWindowOfBrowsingContext): |
| Exit fullscreen and call out to the session client. |
| |
| (WebKit::WebAutomationSession::exitFullscreenWindowForPage): |
| This is a little strange. Because there is no async API for exiting fullscreen |
| from C++ code, we hook into willEnterFullScreen and didExitFullScreen and send |
| out the response if the page exited fullscreen after we requested it to do so. |
| Because the W3C specification mandates that drivers only process one command at |
| a time, there will only ever be one callback installed by this method at a time. |
| |
| (WebKit::WebAutomationSession::restoreWindowForPage): |
| (WebKit::WebAutomationSession::hideWindowForPage): |
| Call out to the session client. |
| |
| (WebKit::WebAutomationSession::didEnterFullScreenForPage): |
| (WebKit::WebAutomationSession::didExitFullScreenForPage): |
| Add methods to be called by instrumentation hooks in WebFullScreenManagerProxy. |
| |
| * UIProcess/Automation/atoms/EnterFullscreen.js: Added. |
| (enterFullscreen): |
| |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::AutomationSessionClient::requestSwitchToPage): |
| (WebKit::AutomationSessionClient::requestHideWindowOfPage): |
| (WebKit::AutomationSessionClient::requestRestoreWindowOfPage): |
| (WebKit::AutomationSessionClient::isShowingJavaScriptDialogOnPage): |
| Add boilerplate to convert C++ API client to Objective-C delegate methods. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::didEnterFullScreen): |
| (WebKit::WebFullScreenManagerProxy::didExitFullScreen): |
| Notify the automation session if the page is under automation and |
| enters or exits fullscreen. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Add EnterFullscreen.js to the list of WebDriver atoms. These are copied |
| as WebKit2 private headers and used by driver implementations. |
| |
| 2018-03-27 Eric Carlson <eric.carlson@apple.com> |
| |
| Make AVFoundationEnabled preference available on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=183876 |
| <rdar://problem/38726459> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebPreferences.yaml: Set AVFoundationEnabled with DEFAULT_AVFOUNDATION_ENABLED. |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setAVFoundationEnabled:]): Enable for iOS. |
| (-[WKPreferences _avFoundationEnabled]): Ditto. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-26 Tim Horton <timothy_horton@apple.com> |
| |
| Adopt WK_ALTERNATE_FRAMEWORKS_DIR in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=184030 |
| <rdar://problem/38895281> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/BaseTarget.xcconfig: |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-03-26 Tim Horton <timothy_horton@apple.com> |
| |
| Add and adopt HAVE(CORE_ANIMATION_RENDER_SERVER) |
| https://bugs.webkit.org/show_bug.cgi?id=184026 |
| <rdar://problem/38883321> |
| |
| Reviewed by Sam Weinig. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _takeViewSnapshot]): |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| |
| 2018-03-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Refactor input view controller presentation and dismissal helpers |
| https://bugs.webkit.org/show_bug.cgi?id=184020 |
| Work towards <rdar://problem/38758727> |
| |
| Reviewed by Tim Horton. |
| |
| We currently have separate presentation and dismissal helpers for each type of view controller corresponding to |
| a focused element type. This is excessive, considering that all of these helpers are only invoked from one place |
| (either -presentViewControllerForCurrentAssistedNode or -dismissAllInputViewControllers), with the exception of |
| the focused form control overlay. |
| |
| This refactoring allows us to then adjust the timing of first responder restoration logic, such that the focused |
| form control view controller can receive forwarded events from the web view. See below for more detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentFocusedFormControlViewController:]): |
| (-[WKContentView dismissFocusedFormControlViewController:]): |
| |
| Remove logic to restore the web view as first responder. |
| |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView dismissAllInputViewControllers]): |
| |
| Restore first responder after dismissing a view controller that was presented when focusing a form control, only |
| if the web view was first responder before presentation. |
| |
| (-[WKContentView presentDatePickerViewController:]): Deleted. |
| (-[WKContentView dismissDatePickerViewController:]): Deleted. |
| (-[WKContentView presentTimePickerViewController:]): Deleted. |
| (-[WKContentView dismissTimePickerViewController:]): Deleted. |
| (-[WKContentView presentSelectMenuViewController:]): Deleted. |
| (-[WKContentView dismissSelectMenuViewController:]): Deleted. |
| (-[WKContentView dismissNumberPadViewController:]): Deleted. |
| (-[WKContentView presentNumberPadViewController:]): Deleted. |
| (-[WKContentView presentTextInputViewController:]): Deleted. |
| (-[WKContentView dismissTextInputViewController:]): Deleted. |
| |
| 2018-03-06 Brian Burg <bburg@apple.com> |
| |
| Web Automation: provide a way to ask clients for a new tab or window |
| https://bugs.webkit.org/show_bug.cgi?id=183381 |
| <rdar://problem/38167301> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add support for specifying browsing context options when requesting |
| a new browsing context from the automation session client/delegate. |
| This is currently just used for specifying tab vs window, but could |
| also be used for things like toggling certain browser chrome or features. |
| |
| There is no guarantee that the client has a notion of tabs vs windows, |
| so this option is purely advisory and should not cause the command to |
| fail if it cannot be honored. |
| |
| This behavior caused by specifying this option is client-specific, so no |
| new tests are included in WebKit for this change. |
| |
| * UIProcess/API/APIAutomationSessionClient.h: |
| (API::AutomationSessionClient::didRequestNewPageWithOptions): |
| (API::AutomationSessionClient::didRequestNewWindow): Deleted. |
| Add options parameter. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| Adjust to new signature. More work is needed to plumb this information |
| to the public API for GTK/WPE and support it in WebKitGTK driver. |
| |
| * UIProcess/Automation/Automation.json: Add new optional parameter. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::createBrowsingContext): |
| Convert the protocol option to an API option. |
| |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::toAPI): |
| (WebKit::AutomationSessionClient::didRequestNewPageWithOptions): |
| (WebKit::AutomationSessionClient::didRequestNewWindow): Deleted. |
| Convert the internal option to a Cocoa SPI option and pass it along. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: |
| Adjust delegate methods to include options. Clients need to adopt the new signature(s). |
| |
| 2018-03-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add plumbing for next and previous focusable element rects |
| https://bugs.webkit.org/show_bug.cgi?id=184016 |
| Work towards <rdar://problem/38758727> |
| |
| Reviewed by Tim Horton. |
| |
| When building up AssistedNodeInformation, we currently compute the element rect of the current focused element, |
| as well as flags indicating whether or not there are next or previous focusable elements. For |
| <rdar://problem/38758727>, we additionally send the rects of the next or previous focusable elements as well. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| |
| IPC support for nextNodeRect and previousNodeRect. |
| |
| * Shared/AssistedNodeInformation.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::elementRectInRootViewCoordinates): |
| |
| Add a helper to compute an element's rect in root view coordinates. We use this to compute the rects of the |
| current focused element as well as those of the next and previous elements, if any. |
| |
| (WebKit::WebPage::getAssistedNodeInformation): |
| (WebKit::hasAssistableElement): Deleted. |
| |
| Since we need the next or previous focusable element to get its rect, we don't need this helper anymore. |
| |
| 2018-03-26 Chris Dumez <cdumez@apple.com> |
| |
| Use SecurityOriginData more consistently in Service Worker code |
| https://bugs.webkit.org/show_bug.cgi?id=183969 |
| |
| Reviewed by Darin Adler. |
| |
| Use SecurityOriginData more consistently in Service Worker code to avoid constructing |
| SecurityOrigin objects unnecessarily. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * Shared/API/c/WKSecurityOriginRef.cpp: |
| (WKSecurityOriginCopyDatabaseIdentifier): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.cpp: |
| (WebKit::WebSWOriginStore::addToStore): |
| (WebKit::WebSWOriginStore::removeFromStore): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| (WebKit::StorageProcess::serverToContextConnectionForOrigin): |
| (WebKit::StorageProcess::createServerToContextConnection): |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): |
| * StorageProcess/StorageProcess.h: |
| * UIProcess/API/APIFrameInfo.cpp: |
| (API::FrameInfo::create): |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerClearCacheForOrigin): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveFetchCacheForOrigin): |
| (WKWebsiteDataStoreGetFetchCacheSizeForOrigin): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::create): |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: |
| (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageCopyOriginsWithApplicationCache): |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest): |
| (WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::whenRegistrationReady): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::exceededDatabaseQuota): |
| (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::fetchWebsiteData): |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| (WebKit::StorageAreaImpl::securityOrigin const): |
| * WebProcess/WebStorage/StorageAreaImpl.h: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::StorageAreaMap): |
| (WebKit::StorageAreaMap::dispatchSessionStorageEvent): |
| (WebKit::StorageAreaMap::dispatchLocalStorageEvent): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): |
| |
| 2018-03-26 Brent Fulgham <bfulgham@apple.com> |
| |
| Warn against cookie access in the WebContent process using ProcessPrivilege assertions |
| https://bugs.webkit.org/show_bug.cgi?id=183911 |
| <rdar://problem/38762306> |
| |
| Reviewed by Youenn Fablet. |
| |
| Add a set of ProcessPrivilege assertions to enforce the rule that the WebContent process |
| should never call Cookie API directly. That should only happen in the Networking or |
| UIProcess. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): |
| (WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::setSharedHTTPCookieStorage): |
| (WebKit::NetworkProcess::syncAllCookies): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::initializeProcess): |
| * Shared/cf/CookieStorageUtilsCF.mm: |
| (WebKit::cookieStorageFromIdentifyingData): |
| (WebKit::identifyingDataFromCookieStorage): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| (WebKit::privateBrowsingSession): |
| * UIProcess/WebProcessPool.cpp: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/mac/WebCookieManagerProxyMac.mm: |
| (WebKit::WebCookieManagerProxy::persistHTTPCookieAcceptPolicy): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::createNetworkingContext): |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| (WebKit::WebFrameNetworkingContext::storageSession const): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| |
| 2018-03-26 Alex Christensen <achristensen@webkit.org> |
| |
| Merge ResourceHandleClient::willCacheResponseAsync with ResourceHandleClient::willCacheResponse |
| https://bugs.webkit.org/show_bug.cgi?id=183965 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::willCacheResponse const): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-03-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Add API to convert between DOM and JSCValue |
| https://bugs.webkit.org/show_bug.cgi?id=183448 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add methods to get a JSCValue for a WebKitDOMObject and to create a WebKitDOMNode from a JSCValue. Deprecate |
| most of the GTK+ DOM bindings API and move the non-deprecated parts to glib dir to be exposed by WPE too. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.cpp. |
| * WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMDocument.cpp: Added. |
| (WebKit::kit): |
| (WebKit::core): |
| (WebKit::wrapDocument): |
| (webkit_dom_document_class_init): |
| (webkit_dom_document_init): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMDocumentPrivate.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp: Added. |
| (WebKit::kit): |
| (WebKit::core): |
| (WebKit::wrapElement): |
| (webkit_dom_element_class_init): |
| (webkit_dom_element_init): |
| (webkit_dom_element_html_input_element_is_user_edited): |
| (webkit_dom_element_html_input_element_get_auto_filled): |
| (webkit_dom_element_html_input_element_set_auto_filled): |
| (webkit_dom_element_html_input_element_set_editing_value): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElementPrivate.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementPrivate.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp: Added. |
| (_WebKitDOMNodePrivate::~_WebKitDOMNodePrivate): |
| (WebKit::kit): |
| (WebKit::core): |
| (WebKit::wrapNode): |
| (webkitDOMNodeConstructor): |
| (webkitDOMNodeFinalize): |
| (webkit_dom_node_init): |
| (webkit_dom_node_class_init): |
| (webkitDOMNodeSetCoreObject): |
| (webkitDOMNodeGetCoreObject): |
| (webkit_dom_node_for_js_value): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNodePrivate.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h. |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMObject.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp. |
| (webkitDOMObjectSetProperty): |
| (webkit_dom_object_class_init): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMPrivate.cpp: Added. |
| (WebKit::wrap): |
| * WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMPrivate.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h. |
| * WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: |
| (webkit_frame_get_js_value_for_dom_object): |
| (webkit_frame_get_js_value_for_dom_object_in_script_world): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): |
| (webkitWebPageCreate): |
| (webkit_web_page_get_dom_document): |
| * WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp: |
| (WebKit::GObjectEventListener::handleEvent): |
| * WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp. |
| (webkitDOMDocumentDOMEventTargetInit): |
| (webkitDOMDocumentInstallProperties): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp. |
| (webkitDOMElementDOMEventTargetInit): |
| (webkitDOMElementInstallProperties): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp. |
| (webkitDOMNodeDOMEventTargetInit): |
| (webkitDOMNodeInstallProperties): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivateGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp. |
| (WebKit::wrapNodeGtk): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivateGtk.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt: |
| * WebProcess/InjectedBundle/API/gtk/WebKitFrame.h: |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDefines.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDocument.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMElement.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMNode.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMObject.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h. |
| * WebProcess/InjectedBundle/API/wpe/DOM/webkitdom.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h. |
| * WebProcess/InjectedBundle/API/wpe/WebKitFrame.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebHitTestResult.h: Added. |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebProcessEnumTypes.cpp.template: Added. |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebProcessEnumTypes.h.template: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h. |
| * WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h: |
| |
| 2018-03-26 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Clean up CoordinatedGraphicsScene construct-time initializations |
| https://bugs.webkit.org/show_bug.cgi?id=184002 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Move the CoordinatedGraphicsScene constant-expression initializations |
| from constructor to the point of declaration. |
| |
| Default the CoordinatedGraphicsScene destructor. |
| |
| The m_scrollPosition member variable is unused in this class, while the |
| similarly-named m_renderedContentsScrollPosition tracks scroll position |
| of the scene. Remove the latter and use m_scrollPosition in its place. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene): |
| (WebKit::CoordinatedGraphicsScene::adjustPositionForFixedLayers): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::~CoordinatedGraphicsScene): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| |
| 2018-03-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] WebKitWebProcessEnumTypes.h missing from webkit-web-extension.h |
| https://bugs.webkit.org/show_bug.cgi?id=183998 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h: |
| |
| 2018-03-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Unresolved type warnings when generating gir |
| https://bugs.webkit.org/show_bug.cgi?id=183926 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Skip deprecated functions using JSC C API from introspection. |
| |
| * UIProcess/API/glib/WebKitJavascriptResult.cpp: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| * WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: |
| |
| 2018-03-25 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r229954. |
| https://bugs.webkit.org/show_bug.cgi?id=184000 |
| |
| Caused many layout tests to crash on Apple High Sierra, |
| Sierra, iOS Simulator and GTK Linux Debug test bots (Requested |
| by dydz on #webkit). |
| |
| Reverted changeset: |
| |
| "Use SecurityOriginData more consistently in Service Worker |
| code" |
| https://bugs.webkit.org/show_bug.cgi?id=183969 |
| https://trac.webkit.org/changeset/229954 |
| |
| 2018-03-23 Brian Burg <bburg@apple.com> |
| |
| Web Automation: remove unnecessary member variable WebAutomationSession |
| https://bugs.webkit.org/show_bug.cgi?id=183971 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The concept of the "active" browsing context is something in the WebDriver |
| specification, but we were a bit too literal when first implementing this. |
| There's no actual need for this on the browser side since most commands |
| require implicitly switching to the target window passed in with the |
| Automation command. The driver, however, still needs to track the current |
| browsing context and current top-level browsing context. |
| |
| For returning whether a browsing context is active, we can just look at |
| the page's activity state to know whether the page is active or not. For |
| a normal browser, only one page is going to be visible and focused at a time. |
| |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::buildBrowsingContextForPage): |
| Consult the page's activity state to determine whether it's active. |
| |
| (WebKit::WebAutomationSession::createBrowsingContext): |
| (WebKit::WebAutomationSession::closeBrowsingContext): |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| (WebKit::WebAutomationSession::handleRunOpenPanel): |
| Stop reading and writing the current browsing context handle. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::isViewFocused const): |
| (WebKit::WebPageProxy::isViewWindowActive const): |
| Add new accessor. |
| |
| 2018-03-25 Tim Horton <timothy_horton@apple.com> |
| |
| Add and adopt ENABLE(AIRPLAY_PICKER) |
| https://bugs.webkit.org/show_bug.cgi?id=183992 |
| |
| Reviewed by Daniel Bates. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:]): |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.h: |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| |
| 2018-03-25 Tim Horton <timothy_horton@apple.com> |
| |
| Move WKAnimationDelegate to its own header |
| https://bugs.webkit.org/show_bug.cgi?id=183976 |
| <rdar://problem/38822299> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/RemoteLayerTree/WKAnimationDelegate.h: Added. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| RemoteLayerTreeHost uses a forward declaration of WKAnimationDelegate, |
| so we're just getting lucky that an -invalidate method exists on |
| some other object. Instead, move WKAnimationDelegate to its own |
| header, and include it in the places we use it. |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| Adopt WK_PLATFORM_NAME in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=183978 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/WebKit.xcconfig: |
| * WebKit.xcodeproj/project.pbxproj: |
| * mac/MigrateHeadersFromWebKitLegacy.make: |
| * mac/postprocess-framework-headers.sh: |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| Ignore sandbox_init_with_parameters deprecation warnings |
| https://bugs.webkit.org/show_bug.cgi?id=183979 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/ios/ChildProcessIOS.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| |
| 2018-03-24 Chris Dumez <cdumez@apple.com> |
| |
| Use SecurityOriginData more consistently in Service Worker code |
| https://bugs.webkit.org/show_bug.cgi?id=183969 |
| |
| Reviewed by Darin Adler. |
| |
| Use SecurityOriginData more consistently in Service Worker code to avoid constructing |
| SecurityOrigin objects unnecessarily. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * Shared/API/c/WKSecurityOriginRef.cpp: |
| (WKSecurityOriginCopyDatabaseIdentifier): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.cpp: |
| (WebKit::WebSWOriginStore::addToStore): |
| (WebKit::WebSWOriginStore::removeFromStore): |
| * StorageProcess/ServiceWorker/WebSWOriginStore.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| (WebKit::StorageProcess::serverToContextConnectionForOrigin): |
| (WebKit::StorageProcess::createServerToContextConnection): |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): |
| * StorageProcess/StorageProcess.h: |
| * UIProcess/API/APIFrameInfo.cpp: |
| (API::FrameInfo::create): |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerDeleteEntriesForOrigin): |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerClearCacheForOrigin): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveFetchCacheForOrigin): |
| (WKWebsiteDataStoreGetFetchCacheSizeForOrigin): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::create): |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| * WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: |
| (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageCopyOriginsWithApplicationCache): |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest): |
| (WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| (WebKit::WebSWClientConnection::matchRegistration): |
| (WebKit::WebSWClientConnection::whenRegistrationReady): |
| (WebKit::WebSWClientConnection::getRegistrations): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::exceededDatabaseQuota): |
| (WebKit::WebChromeClient::reachedApplicationCacheOriginQuota): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::fetchWebsiteData): |
| * WebProcess/WebStorage/StorageAreaImpl.cpp: |
| (WebKit::StorageAreaImpl::securityOrigin const): |
| * WebProcess/WebStorage/StorageAreaImpl.h: |
| * WebProcess/WebStorage/StorageAreaMap.cpp: |
| (WebKit::StorageAreaMap::StorageAreaMap): |
| (WebKit::StorageAreaMap::dispatchSessionStorageEvent): |
| (WebKit::StorageAreaMap::dispatchLocalStorageEvent): |
| * WebProcess/WebStorage/StorageNamespaceImpl.cpp: |
| (WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the !ENABLE(MEDIA_STREAM) build |
| https://bugs.webkit.org/show_bug.cgi?id=183977 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| * WebProcess/cocoa/UserMediaCaptureManager.messages.in: |
| |
| 2018-03-24 Tim Horton <timothy_horton@apple.com> |
| |
| WKFileUploadPanel shouldn't depend on WebKitLegacy |
| https://bugs.webkit.org/show_bug.cgi?id=183981 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]): |
| Just use the underlying WebCore function instead of the |
| unnecessary NSFileManager category method. |
| |
| 2018-03-23 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build with no pasteboard |
| https://bugs.webkit.org/show_bug.cgi?id=183973 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-23 Megan Gardner <megan_gardner@apple.com> |
| |
| Enable unified text selection in select cases for gradual testing |
| https://bugs.webkit.org/show_bug.cgi?id=183967 |
| <rdar://problem/38815328> |
| |
| Reviewed by Tim Horton. |
| |
| Enable in select places for a more gradual switch, as this is a big change and we want to make sure |
| it works before switching completely. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| |
| 2018-03-23 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Pick up ITP debug mode flag from defaults |
| https://bugs.webkit.org/show_bug.cgi?id=183956 |
| <rdar://problem/38559574> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| |
| 2018-03-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt list view controller UI for select menus |
| https://bugs.webkit.org/show_bug.cgi?id=183944 |
| <rdar://problem/38799062> |
| |
| Reviewed by Tim Horton. |
| |
| Move UIProcess/WKSelectMenuListViewController.* to UIProcess/ios/forms, where it was intended to go. |
| |
| * UIProcess/ios/forms/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.h. |
| * UIProcess/ios/forms/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.mm. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-23 Chris Dumez <cdumez@apple.com> |
| |
| Promptly terminate service worker processes when they are no longer needed |
| https://bugs.webkit.org/show_bug.cgi?id=183873 |
| <rdar://problem/38676995> |
| |
| Reviewed by Youenn Fablet. |
| |
| The StorageProcess now keeps track of service worker clients for each security |
| origin. When there is no longer any clients for a given security origin, the |
| StorageProcess asks the service worker process for the given origin to terminate |
| and severs its connection to it. |
| |
| * Shared/Storage/StorageProcessCreationParameters.h: |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded): |
| (WebKit::WebSWServerToContextConnection::terminate): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::initializeWebsiteDataStore): |
| (WebKit::StorageProcess::swServerForSession): |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): |
| (WebKit::StorageProcess::disableServiceWorkerProcessTerminationDelay): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _disableServiceWorkerProcessTerminationDelay]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::terminateProcess): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| |
| 2018-03-23 Brady Eidson <beidson@apple.com> |
| |
| Go to back/forward list items after a process-swapped navigation. |
| <rdar://problem/38690544> and https://bugs.webkit.org/show_bug.cgi?id=183920 |
| |
| Reviewed by Andy Estes. |
| |
| This takes the initial work of "process swap a normal navigation" and extends it to |
| process swapping for back/forward item navigations. |
| |
| * Scripts/webkit/messages.py: |
| |
| Make sure state objects are serialized to the UI Process back/forward list items, as otherwise |
| they will be lost in process-swap scenarios: |
| * Shared/SessionState.cpp: |
| (WebKit::PageState::encode const): |
| (WebKit::PageState::decode): |
| * Shared/SessionState.h: |
| |
| Make a new variant of APINavigation specifically for back/forward list items. |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| (API::Navigation::loggingURL const): |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::create): |
| (API::Navigation::backForwardListItem): |
| (API::Navigation::backForwardFrameLoadType const): |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageGoToBackForwardListItem): |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (-[WKBrowsingContextController goToBackForwardListItem:]): |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView goToBackForwardListItem:]): |
| |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::createLoadRequestNavigation): |
| (WebKit::WebNavigationState::createBackForwardNavigation): |
| * UIProcess/WebNavigationState.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcessForReload): |
| (WebKit::WebPageProxy::reattachToWebProcessWithItem): |
| (WebKit::WebPageProxy::goForward): |
| (WebKit::WebPageProxy::goBack): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): Handle back/forward navigations differently than others. |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::addOrUpdateBackForwardItem): Renamed from "addBackForwardItem" for clarity |
| (WebKit::WebProcessProxy::addBackForwardItem): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toPageState): |
| (WebKit::toHistoryItem): |
| |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::updateBackForwardItem): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::goToBackForwardItem): Combined "goBack" and "goForward" with this method, |
| passing the appropriate FrameLoadType around as needed to remember the specific type. |
| (WebKit::WebPage::goForward): Deleted. |
| (WebKit::WebPage::goBack): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-03-23 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't use the presence of a textSelectionAssistant as a proxy for if we are in content editable. |
| https://bugs.webkit.org/show_bug.cgi?id=183804 |
| |
| Reviewed by Tim Horton. |
| |
| We need to stop using the presence of a textSelectionAssistant as a proxy for if we are selecting in a content editable |
| or not. As we are planning on switching to only using a textSelectionAssistant for selection, these checks need to |
| be more direct in checking what we actually need to know i.e. are we selecting in a content editable. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (hasAssistedNode): |
| (-[WKContentView inputView]): |
| (-[WKContentView _selectionClipRect]): |
| (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView webSelectionRects]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _autofillContext]): |
| |
| 2018-03-23 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessPool should not ask to register all clients for each service worker process creation |
| https://bugs.webkit.org/show_bug.cgi?id=183941 |
| |
| Reviewed by Chris Dumez. |
| |
| Call registerServiceWorkerClients when there is no service worker process. |
| Update service worker clients to register all of them no matter the session ID. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::registerServiceWorkerClients): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-03-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt list view controller UI for select menus |
| https://bugs.webkit.org/show_bug.cgi?id=183944 |
| <rdar://problem/38799062> |
| |
| Reviewed by Andy Estes. |
| |
| Rename WKSelectMenuViewController to WKSelectMenuListViewController, and also rename the relevant |
| WebKitAdditions harness files. See corresponding changes for more details. |
| |
| * UIProcess/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.h. |
| * UIProcess/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.mm. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentSelectMenuViewController:]): |
| (-[WKContentView dismissSelectMenuViewController:]): |
| (-[WKContentView selectMenu:didSelectItemAtIndex:]): |
| (-[WKContentView numberOfItemsInSelectMenu:]): |
| (-[WKContentView selectMenu:displayTextForItemAtIndex:]): |
| (-[WKContentView selectMenu:didCheckItemAtIndex:checked:]): |
| (-[WKContentView selectMenuUsesMultipleSelection:]): |
| (-[WKContentView selectMenu:hasSelectedOptionAtIndex:]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Overriding wheel events and re-dispatching them is no longer needed after r229437, so we can just remove special |
| handling for select menus here. |
| |
| (-[WKContentView didCancelSelectionInSelectMenu:]): Deleted. |
| (-[WKContentView selectMenuSupportsMultipleSelection:]): Deleted. |
| (-[WKContentView selectMenu:hasCheckedOptionAtIndex:]): Deleted. |
| (-[WKContentView startingIndexForSelectMenu:]): Deleted. |
| |
| The starting index for a select menu is no longer relevant when using list view controllers for input, so we can |
| just remove this delegate hook altogether. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-23 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage::Caches should clear m_caches when clearing its representation even though it is not yet initialized |
| https://bugs.webkit.org/show_bug.cgi?id=183945 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clearMemoryRepresentation): |
| In case we clear Caches in the middle of the initialization, m_caches might not be empty |
| but m_isInitialized is not yet set to true since we are computing the Caches size. |
| Update the assertion and clear m_caches in that case. |
| |
| 2018-03-23 David Kilzer <ddkilzer@apple.com> |
| |
| Stop using dispatch_set_target_queue() |
| <https://webkit.org/b/183908> |
| <rdar://problem/33553533> |
| |
| Reviewed by Daniel Bates. |
| |
| * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: |
| (WebKit::NetworkCache::IOChannel::IOChannel): Remove the call to |
| dispatch_set_target_queue() since this is handled in the |
| dispatch_io_create() call above. |
| |
| 2018-03-23 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage::Engine should not ref itself when hopping to a background thread |
| https://bugs.webkit.org/show_bug.cgi?id=183925 |
| <rdar://problem/38580483> |
| |
| Reviewed by Chris Dumez. |
| |
| Add support for weak pointers to CacheStorage Engine. |
| Use weak pointer when hopping to background threads. |
| Store callbacks in CacheStorage::Engine maps to keep them being destroyed in the main thread only. |
| Made some callbacks CompletionHandler as a bonus. |
| |
| Made sure to use just one Engine for all private sessions. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::~Engine): |
| (WebKit::CacheStorage::Engine::from): |
| (WebKit::CacheStorage::Engine::initialize): |
| (WebKit::CacheStorage::Engine::writeFile): |
| (WebKit::CacheStorage::Engine::readFile): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| (WebKit::CacheStorage::Engine::weakPtrFactory): |
| |
| 2018-03-23 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-03-23 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Avoid software color conversion inside BitmapTextureGL |
| https://bugs.webkit.org/show_bug.cgi?id=183892 |
| |
| Remove the UpdateContentsFlag parameter when calling BitmapTexture::updateContents(). |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: |
| (WebKit::CoordinatedBackingStoreTile::swapBuffers): |
| |
| 2018-03-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Fix -Wswitch warnings after r229778 |
| https://bugs.webkit.org/show_bug.cgi?id=183927 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse): Log a warning if Suspend is |
| received as a PolicyAction |
| * UIProcess/API/glib/WebKitNavigationClient.cpp: Ignore the ProcessSwap termination reason, |
| which should be invisible to WebKit clients |
| |
| 2018-03-22 Chris Dumez <cdumez@apple.com> |
| |
| Include security origin in the service worker process name |
| https://bugs.webkit.org/show_bug.cgi?id=183913 |
| |
| Reviewed by Youenn Fablet. |
| |
| Include security origin in the service worker process name to facilitate debugging. This way, we |
| can differentiate which service worker process is used for which origin in activity monitor. |
| |
| * Shared/ChildProcess.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: |
| (WebKit::XPCServiceInitializerDelegate::getExtraInitializationData): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::getLaunchOptions): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeProcessName): |
| |
| 2018-03-22 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, silence unused variable warning |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-03-22 Dan Bernstein <mitz@apple.com> |
| |
| WKWebView doesn’t expose its spellCheckerDocumentTag |
| https://bugs.webkit.org/show_bug.cgi?id=183797 |
| <rdar://problem/38678089> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _spellCheckerDocumentTag]): Added this getter which calls through to the WebViewImpl. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared _spellCheckerDocumentTag property. |
| |
| 2018-03-22 Chris Dumez <cdumez@apple.com> |
| |
| Use the same SWServer for all ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=183921 |
| <rdar://problem/36873075> |
| |
| Reviewed by Youenn Fablet. |
| |
| Use the same SWServer for all ephemeral sessions. SWServers never go away and we create |
| one per sessionID. When browsing doing private browsing in Safari (and other fetching |
| favorite icons), the sessionID is ephemeral and keeps changing. This means that we kept |
| constructing new SWServers that would never go away. Each SWServer has a thread so we |
| would eventually hit the thread limit for the storage process. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::swServerForSession): |
| |
| 2018-03-22 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix format string warnings in service worker code |
| |
| On Linux x86_64, uint64_t is unsigned long, not unsigned long long. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::didFinishFetch): |
| (WebKit::WebSWServerConnection::didFailFetch): |
| (WebKit::WebSWServerConnection::didNotHandleFetch): |
| |
| 2018-03-22 Daniel Bates <dabates@apple.com> |
| |
| Expose SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest() as WebKit SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183907 |
| <rdar://problem/38759127> |
| |
| Reviewed by Alex Christensen. |
| |
| Adds both modern Objective-C SPI and C SPI to allow an embedding client to register a scheme |
| whose content should be displayed/loaded if and only if it can be requested. Disregarding an |
| app that enables universal access, by using this SPI WebKit will refuse to display cross-origin |
| content for the registered schemes. |
| |
| We need to add C SPI for embedding clients that have not transitioned to the modern Objective- |
| C API/SPI. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequest): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _registerURLSchemeAsCanDisplayOnlyIfCanRequest:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-03-22 Tim Horton <timothy_horton@apple.com> |
| |
| Improve readability of WebCore's OTHER_LDFLAGS |
| https://bugs.webkit.org/show_bug.cgi?id=183909 |
| <rdar://problem/38760992> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Make TextureMapperContextAttributes thread-specific |
| https://bugs.webkit.org/show_bug.cgi?id=183895 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| CoordinatedGraphicsScene, as an implementor of the |
| TextureMapperPlatformLayerProxy::Compositor interface, doesn't have to |
| implement the texmapGL() method anymore. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::onNewBufferAvailable): |
| (WebKit::CoordinatedGraphicsScene::texmapGL): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| |
| 2018-03-21 Frederic Wang <fwang@igalia.com> |
| |
| Unreviewed, update comment added in r229801. |
| |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::didFindString): Remove "On Mobile" and mention bug 183889. |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r229831): ProcessSwap.Basic API test is crashing |
| https://bugs.webkit.org/show_bug.cgi?id=183884 |
| |
| Reviewed by Brady Eidson. |
| |
| This code should only be called for navigation policy decisions. |
| It used to work without this check because of an early return, which |
| was dropped in r229831. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| |
| 2018-03-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add new SPI hooks for clients to vend an input session context view |
| https://bugs.webkit.org/show_bug.cgi?id=183866 |
| <rdar://problem/38692256> |
| |
| Reviewed by Tim Horton. |
| |
| Add new SPI hooks to _WKInputDelegate allowing internal clients to provide a view that gives additional context |
| when editing form controls, on top of the default label or placeholder text displayed by WebKit. The height |
| delegate is invoked first, giving the client an opportunity to lay out the context view to fit the given size; |
| the actual view is then queried. |
| |
| If the view changes, clients may tell WebKit to reload the context view via SPI on WKFormInputSession; this call |
| to reload is plumbed through to the currently presented list view controller (at the moment, this is only the |
| text input list view controller). |
| |
| * UIProcess/API/Cocoa/_WKFormInputSession.h: |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| |
| Add the new SPI hooks, described above. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession reloadFocusedElementContextView]): |
| |
| Plumb the context view reload hook through WKContentView to WKTextInputListViewController. |
| |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView reloadContextViewForPresentedListViewController]): |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): |
| |
| Slight tweak to only reload text suggestions if we are not blurring the focused element. Without this extra |
| condition, the list view controller's inner table view would get reloaded when the form input session's text |
| suggestions are set to nil when the list view controller is dismissed, causing a visible stutter in the |
| dismissal animation of view controller. |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| WebKitTestRunner crashed in com.apple.WebKit: WebKit::WebProcessPool::terminateServiceWorkerProcesses |
| https://bugs.webkit.org/show_bug.cgi?id=183875 |
| |
| Reviewed by Brent Fulgham. |
| |
| Protect |this| while we're iterating over m_serviceWorkerProcesses and terminating |
| each service worker process. It is possible for the WebProcess pool to get destroyed |
| as a result of terminating a service worker process. |
| |
| This change is covered by layout tests that are currently crashing on the ASAN bots. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::terminateServiceWorkerProcesses): |
| |
| 2018-03-21 Eric Carlson <eric.carlson@apple.com> |
| |
| Fix typo in inactive media stream timeout default value |
| https://bugs.webkit.org/show_bug.cgi?id=183872 |
| <rdar://problem/38723903> |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebPreferences.yaml: Fix typo. |
| * Shared/WebPreferencesDefaultValues.h: Ditto. |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| Make policy decisions asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| <rdar://problem/37131297> |
| |
| Reviewed by Alex Christensen. |
| |
| Get rid of synchronous IPC and synchronous code paths for policy delegates. |
| Policy decisions are now all made asynchronously and rely on asynchronous |
| IPC. |
| |
| This code change is based on work by Alex Christensen. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-21 Chris Dumez <cdumez@apple.com> |
| |
| ScrollViewInsetTests.RestoreInitialContentOffsetAfterCrash API test is failing with async delegates |
| https://bugs.webkit.org/show_bug.cgi?id=183787 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Without asynchronous policy delegates, when the client requests a navigation, we would: |
| 1. Do a synchronous navigation policy check |
| 2. If the client allows the navigation, start the provisional load |
| |
| Starting the provisional load would freeze the layer tree until first meaningful |
| layout via WebFrameLoaderClient::provisionalLoadStarted() -> WebPage::didStartPageTransition(). |
| |
| When constructing a WebView and then requesting a load right away. This would make sure |
| we do not commit a layer tree for the initial about:blank page because the layer tree |
| would be frozen until we have something meaningful to show for the following load. |
| |
| However, with asynchronous policy delegates, we are able to do a layer tree commit |
| during the asynchronous navigation policy check because the layer tree is not frozen |
| yet (provisional load has not started) and the process is not stuck on synchronous |
| IPC. When constructing a WebView and then requesting a load right away, this would |
| allow a layer tree commit for about:blank to happen before we've even started the |
| load. This would cause some API tests to fail on iOS. |
| |
| To address the issue, we try and maintain pre-existing behavior by freezing the |
| layer tree during navigation policy decision. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| (WebKit::WebFrameLoaderClient::didDecidePolicyForNavigationAction): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didStartNavigationPolicyCheck): |
| (WebKit::WebPage::didCompleteNavigationPolicyCheck): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-03-21 Brent Fulgham <bfulgham@apple.com> |
| |
| Allow the WebContent process to read ViewBridge preferences |
| https://bugs.webkit.org/show_bug.cgi?id=183862 |
| <rdar://problem/38459456> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-21 Frederic Wang <fwang@igalia.com> |
| |
| [iOS] Text highlighted by the Find UI overlaps with NBC news header on google.com |
| https://bugs.webkit.org/show_bug.cgi?id=183658 |
| |
| Reviewed by Tim Horton. |
| |
| On Mobile, many sites have overlay headers or footers that may overlap with the highlighted |
| text inside a scrollable overflow node. To workaround that issue, this commit changes the |
| behavior so that the text is revealed at the center of the overflow node. |
| |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::didFindString): Use alignCenterAlways instead of alignToEdgeIfNeeded. |
| |
| 2018-03-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] JSC bindings not introspectable |
| https://bugs.webkit.org/show_bug.cgi?id=136989 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Deprecate the functions that are not introspectable due to JSC C API in GTK+ port and remove them in WPE |
| port. Add alternative functions using the new JSC GLib API. We no longer need to keep a global context attached |
| to every view. We can simply create a temporary global context on demand and release it after 1 second. This |
| also allows us to remove WebPageProxy::javascriptGlobalContext() and all the related code. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * UIProcess/API/glib/WebKitJavascriptResult.cpp: |
| (_WebKitJavascriptResult::_WebKitJavascriptResult): |
| (webkitJavascriptResultCreate): |
| (webkit_javascript_result_get_global_context): |
| (webkit_javascript_result_get_value): |
| (webkit_javascript_result_get_js_value): |
| * UIProcess/API/glib/WebKitJavascriptResultPrivate.h: |
| (SharedJavascriptContext::singleton): |
| (SharedJavascriptContext::SharedJavascriptContext): |
| (SharedJavascriptContext::getOrCreateContext): |
| (SharedJavascriptContext::releaseContext): |
| * UIProcess/API/glib/WebKitUserContentManager.cpp: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_get_javascript_global_context): |
| (webkitWebViewRunJavaScriptCallback): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/gtk/WebKitJavascriptResult.h: |
| * UIProcess/API/gtk/WebKitWebView.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/APIViewClient.h: |
| (API::ViewClient::handleDownloadRequest): |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| * UIProcess/API/wpe/WPEView.h: |
| * UIProcess/API/wpe/WebKitJavascriptResult.h: |
| * UIProcess/API/wpe/WebKitWebView.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| * WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp: |
| (webkit_frame_get_js_context): |
| (webkit_frame_get_js_context_for_script_world): |
| * WebProcess/InjectedBundle/API/gtk/WebKitFrame.h: |
| * WebProcess/InjectedBundle/API/wpe/WebKitFrame.h: |
| |
| 2018-03-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Initial implementation of JavaScriptCore glib bindings |
| https://bugs.webkit.org/show_bug.cgi?id=164061 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Set decorator and deprecation_guard options in API docs config files, since they are no longer common to all |
| libraries. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-03-21 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Simplify CoordinatedGraphicsScene activation |
| https://bugs.webkit.org/show_bug.cgi?id=183772 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Simplify CoordinatedGraphicsScene::setActive() into a simple setter of |
| the m_isActive member variable. We don't have to call renderNextFrame() |
| anymore as that was only necessary to unblock CoordinatedLayerTreeHost, |
| but that can be avoided if m_isWaitingForRenderer in that class is |
| initialized to false. |
| |
| CoordinatedGraphicsSceneClient::renderNextFrame() virtual method and its |
| ThreadedCompositor implementation are removed. renderNextFrame() in the |
| CoordinatedGraphicsScene class can also be removed, along with the |
| unused dispatchOnMainThread() and dispatchOnClientRunLoop() methods and |
| the associated m_clientRunLoop member variable. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene): |
| (WebKit::CoordinatedGraphicsScene::dispatchOnMainThread): Deleted. |
| (WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop): Deleted. |
| (WebKit::CoordinatedGraphicsScene::renderNextFrame): Deleted. |
| (WebKit::CoordinatedGraphicsScene::setActive): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| (WebKit::CoordinatedGraphicsSceneClient::~CoordinatedGraphicsSceneClient): |
| (WebKit::CoordinatedGraphicsScene::setActive): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::m_displayRefreshMonitor): |
| (WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): |
| (WebKit::ThreadedCompositor::renderNextFrame): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| |
| 2018-03-21 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Have TextureMapperLayer::applyAnimationsRecursively() return running animation status |
| https://bugs.webkit.org/show_bug.cgi?id=183771 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| In CoordinatedGraphicsScene::paintToCurrentGLContext(), retrieve |
| information about any running animation in the scene via the |
| TextureMapperLayer::applyAnimationsRecursively() call. Use that boolean |
| value at the end up the method, instead of again traversing the |
| TextureMapperLayer tree to determine whether any running animations are |
| present. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): |
| |
| 2018-03-20 Tim Horton <timothy_horton@apple.com> |
| |
| Enable the minimal simulator feature flag when appropriate |
| https://bugs.webkit.org/show_bug.cgi?id=183807 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-19 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Expose content attributes on _WKLinkIconParameters |
| https://bugs.webkit.org/show_bug.cgi?id=183768 |
| |
| Reviewed by Alex Christensen. |
| |
| Added _WKLinkIconParameters.attributes to expose content attributes of a link element |
| which defined a favicon, touch icon, or pre-compressed touch icon. |
| |
| * UIProcess/API/Cocoa/_WKLinkIconParameters.h: |
| (_WKLinkIconParameters.attributes): Added. |
| * UIProcess/API/Cocoa/_WKLinkIconParameters.mm: |
| (_WKLinkIconParameters._attributes): Added. |
| (-[_WKLinkIconParameters _initWithLinkIcon:]): Convert the hash map from WebCore to a NSDictionary. |
| (-[_WKLinkIconParameters attributes]): Added. |
| |
| 2018-03-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add AssistedNodeInformation plumbing for form control placeholder text and label text |
| https://bugs.webkit.org/show_bug.cgi?id=183802 |
| <rdar://problem/38686273> |
| |
| Reviewed by Tim Horton. |
| |
| Surfaces some additional information about the currently focused element to the input delegate in the UI process. |
| See comments below for more details. |
| |
| Test: WebKit.FocusedElementInfo |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| |
| Add `placeholder` and `label` to AssistedNodeInformation, which capture the value of the placeholder attribute |
| and the text of the first associated label element for the focused form control. Also add boilerplate encoder/ |
| decoder support for these members. |
| |
| * UIProcess/API/Cocoa/_WKFocusedElementInfo.h: |
| |
| Augment _WKFocusedElementInfo to include placeholder and label. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): |
| (-[WKFocusedElementInfo label]): |
| (-[WKFocusedElementInfo placeholder]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| For input elements and textareas, set the placeholder to the value of the placeholder attribute. For all |
| elements with associated labels, grab the inner text of the first label that is not empty, ignoring all labels |
| that are `display: none` (i.e. not being rendered). |
| |
| 2018-03-20 Brady Eidson <beidson@apple.com> |
| |
| First piece of process swapping on navigation. |
| https://bugs.webkit.org/show_bug.cgi?id=183665 |
| |
| Reviewed by Andy Estes. |
| |
| This patch adds the first pieces of the following feature: |
| "When a navigation originating inside a WKWebView goes to a different origin, |
| swap to a new WebProcess for that navigation" |
| |
| There are significant bugs to be resolved and significant optimizations to be made. |
| Which is why the feature is disabled by default. |
| |
| Besides the core logic implementing the feature, this patch does a lot of related |
| work such as: |
| - Removing some now-invalid ASSERTs |
| - Adding some ASSERTs |
| - Update various switch states to handle the new "Suspend" policy and "NavigationSwap" |
| process termination reason |
| |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse): |
| |
| * NetworkProcess/capture/NetworkDataTaskReplay.cpp: |
| (WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse): |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (toNSURLSessionResponseDisposition): |
| |
| * Platform/Logging.h: |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| |
| * Shared/ProcessTerminationReason.h: Add "NavigationSwap" as a process termination reason. |
| |
| * UIProcess/API/APINavigation.h: |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| |
| * UIProcess/API/C/WKAPICast.h: |
| (WebKit::toAPI): |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::wkProcessTerminationReason): |
| |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| (WebKit::WebFramePolicyListenerProxy::create): |
| (WebKit::WebFramePolicyListenerProxy::policyListenerType const): |
| |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| (WebKit::WebFrameProxy::activePolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::navigation): |
| (WebKit::WebNavigationState::takeNavigation): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::attachToProcessForNavigation): Pretend that the existing process |
| terminated using the new "NavigationSwap" reason, then manually start the next load. |
| (WebKit::WebPageProxy::loadRequest): |
| (WebKit::WebPageProxy::loadRequestWithNavigation): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| (WebKit::WebPageProxy::processDidTerminate): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| * UIProcess/WebPageProxy.h: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): Determine which process should be used |
| for a proposed navigation, creating a new one if necessary. |
| * UIProcess/WebProcessPool.h: |
| |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| |
| 2018-03-20 Youenn Fablet <youenn@apple.com> |
| |
| ServiceWorkerClientFetch::didReceiveData should check for m_encodedDataLength |
| https://bugs.webkit.org/show_bug.cgi?id=183668 |
| |
| Reviewed by Chris Dumez. |
| |
| Crash happens when releasing a RefPtr<SharedBuffer> buffer that is null. |
| It happens because ServiceWorkerClientFetch can call m_loader->didReceiveBuffer at two different places. |
| Either when receiving an IPC call or as part of completion handler for the response validation check. |
| At each call site, we release the buffer to pass it to the loader and we set m_encodedLength to zero. |
| The fix is to add the m_encodedLength check like done in the case of response validation check completion handler. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveData): |
| |
| 2018-03-20 Jeff Miller <jeffm@apple.com> |
| |
| Expose aggressiveTileRetentionEnabled in WKPreferences SPI to match C SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183790 |
| |
| Reviewed by Alex Christensen. |
| |
| Expose this property on macOS only. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setAggressiveTileRetentionEnabled:]): |
| (-[WKPreferences _aggressiveTileRetentionEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-20 Tim Horton <timothy_horton@apple.com> |
| |
| Add and adopt WK_PLATFORM_NAME and adjust default feature defines |
| https://bugs.webkit.org/show_bug.cgi?id=183758 |
| <rdar://problem/38017644> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-20 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r229726 and r229763. |
| |
| Caused some API test failures on iOS |
| |
| Reverted changesets: |
| |
| "Make policy decisions asynchronous" |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| https://trac.webkit.org/changeset/229726 |
| |
| "Rebaseline three webarchive tests for WK2 after r229726." |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| https://trac.webkit.org/changeset/229763 |
| |
| 2018-03-20 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Grant IOKit preference access for the Home button |
| https://bugs.webkit.org/show_bug.cgi?id=183754 |
| <rdar://problem/38179704> |
| |
| Reviewed by Eric Carlson. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-03-20 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Adopt updated input view controller machinery for text input |
| https://bugs.webkit.org/show_bug.cgi?id=183765 |
| <rdar://problem/36926269> |
| |
| Reviewed by Tim Horton. |
| |
| Adopt new classes for extra zoomed text inputs. Massage WKTextInputViewController into WKTextInputListView- |
| Controller and introduce WKFormControlListViewController, the eventual replacement for the base class |
| WKTextFormControlViewController that will act as the base class of all list-view-controller-based input UI in |
| extra zoom mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentTextInputViewController:]): |
| (-[WKContentView dismissTextInputViewController:]): |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| * UIProcess/ios/forms/WKFormControlListViewController.h: Copied from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h. |
| * UIProcess/ios/forms/WKFormControlListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.mm. |
| * UIProcess/ios/forms/WKTextInputListViewController.h: Copied from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h. |
| * UIProcess/ios/forms/WKTextInputListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-19 Megan Gardner <megan_gardner@apple.com> |
| |
| Clear style colors when setting default appearance |
| https://bugs.webkit.org/show_bug.cgi?id=183759 |
| |
| Reviewed by Tim Horton. |
| |
| Colors are cached and need to be cleared and recalculated. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setDefaultAppearance): |
| |
| 2018-03-19 Chris Dumez <cdumez@apple.com> |
| |
| WKWebView.ClearAppCache is a flaky API test failure on High Sierra. |
| https://bugs.webkit.org/show_bug.cgi?id=181546 |
| <rdar://problem/36444327> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| in LocalStorageDatabaseTracker::deleteDatabasesModifiedSince(), add origin |
| to originIdentifiersToDelete if we cannot determine the last modification |
| time of the database file. This likely means the database file does not |
| exist. However, we still needs to make sure the origin gets removed from |
| the origins database and there may be *.wal / *.shm variants of the database |
| that are still on disk and need to be deleted. |
| |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): |
| |
| 2018-03-19 Chris Dumez <cdumez@apple.com> |
| |
| Have one service worker process per security origin |
| https://bugs.webkit.org/show_bug.cgi?id=183600 |
| <rdar://problem/35280128> |
| |
| Reviewed by Brady Eidson. |
| |
| Split service workers from different origins into their own processes |
| for security reasons. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| * StorageProcess/ServiceWorker/WebSWServerToContextConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::connectionToContextProcessFromIPCConnection): |
| (WebKit::StorageProcess::didClose): |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::StorageProcess::didReceiveMessage): |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| (WebKit::StorageProcess::serverToContextConnectionForOrigin): |
| (WebKit::StorageProcess::createServerToContextConnection): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::didReceiveMessage): |
| (WebKit::StorageToWebProcessConnection::didClose): |
| * StorageProcess/StorageToWebProcessConnection.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextTerminateServiceWorkerProcess): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _terminateServiceWorkerProcesses]): |
| (-[WKProcessPool _webPageContentProcessCount]): |
| (-[WKProcessPool _serviceWorkerProcessCount]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| (WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::create): |
| (WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| (isType): |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| (WebKit::StorageProcessProxy::didFinishLaunching): |
| (WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcessForExplicitSession): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::getStorageProcessConnection): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::createNewWebProcess): |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit): |
| (WebKit::WebProcessPool::createWebPage): |
| (WebKit::WebProcessPool::updateServiceWorkerUserAgent): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::terminateServiceWorkerProcesses): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| (WebKit::WebProcessPool::serviceWorkerProcessProxyFromPageID const): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getStorageProcessConnection): |
| |
| 2018-03-19 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, another quick fix for r229699 |
| |
| Restricts ENABLE_WEB_AUTHN to only macOS and iOS. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-19 Chris Dumez <cdumez@apple.com> |
| |
| Make policy decisions asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| <rdar://problem/37131297> |
| |
| Reviewed by Alex Christensen. |
| |
| Get rid of synchronous IPC and synchronous code paths for policy delegates. |
| Policy decisions are now all made asynchronously and rely on asynchronous |
| IPC. |
| |
| This code change is based on work by Alex Christensen. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-19 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: clean up WKWebView configuration code |
| https://bugs.webkit.org/show_bug.cgi?id=183747 |
| <rdar://problem/38629343> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController webView]): Always use system |
| appearance for Inspector's web content. |
| |
| 2018-03-19 Eric Carlson <eric.carlson@apple.com> |
| |
| [Extra zoom mode] Require fullscreen for video playback |
| https://bugs.webkit.org/show_bug.cgi?id=183742 |
| <rdar://problem/38235862> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (-[WKVideoFullScreenViewController initWithAVPlayerViewController:]): |
| (-[WKVideoFullScreenViewController viewDidLoad]): |
| (-[WKVideoFullScreenViewController prefersStatusBarHidden]): |
| (WebKit::VideoFullscreenModelContext::presentingViewController): |
| (WebKit::VideoFullscreenModelContext::createVideoFullscreenViewController): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::didEnterFullscreen): |
| |
| 2018-03-19 Daniel Bates <dabates@apple.com> |
| |
| test-webkitpy no longer runs WebKit2 tests |
| https://bugs.webkit.org/show_bug.cgi?id=183724 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Fixes an issue where Python emits errors "global name reset_results is not defined" when |
| running tests in messages_unittest.py using test-webkitpy. |
| |
| Currently messages_unittest.py conditionally defines the global variable reset_results |
| when run as the main program (i.e. __name__ == "__main__"). When messages_unittest.py is |
| imported as a module as test-webkitpy does then it is not considered the main program |
| ;=> the top-level script environment is not __main__ ;=> we do not define the global |
| variable reset_results. Instead we should unconditionally define the global variable |
| reset_results. |
| |
| * Scripts/webkit/messages_unittest.py: |
| |
| 2018-03-19 Per Arne Vollan <pvollan@apple.com> |
| |
| When the WebContent process is blocked from accessing the WindowServer, the call CVDisplayLinkCreateWithCGDisplay will fail. |
| https://bugs.webkit.org/show_bug.cgi?id=183604 |
| <rdar://problem/38305109> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/DisplayLink.cpp: Added. |
| (WebKit::DisplayLink::DisplayLink): |
| (WebKit::DisplayLink::~DisplayLink): |
| (WebKit::DisplayLink::displayLinkCallback): |
| * UIProcess/mac/DisplayLink.h: Added. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::startDisplayRefreshMonitor): |
| (WebKit::WebPageProxy::stopDisplayRefreshMonitor): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/DrawingArea.cpp: |
| (WebKit::DrawingArea::createDisplayRefreshMonitor): |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: Added. |
| (WebKit::DisplayRefreshMonitorMac::create): |
| (WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): |
| (WebKit::DisplayRefreshMonitorMac::displayLinkFired): |
| (WebKit::DrawingArea::screenWasRefreshed): |
| (WebKit::DrawingArea::createDisplayRefreshMonitor): |
| |
| 2018-03-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Implement authenticatorMakeCredential |
| https://bugs.webkit.org/show_bug.cgi?id=183527 |
| <rdar://problem/35275886> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebCredentialsMessengerProxy::exceptionReply): |
| (WebKit::WebCredentialsMessengerProxy::makeCredentialReply): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: |
| * UIProcess/CredentialManagement/cocoa/WebCredentialsMessengerProxyCocoa.mm: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: |
| (WebKit::WebCredentialsMessenger::makeCredential): |
| (WebKit::WebCredentialsMessenger::makeCredentialReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: |
| |
| 2018-03-17 Daniel Bates <dabates@apple.com> |
| |
| Tests fail in messages_unittest.py |
| https://bugs.webkit.org/show_bug.cgi?id=183725 |
| |
| Partial revert of r222113. The messages generator machinery does not know when |
| it is sufficient to emit an include for wtf/Forward.h as opposed to a concrete |
| header. |
| |
| * Scripts/webkit/LegacyMessages-expected.h: |
| * Scripts/webkit/Messages-expected.h: |
| |
| 2018-03-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, rolling out r229688. |
| |
| There's a solution that doesn't require this SPI. |
| |
| Reverted changeset: |
| |
| "Add SPI to expose width and height anchors for WKWebView's |
| content view" |
| https://bugs.webkit.org/show_bug.cgi?id=183711 |
| https://trac.webkit.org/changeset/229688 |
| |
| 2018-03-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add SPI to expose width and height anchors for WKWebView's content view |
| https://bugs.webkit.org/show_bug.cgi?id=183711 |
| <rdar://problem/38562899> |
| |
| Reviewed by Tim Horton. |
| |
| Add _contentWidthAnchor and _contentHeightAnchor SPI to WKWebView for internal clients to be able to reason |
| about the size of the content view on iOS using autolayout. |
| |
| Test: WebKit.AutoLayoutPositionHeaderAndFooterViewsInScrollView. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _contentWidthAnchor]): |
| (-[WKWebView _contentHeightAnchor]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-03-16 Megan Gardner <megan_gardner@apple.com> |
| |
| Add _useSystemAppearance to WKView |
| https://bugs.webkit.org/show_bug.cgi?id=183706 |
| <rdar://problem/38516584> |
| |
| Reviewed by Tim Horton. |
| |
| Plumb useSystemAppearance and other supporting functions to WKView |
| |
| * UIProcess/API/Cocoa/WKViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _useSystemAppearance]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| (-[WKWebView effectiveAppearanceDidChange]): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView effectiveAppearanceDidChange]): |
| (-[WKView _setUseSystemAppearance:]): |
| (-[WKView _useSystemAppearance]): |
| (-[WKView _setDefaultAppearance:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setUseSystemAppearance): |
| (WebKit::WebViewImpl::useSystemAppearance): |
| (WebKit::WebViewImpl::setDefaultAppearance): |
| |
| 2018-03-16 Brent Fulgham <bfulgham@apple.com> |
| |
| Set a trap to catch an infrequent form-related nullptr crash |
| https://bugs.webkit.org/show_bug.cgi?id=183704 |
| <rdar://problem/37579354> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add a RELEASE_ASSERT to see if we ever encounter a nullptr WebCore frame. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillSubmitForm): |
| |
| 2018-03-16 Jer Noble <jer.noble@apple.com> |
| |
| Make Fullscreen API an Experimental Feature |
| https://bugs.webkit.org/show_bug.cgi?id=183662 |
| |
| Reviewed by Jon Lee. |
| |
| Add the ability to have a conditional for whether an Experimental Feature is "visible", separate from |
| whether the preference is available, for definining platform-specific Experimental Features. |
| |
| * Scripts/GeneratePreferences.rb: |
| * Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb: |
| * Shared/WebPreferences.yaml: |
| |
| 2018-03-16 Megan Gardner <megan_gardner@apple.com> |
| |
| Ensure that style is updated when the effective appearance changes |
| https://bugs.webkit.org/show_bug.cgi?id=183690 |
| <rdar://problem/38385900> |
| |
| Reviewed by Tim Horton and Wenson Hsieh. |
| |
| Respond to and respect the effective appearance changing. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView effectiveAppearanceDidChange]): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setDefaultAppearance): |
| |
| 2018-03-16 Chris Dumez <cdumez@apple.com> |
| |
| URLSchemeHandler.Basic API test fails with async policy delegates |
| https://bugs.webkit.org/show_bug.cgi?id=183678 |
| |
| Reviewed by Alex Christensen. |
| |
| The issue is that the client calls _didPerformRedirection / didReceiveResponse / didReceiveData / didFinish |
| on the URLScheme task one after the one, synchronously. However, redirects and responses can be processed |
| asynchronously. To address the issue, we now queue operations requested by the client if we're waiting |
| for an async policy delegate. |
| |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| (WebKit::WebURLSchemeTaskProxy::didPerformRedirection): |
| (WebKit::WebURLSchemeTaskProxy::didReceiveResponse): |
| (WebKit::WebURLSchemeTaskProxy::didReceiveData): |
| (WebKit::WebURLSchemeTaskProxy::didComplete): |
| (WebKit::WebURLSchemeTaskProxy::processNextPendingTask): |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.h: |
| (WebKit::WebURLSchemeTaskProxy::queueTask): |
| |
| 2018-03-16 Claudio Saavedra <csaavedra@igalia.com> |
| |
| Suppress GCC warnings by using #include instead of #import |
| |
| Unreviewed. |
| * UIProcess/SystemPreviewController.cpp: |
| |
| 2018-03-15 Keith Rollin <krollin@apple.com> |
| |
| Telemetry for stalled webpage loads |
| https://bugs.webkit.org/show_bug.cgi?id=183221 |
| <rdar://problem/36549013> |
| |
| Reviewed by Chris Dumez. |
| |
| Add telemetry for page loads, tracking the pages that succeed, fail, |
| or are canceled. This information will be used to track the overall |
| health of our page loading as time goes on. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::reportPageLoadResult): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::reportPageLoadResult): |
| |
| 2018-03-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS WK2] Hit-testing fails when specifying a large top content inset |
| https://bugs.webkit.org/show_bug.cgi?id=183648 |
| <rdar://problem/38421894> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, in the process of computing unobscured content rect in the UI process on iOS, we subtract away parts |
| of the view that are obscured by insets (e.g. MobileSafari's chrome). The helper method -[WKWebView |
| _computeContentInset] is intended to compute these obscuring insets around the view, but it takes scroll view |
| insets into account. This means that if WKWebView's inner scroll view has content insets, we'll end up shrinking |
| the unobscured content rect as if the insetted region obscures the viewport; this causes visible content on the |
| page to be uninteractible, since WKWebView erroneously thinks it's obscured. |
| |
| To address this, we rename _computeContentInset to _computeObscuredInset, and make it _not_ affected by the |
| scroll view's content insets. From code inspection and testing, all but one of the former call sites of |
| _computeContentInset really need the obscured inset instead (see below). The one exception, -[WKWebView |
| _adjustedContentOffset:], takes a scroll position from the page and maps it to a content offset in the inner |
| UIScrollView (see below for more details). |
| |
| Tests: ScrollViewInsetTests.InnerHeightWithLargeTopContentInset |
| ScrollViewInsetTests.InnerHeightWithLargeBottomContentInset |
| ScrollViewInsetTests.RestoreInitialContentOffsetAfterCrash |
| ScrollViewInsetTests.RestoreInitialContentOffsetAfterNavigation |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setHasCustomContentView:loadedMIMEType:]): |
| (-[WKWebView _initialContentOffsetForScrollView]): |
| |
| See -_contentOffsetAdjustedForObscuredInset: below. |
| |
| (-[WKWebView _contentOffsetAdjustedForObscuredInset:]): |
| |
| Formerly -_adjustedContentOffset:. -_contentOffsetAdjustedForObscuredInset: no longer takes scroll view content |
| inset into account, and only cares about insets that obscure the view. This means that the scroll position |
| (0, 0) in the document now maps to the content offset in the inner UIScrollView, such that the top of the page |
| is aligned with the top of the viewport. |
| |
| However, many call sites of -_adjustedContentOffset: were intended to compute the initial, top-left-most content |
| offset in the scroll view to scroll to when resetting the web view (i.e., they pass in CGPointZero for the |
| scroll position). An example of this is the scroll position to jump to after web content process termination, or |
| the scroll position after main frame navigation. In these cases, we actually want to jump to the top of the |
| scroll view, so we do want to use the version of the computed content insets that accounts for scroll view |
| insets. |
| |
| Since these cases are limited to finding the top-left-most scroll position, we pull this out into a separate |
| helper method (-_initialContentOffsetForScrollView) and replace calls to |
| `-[self _adjustedContentOffset:CGPointZero]` with this instead. |
| |
| (-[WKWebView _computedObscuredInset]): |
| |
| A version of -_computeContentInset that doesn't care about scroll view insets. Used whereever we need to account |
| for obscured insets rather than the combination of content insets and unobscured insets (e.g. |
| -_initialContentOffsetForScrollView). |
| |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _didCommitLayerTree:]): |
| (-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]): |
| (-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]): |
| (-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): |
| (-[WKWebView _updateVisibleContentRects]): |
| (-[WKWebView _navigationGestureDidBegin]): |
| |
| In all these places where we inset the view bounds to compute the unobscured region of the viewport, it doesn't |
| make sense to additionally inset by the scroll view's content insets, since (1) the scroll view's content insets |
| don't obscure the viewport, and (2) it's perfectly valid for the inner scroll view to have arbitrarily large |
| content insets. |
| |
| (-[WKWebView _adjustedContentOffset:]): Deleted. |
| |
| Renamed to -_contentOffsetAdjustedForObscuredInset:. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView _offsetForPageNumberIndicator]): |
| |
| Similar to -_scrollToFragment: (see below). |
| |
| (-[WKPDFView _scrollToFragment:]): |
| |
| This helper figures out which content offset to scroll to, given the y-origin of a page in a PDF document. If |
| insets are added to the scroll view, we end up scrolling to the wrong content offset since we'll add the height |
| of the top content inset (imagine that the top content inset is enormous — then we'll scroll an amount equal to |
| the top content inset _past_ the point where the y-origin of the page is at the top of the viewport). |
| |
| 2018-03-15 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Correct sandbox violations during Flash playback under ToT WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=183672 |
| <rdar://problem/38510839> |
| |
| Reviewed by Eric Carlson. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-15 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r229484): Plugins often require CGS Connections to draw |
| https://bugs.webkit.org/show_bug.cgi?id=183663 |
| <rdar://problem/38439218> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Flash requires an active CGSConnection to work properly. Since we don't want the WebContent |
| process to have on, create a new plugin process-specific layer host creation method that |
| gives this access. |
| |
| * Platform/mac/LayerHostingContext.h: |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalPluginHostingProcess): Added. |
| * PluginProcess/mac/PluginControllerProxyMac.mm: |
| (WebKit::PluginControllerProxy::updateLayerHostingContext): Use the new creation |
| method. |
| |
| 2018-03-15 Zan Dobersek <zdobersek@igalia.com> |
| |
| [TexMap] Remove TextureMapperLayer::texture() |
| https://bugs.webkit.org/show_bug.cgi?id=183635 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Remove the CoordinatedBackingStore::texture() override since the virtual |
| method is also being removed. |
| |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: |
| (WebKit::CoordinatedBackingStore::texture const): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.h: |
| |
| 2018-03-14 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add clearing of storage access to WebResourceLoadStatisticsStore::clearInMemory() |
| https://bugs.webkit.org/show_bug.cgi?id=183641 |
| <rdar://problem/38469497> |
| |
| Reviewed by Brent Fulgham and Chris Dumez. |
| |
| This change is to stabilize existing layout tests by removing |
| all storage access entries on a call to |
| WebResourceLoadStatisticsStore::clearInMemory(). |
| See Ryan Haddad's comment in https://bugs.webkit.org/show_bug.cgi?id=183620. |
| |
| Almost all of the code changes are piping to get this |
| call from the WebResourceLoadStatisticsStore to |
| WebCore::NetworkStorageSession where entries reside. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::removeAllStorageAccess): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::removeAllStorageAccess): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::clearInMemory): |
| Now also clears all storage access entries in the network process. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeAllStorageAccessHandler): |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-03-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r229613. |
| |
| Caused API test failures |
| |
| Reverted changeset: |
| |
| "Make policy decisions asynchronous" |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| https://trac.webkit.org/changeset/229613 |
| |
| 2018-03-14 Chris Dumez <cdumez@apple.com> |
| |
| Reduce use of SWServerToContextConnection::globalServerToContextConnection() |
| https://bugs.webkit.org/show_bug.cgi?id=183626 |
| |
| Reviewed by Youenn Fablet. |
| |
| Reduce use of SWServerToContextConnection::globalServerToContextConnection() as we are moving |
| towards having multiple context connections. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| |
| 2018-03-14 Chris Dumez <cdumez@apple.com> |
| |
| Make policy decisions asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=180568 |
| <rdar://problem/37131297> |
| |
| Reviewed by Alex Christensen. |
| |
| Get rid of synchronous IPC and synchronous code paths for policy delegates. |
| Policy decisions are now all made asynchronously and rely on asynchronous |
| IPC. |
| |
| This code change is based on work by Alex Christensen. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-03-14 Chris Dumez <cdumez@apple.com> |
| |
| Drop unnecessary StorageToWebProcessConnection::workerContextProcessConnectionCreated() |
| https://bugs.webkit.org/show_bug.cgi?id=183624 |
| |
| Reviewed by Youenn Fablet. |
| |
| Drop unnecessary StorageToWebProcessConnection::workerContextProcessConnectionCreated() |
| since it was going through all SWServers. Calling workerContextProcessConnectionCreated() |
| on every StorageToWebProcessConnection was thus doing redundant work. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::establishSWServerConnection): |
| (WebKit::StorageToWebProcessConnection::workerContextProcessConnectionCreated): Deleted. |
| * StorageProcess/StorageToWebProcessConnection.h: |
| |
| 2018-03-14 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build after r229567 |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-03-13 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Immediately forward cookie access for domains with previous user interaction when there's an opener document |
| https://bugs.webkit.org/show_bug.cgi?id=183620 |
| <rdar://problem/38431469> |
| |
| Reviewed by Brent Fulgham. |
| |
| It turns out the fix in https://bugs.webkit.org/show_bug.cgi?id=183577 |
| wasn't enough to address the compatibility issues with popups. Some of |
| them just detect their unpartitioned cookies, auto-dismiss themselves, |
| and expect their unpartitioned cookies to be available under the opener |
| afterwards. We should grant them access if the popup's domain has had |
| user interaction _previously_. |
| |
| Note that we still need https://bugs.webkit.org/show_bug.cgi?id=183577 |
| because if the popup's domain has not received user interaction |
| previously, we will not grant it storage access on just the window open. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccessUnderOpener): Deleted. |
| Renamed WebResourceLoadStatisticsStore::grantStorageAccessUnderOpener() |
| to WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener() |
| since there is now a case where access will not be granted, i.e. when |
| the popup domain has not had user interaction previously. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.messages.in: |
| Similar renaming. |
| * WebProcess/WebProcess.cpp: |
| (WebProcess::WebProcess): |
| Similar renaming. |
| |
| 2018-03-13 Jer Noble <jer.noble@apple.com> |
| |
| Add missing artwork for fullscreen mode. |
| https://bugs.webkit.org/show_bug.cgi?id=183618 |
| |
| Reviewed by Jon Lee. |
| |
| * Resources/ios/iOS.xcassets/Done.imageset/Contents.json: Added. |
| * Resources/ios/iOS.xcassets/Done.imageset/Done.pdf: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/Contents.json: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@1x.png: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@2x.png: Added. |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@3x.png: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/Contents.json: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@1x.png: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@2x.png: Added. |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@3x.png: Added. |
| |
| 2018-03-13 Brian Burg <bburg@apple.com> |
| |
| [WK2] Web Inspector: NavigationAction for opening a link in a new tab should have a UserGestureIndicator |
| https://bugs.webkit.org/show_bug.cgi?id=183612 |
| <rdar://problem/38388641> |
| |
| Reviewed by Timothy Hatcher. |
| |
| The current gesture token will be attached to the NavigationAction at construction time, |
| so set up a UserGestureIndicator when creating the action and sending it out. |
| |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openInNewTab): |
| |
| 2018-03-13 Dean Jackson <dino@apple.com> |
| |
| WKSystemPreviewView needs to implement some of UIScrollViewDelegate |
| https://bugs.webkit.org/show_bug.cgi?id=183607 |
| <rdar://problem/38427622> |
| |
| Reviewed by Antoine Quint. |
| |
| Add an empty implementation of scrollViewDidScroll. |
| |
| * UIProcess/ios/WKSystemPreviewView.mm: |
| (-[WKSystemPreviewView scrollViewDidScroll:]): |
| |
| 2018-03-13 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Soft-link LocalAuthentication.Framework |
| https://bugs.webkit.org/show_bug.cgi?id=183587 |
| <rdar://problem/38219763> |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/CredentialManagement/cocoa/WebCredentialsMessengerProxyCocoa.mm: |
| (WebKit::WebCredentialsMessengerProxy::platformIsUserVerifyingPlatformAuthenticatorAvailable): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-12 Dean Jackson <dino@apple.com> |
| |
| Add a WKWebViewContentProvider for system previews |
| https://bugs.webkit.org/show_bug.cgi?id=183582 |
| <rdar://problem/38393569> |
| |
| Reviewed by Tim Horton. |
| |
| Implement WKSystemPreviewView, which conforms to WKWebViewContentProvider, in |
| order to view content as a "system preview". This effectively replaces the |
| SystemPreviewController, which will be removed soon. |
| |
| Some of the required methods of WKWebViewContentProvider are not necessary on |
| this instance, so a follow-up patch will clean the protocol up a bit. |
| |
| * UIProcess/Cocoa/NavigationState.mm: Don't trigger a SystemPreview when downloading. |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): Register the WKSystemPreviewView for |
| MIME types retrieved from WebKitAdditions. |
| |
| * UIProcess/ios/WKSystemPreviewView.h: Added. |
| * UIProcess/ios/WKSystemPreviewView.mm: Added. |
| |
| (-[WKSystemPreviewView web_initWithFrame:webView:]): |
| (-[WKSystemPreviewView web_setContentProviderData:suggestedFilename:]): This is the |
| method that actually creates a QuickLook preview and provides the data. |
| (-[WKSystemPreviewView web_setMinimumSize:]): |
| (-[WKSystemPreviewView web_setOverlaidAccessoryViewsInset:]): |
| (-[WKSystemPreviewView web_computedContentInsetDidChange]): |
| (-[WKSystemPreviewView web_setFixedOverlayView:]): |
| (-[WKSystemPreviewView web_didSameDocumentNavigation:]): |
| (-[WKSystemPreviewView web_countStringMatches:options:maxCount:]): |
| (-[WKSystemPreviewView web_findString:options:maxCount:]): |
| (-[WKSystemPreviewView web_hideFindUI]): |
| |
| (-[WKSystemPreviewView numberOfPreviewItemsInPreviewController:]): QuickLook delegates. |
| (-[WKSystemPreviewView previewController:previewItemAtIndex:]): |
| (-[WKSystemPreviewView provideDataForItem:]): |
| (-[WKSystemPreviewView previewControllerWillDismiss:]): |
| |
| * WebKit.xcodeproj/project.pbxproj: Add new files. |
| |
| 2018-03-12 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Immediately forward cookie access at user interaction when there's an opener document |
| https://bugs.webkit.org/show_bug.cgi?id=183577 |
| <rdar://problem/38266987> |
| |
| Reviewed by Brent Fulgham. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::hasStorageAccessForFrame): |
| Now also checks for general page access. |
| (WebKit::NetworkProcess::grantStorageAccess): |
| Renamed from grantStorageAccessForFrame since the frameID now is optional. |
| (WebKit::NetworkProcess::grantStorageAccessForFrame): Deleted. |
| Renamed since the frameID now is optional. |
| * NetworkProcess/NetworkProcess.h: |
| Renaming since the frameID now is optional. |
| * NetworkProcess/NetworkProcess.messages.in: |
| Renaming since the frameID now is optional. |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation): |
| Consequence of function renaming. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::grantStorageAccess): |
| (WebKit::NetworkProcessProxy::grantStorageAccessForFrame): Deleted. |
| Renaming since the frameID now is optional. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| Renaming since the frameID now is optional. |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| Handler renaming since the frameID now is optional. |
| (WebKit::WebResourceLoadStatisticsStore::grantStorageAccessUnderOpener): |
| New function for that grants cookie access under a whole page. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| Member renaming since the frameID now is optional. |
| * UIProcess/WebResourceLoadStatisticsStore.messages.in: |
| New message received straight from WebCore::ResourceLoadObserver. |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::grantStorageAccessHandler): |
| Renamed and made frameID optional. |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| Consequence of renaming and making frameID optional. |
| (WebKit::WebsiteDataStore::grantStorageAccessForFrameHandler): Deleted. |
| Renamed and made frameID optional. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebProcess/WebProcess.cpp: |
| (WebProcess::WebProcess): |
| Now calls setGrantStorageAccessUnderOpenerCallback() on the shared |
| WebCore::ResourceLoadObserver. |
| |
| 2018-03-12 Tim Horton <timothy_horton@apple.com> |
| |
| Stop using SDK conditionals to control feature definitions |
| https://bugs.webkit.org/show_bug.cgi?id=183430 |
| <rdar://problem/38251619> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Configurations/WebKitTargetConditionals.xcconfig: Renamed. |
| |
| 2018-03-12 Yoav Weiss <yoav@yoav.ws> |
| |
| Runtime flag for link prefetch and remove link subresource. |
| https://bugs.webkit.org/show_bug.cgi?id=183540 |
| |
| Reviewed by Chris Dumez. |
| |
| Remove the LINK_PREFETCH build time flag. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::maximumBufferingTime): |
| |
| 2018-03-12 Chris Dumez <cdumez@apple.com> |
| |
| Load may get committed before receiving policy for the resource response |
| https://bugs.webkit.org/show_bug.cgi?id=183579 |
| <rdar://problem/38268780> |
| |
| Reviewed by Youenn Fablet. |
| |
| r228852 updated WebResourceLoader::didReceiveResponse to only send the |
| ContinueDidReceiveResponse IPC back to the Networkprocess *after* the |
| policy decision for the resource response has been made. This is necessary |
| now that policy decisions can be made asynchronously. |
| |
| However, one of the 2 code paths in NetworkProcess side (code path when |
| the resource is already in the HTTP disk cache) failed to wait for the |
| ContinueDidReceiveResponse IPC before sending over the data to the WebProcess. |
| As a result, the WebProcess could commit the load before even receiving the |
| policy response from the client. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::continueProcessingCachedEntryAfterDidReceiveResponse): |
| * NetworkProcess/NetworkResourceLoader.h: |
| Make sure NetworkResourceLoader::didRetrieveCacheEntry() does not start sending the data |
| until the network process gets the ContinueDidReceiveResponse IPC back from the WebProcess. |
| |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| (WebKit::WebResourceLoader::didReceiveData): |
| * WebProcess/Network/WebResourceLoader.h: |
| Add assertion to make sure didReceiveData() never gets called before didReceiveResponse's |
| completion handler has been called. If this hits, then the load may get committed even |
| though the client did not reply to the policy for the resource response yet. |
| |
| 2018-03-12 Ali Juma <ajuma@chromium.org> |
| |
| http/tests/workers/service/service-worker-download.https.html times out with async policy delegates |
| https://bugs.webkit.org/show_bug.cgi?id=183479 |
| |
| Reviewed by Youenn Fablet. |
| |
| Ensure that ServiceWorkerFetchClient::m_isCheckingResponse is set before code that depends on it |
| executes. This bit was set by code that's posted to the runloop using 'callOnMainThread' in |
| ServiceWorkerFetchClient::didReceiveResponse. But when didReceiveResponse is executing, tasks for |
| handling didReceiveData, didFail, or didFinish may already have been posted to the runloop, and in |
| that case would execute before m_isCheckingResponse gets set, and then incorrectly fail to |
| early-out. Fix this by directly setting m_isCheckingResponse in didReceiveResponse. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::start): |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-03-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION(r211643): Dismissing WKActionSheet should not also dismiss its presenting view controller |
| https://bugs.webkit.org/show_bug.cgi?id=183549 |
| <rdar://problem/34960698> |
| |
| Reviewed by Andy Estes. |
| |
| Fixes the bug by dismissing the presented view controller (i.e. the action sheet or the view controller being |
| presented during rotation) rather than the presenting view controller. |
| |
| Test: ActionSheetTests.DismissingActionSheetShouldNotDismissPresentingViewController |
| |
| * UIProcess/ios/WKActionSheet.mm: |
| (-[WKActionSheet doneWithSheet:]): |
| |
| 2018-03-12 Javier Fernandez <jfernandez@igalia.com> |
| |
| Remove GridLayout runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=183484 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| The Grid Layout feature has been enabled by default for almost a |
| year, so I think it's time to remove the runtime flag and the |
| codepath run when the feature is disabled. |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-03-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix the internal iOS build after r229512 |
| https://bugs.webkit.org/show_bug.cgi?id=183550 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Fixes a typo in a header import, as well as a nullability error. `SecTrustEvaluate()` takes in a nonnull outparam, |
| which was removed in r229512; this adds the outparam back, but does not consult its value when setting the |
| `infoDictionary`. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2018-03-10 Jer Noble <jer.noble@apple.com> |
| |
| Improvements to fullscreen; new UI and security features |
| https://bugs.webkit.org/show_bug.cgi?id=183503 |
| |
| Reviewed by Dean Jackson. |
| |
| Now that the iOS Fullscreen code has more than one major class, move it into an ios/ |
| directory. |
| |
| Clean up the WKFullScreenWindowControllerIOS class to more clearly separate external |
| facing API from purely internal functions. |
| |
| Move the WKFullScreenViewController out into its own file. Add support for fullscreen |
| top inset and fullscreen autohide duration CSS constants. |
| |
| Add a heuristic to distinguish between media control related touches and ones that look |
| more keyboard interactions. |
| |
| Add a new UIStackView based control to hold the fullscreen controls. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: Removed. |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.cpp: Added. |
| (WebKit::FullscreenTouchSecheuristic::scoreOfNextTouch): |
| (WebKit::FullscreenTouchSecheuristic::reset): |
| (WebKit::FullscreenTouchSecheuristic::distanceScore): |
| (WebKit::FullscreenTouchSecheuristic::attenuationFactor): |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h: |
| (WebKit::FullscreenTouchSecheuristic::setRampUpSpeed): |
| (WebKit::FullscreenTouchSecheuristic::setRampDownSpeed): |
| (WebKit::FullscreenTouchSecheuristic::setXWeight): |
| (WebKit::FullscreenTouchSecheuristic::setYWeight): |
| (WebKit::FullscreenTouchSecheuristic::setSize): |
| (WebKit::FullscreenTouchSecheuristic::setGamma): |
| (WebKit::FullscreenTouchSecheuristic::setGammaCutoff): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: Added. |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setParent): |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| (-[_WKExtrinsicButton setExtrinsicContentSize:]): |
| (-[_WKExtrinsicButton intrinsicContentSize]): |
| (-[WKFullScreenViewController initWithWebView:]): |
| (-[WKFullScreenViewController dealloc]): |
| (-[WKFullScreenViewController showUI]): |
| (-[WKFullScreenViewController hideUI]): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController setPrefersStatusBarHidden:]): |
| (-[WKFullScreenViewController setPlaying:]): |
| (-[WKFullScreenViewController setPictureInPictureActive:]): |
| (-[WKFullScreenViewController loadView]): |
| (-[WKFullScreenViewController viewWillAppear:]): |
| (-[WKFullScreenViewController viewDidLayoutSubviews]): |
| (-[WKFullScreenViewController viewWillTransitionToSize:withTransitionCoordinator:]): |
| (-[WKFullScreenViewController preferredStatusBarStyle]): |
| (-[WKFullScreenViewController prefersStatusBarHidden]): |
| (-[WKFullScreenViewController gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKFullScreenViewController gestureRecognizer:shouldReceiveTouch:]): |
| (-[WKFullScreenViewController _manager]): |
| (-[WKFullScreenViewController _effectiveFullscreenInsetTop]): |
| (-[WKFullScreenViewController _cancelAction:]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| (-[WKFullScreenViewController _touchDetected:]): |
| (-[WKFullScreenViewController _statusBarFrameDidChange:]): |
| (-[WKFullScreenViewController _updateWebViewFullscreenInsets]): |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h: Copied from Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.h. |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: Added. |
| (WebKit::replaceViewWithView): |
| (WebKit::WKWebViewState::applyTo): |
| (WebKit::WKWebViewState::store): |
| (-[WKFullscreenAnimationController transitionDuration:]): |
| (-[WKFullscreenAnimationController configureInitialAndFinalStatesForTransition:]): |
| (-[WKFullscreenAnimationController animateTransition:]): |
| (-[WKFullscreenAnimationController animationEnded:]): |
| (-[WKFullscreenAnimationController startInteractiveTransition:]): |
| (-[WKFullscreenAnimationController updateWithPercent:]): |
| (-[WKFullscreenAnimationController updateWithPercent:translation:anchor:]): |
| (-[WKFullscreenAnimationController end:]): |
| (-[WKFullScreenInteractiveTransition initWithAnimator:anchor:]): |
| (-[WKFullScreenInteractiveTransition wantsInteractiveStart]): |
| (-[WKFullScreenInteractiveTransition startInteractiveTransition:]): |
| (-[WKFullScreenInteractiveTransition updateInteractiveTransition:withTranslation:]): |
| (-[WKFullScreenInteractiveTransition cancelInteractiveTransition]): |
| (-[WKFullScreenInteractiveTransition finishInteractiveTransition]): |
| (-[WKFullScreenWindowController initWithWebView:]): |
| (-[WKFullScreenWindowController dealloc]): |
| (-[WKFullScreenWindowController isFullScreen]): |
| (-[WKFullScreenWindowController webViewPlaceholder]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController requestExitFullScreen]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController close]): |
| (-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]): |
| (-[WKFullScreenWindowController videoControlsManagerDidChange]): |
| (-[WKFullScreenWindowController gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKFullScreenWindowController animationControllerForPresentedController:presentingController:sourceController:]): |
| (-[WKFullScreenWindowController animationControllerForDismissedController:]): |
| (-[WKFullScreenWindowController interactionControllerForDismissal:]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| (-[WKFullScreenWindowController _invalidateEVOrganizationName]): |
| (-[WKFullScreenWindowController _isSecure]): |
| (-[WKFullScreenWindowController _serverTrust]): |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| (-[WKFullScreenWindowController _updateLocationInfo]): |
| (-[WKFullScreenWindowController _manager]): |
| (-[WKFullScreenWindowController _startToDismissFullscreenChanged:]): |
| (-[WKFullScreenWindowController _interactiveDismissChanged:]): |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.h: Renamed from Source/WebKit/UIProcess/ios/WKFullScreenWindowControllerIOS.h. |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.mm: Added. |
| (+[WKFullscreenStackView baseEffects]): |
| (+[WKFullscreenStackView configureView:forTintEffectWithColor:filterType:]): |
| (+[WKFullscreenStackView configureView:withBackgroundFillOfColor:opacity:filter:]): |
| (+[WKFullscreenStackView secondaryMaterialOverlayView]): |
| (+[WKFullscreenStackView applyPrimaryGlyphTintToView:]): |
| (+[WKFullscreenStackView applySecondaryGlyphTintToView:]): |
| (-[WKFullscreenStackView initWithArrangedSubviews:axis:]): |
| (-[WKFullscreenStackView setTargetViewForSecondaryMaterialOverlay:]): |
| (-[WKFullscreenStackView contentView]): |
| (-[WKFullscreenStackView _setArrangedSubviews:axis:]): |
| (-[WKFullscreenStackView setBounds:]): |
| (-[WKFullscreenStackView updateConstraints]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-10 Megan Gardner <megan_gardner@apple.com> |
| |
| Media query for default appearance |
| https://bugs.webkit.org/show_bug.cgi?id=183539 |
| <rdar://problem/38326388> |
| |
| Reviewed by Tim Horton. |
| |
| Write a media query to evaluate appearance. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::setDefaultAppearance): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::defaultAppearance const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::WebPage::setDefaultAppearance): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Unconditionalize more methods in VideoFullscreenInterface (and related classes) |
| https://bugs.webkit.org/show_bug.cgi?id=183501 |
| <rdar://problem/38312038> |
| |
| Unreviewed build fix; add correct pragmas to code referencing m_playbackSessionManager. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::hasActiveVideoForControlsManager const): |
| (WebKit::WebPageProxy::requestControlledElementID const): |
| (WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const): |
| |
| 2018-03-09 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: there should only be one way for async backend commands to send failure |
| https://bugs.webkit.org/show_bug.cgi?id=183524 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Remove useless ErrorString argument from async commands. |
| |
| For Automation protocol, introduce sync and async macros for filling |
| in and sending a failure response. Now that async commands don't have |
| an ErrorString and sync commands don't have a callback, trying to send |
| an error with the wrong macro is a compile-time error. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::getBrowsingContexts): |
| (WebKit::WebAutomationSession::getBrowsingContext): |
| (WebKit::WebAutomationSession::createBrowsingContext): |
| (WebKit::WebAutomationSession::closeBrowsingContext): |
| (WebKit::WebAutomationSession::switchToBrowsingContext): |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): |
| (WebKit::WebAutomationSession::waitForNavigationToComplete): |
| (WebKit::WebAutomationSession::navigateBrowsingContext): |
| (WebKit::WebAutomationSession::goBackInBrowsingContext): |
| (WebKit::WebAutomationSession::goForwardInBrowsingContext): |
| (WebKit::WebAutomationSession::reloadBrowsingContext): |
| (WebKit::WebAutomationSession::evaluateJavaScriptFunction): |
| (WebKit::WebAutomationSession::resolveChildFrameHandle): |
| (WebKit::WebAutomationSession::resolveParentFrameHandle): |
| (WebKit::WebAutomationSession::computeElementLayout): |
| (WebKit::WebAutomationSession::selectOptionElement): |
| (WebKit::WebAutomationSession::isShowingJavaScriptDialog): |
| (WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog): |
| (WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog): |
| (WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog): |
| (WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt): |
| (WebKit::WebAutomationSession::setFilesToSelectForFileUpload): |
| (WebKit::WebAutomationSession::getAllCookies): |
| (WebKit::WebAutomationSession::deleteSingleCookie): |
| (WebKit::WebAutomationSession::addSingleCookie): |
| (WebKit::WebAutomationSession::deleteAllCookies): |
| (WebKit::WebAutomationSession::setSessionPermissions): |
| (WebKit::WebAutomationSession::performMouseInteraction): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| (WebKit::WebAutomationSession::takeScreenshot): |
| (WebKit::WebAutomationSession::didTakeScreenshot): |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/Automation/WebAutomationSessionMacros.h: |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::inspectBrowsingContext): |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Don't pass NULL to the result parameter of SecTrustEvaluate() |
| https://bugs.webkit.org/show_bug.cgi?id=183495 |
| <rdar://problem/38185688> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2018-03-09 Dean Jackson <dino@apple.com> |
| |
| Allow NavigationState to intercept requests and send them to SystemPreviewController |
| https://bugs.webkit.org/show_bug.cgi?id=183526 |
| <rdar://problem/37801140> |
| |
| Reviewed by Tim Horton. |
| |
| Implement a bit more of SystemPreviewController, such that it can be used |
| from NavigationState to identify and handle content that can be previewed. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): |
| If we'd in a download response policy, then check if SystemPreviewController |
| can show the content. We ignore the download, but pass the original URL onto |
| the preview. Ultimately, we'd want to avoid the navigation |
| but use the download destination URL for preview. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource initWithURL:]): |
| Move the URL to property, to help use a single datasource object for all previews. |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (-[_WKPreviewControllerDelegate initWithSystemPreviewController:]): |
| Add a delegate object, so we can detect when the preview is dismissed and return |
| to the previous page. |
| (-[_WKPreviewControllerDelegate previewControllerWillDismiss:]): |
| (WebKit::SystemPreviewController::showPreview): |
| Use single instances of the QLPreviewController, its datasource and delegate. |
| |
| * UIProcess/SystemPreviewController.cpp: |
| Add a helper to navigate back. |
| (WebKit::SystemPreviewController::SystemPreviewController): |
| (WebKit::SystemPreviewController::sendPageBack): |
| * UIProcess/SystemPreviewController.h: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| webkitfullscreenchange event not fired at the same time as :-webkit-full-screen pseudo selector changes; causes glitchiness |
| https://bugs.webkit.org/show_bug.cgi?id=183383 |
| <rdar://problem/38197028> |
| |
| Reviewed by Eric Carlson. |
| |
| Follow-up patch: now that the 'fullscreenchange' event is being fired slightly earlier, the |
| Fullscreen.TopContentInset tests triggers what appears to be an existing behavior: if you |
| exit in the middle of an enter fullscreen animation, the exit never happens, because the |
| NSWindow never starts the exit animation. The solution is to store the exit fullscreen |
| request, and only act upon it when the enter animation completes. |
| |
| * UIProcess/mac/WKFullScreenWindowController.h: |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Unconditionalize more methods in VideoFullscreenInterface (and related classes) |
| https://bugs.webkit.org/show_bug.cgi?id=183501 |
| |
| Reviewed by Eric Carlson. |
| |
| No reason for these methods to be PLATFORM(MAC) only. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _videoControlsManagerDidChange]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionManagerProxy::setUpPlaybackControlsManagerWithID): |
| (WebKit::PlaybackSessionManagerProxy::clearPlaybackControlsManager): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::isPlayingMediaDidChange): |
| (WebKit::WebPageProxy::handleControlledElementIDResponse const): |
| (WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::videoControlsManagerDidChange): |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.h: |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController videoControlsManagerDidChange]): |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionManager::setUpPlaybackControlsManager): |
| |
| 2018-03-09 Per Arne Vollan <pvollan@apple.com> |
| |
| Create CA layer contexts with +remoteContextWithOptions. |
| https://bugs.webkit.org/show_bug.cgi?id=182747 |
| |
| Reviewed by Brent Fulgham. |
| |
| CA layer contexts (CAContext) are currently created with +contextWithCGSConnection, which is |
| using the main WindowServer connection to create the context. Instead, the contexts can be |
| created with +remoteContextWithOptions, which does not use the main WindowServer connection. |
| This is a step towards limiting the access the WebContent process has to the window server. |
| To make the +remoteContextWithOptions call succeed, the sandbox has to be modified to allow |
| access to CARenderServer. Also, access to the WindowServer should be denied by calling |
| CGSSetDenyWindowServerConnections(true) before entering the sandbox. This is planned to do |
| in a follow-up patch. The call to +remoteContextWithOptions will open up WindowServer |
| connections, since the WindowServer is the system default CA render server, but these |
| connections come with limited WindowServer exposure. In addition, we need to open up the |
| sandbox for accessing some IOKit properties. |
| |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * Shared/mac/HangDetectionDisablerMac.mm: |
| (WebKit::setClientsMayIgnoreEvents): |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove cookie API access from WebContent Process |
| https://bugs.webkit.org/show_bug.cgi?id=183519 |
| <rdar://problem/35368802> |
| |
| Reviewed by Alex Christensen. |
| |
| All cookie access is now handled in the Network Process. However, there are vestiges of the original logic that used CFNetwork APIs in the WebContent process. |
| |
| This patch removes CFNetwork calls from the WebProcess code paths, since they serve no purpose in modern WebKit. |
| |
| No tests because this is a code cleanup with no expected change in behavior. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| (WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy): Moved from WebFrameNetworkingContext. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::setSharedHTTPCookieStorage): Moved from ChildProcess, since this should only be |
| called in the NetworkProcess. |
| * Shared/ChildProcess.h: |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::setSharedHTTPCookieStorage): Deleted. |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.h: |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): Remove CFNetwork code. This version of |
| 'ensureWebsiteDataStoreSession' is needed to maintain a dictionary on the WebProcess side so we can refer to |
| the same network session in both the WebContent and Network processes. |
| (WebKit::WebFrameNetworkingContext::webFrameLoaderClient const): |
| (WebKit::WebFrameNetworkingContext::setCookieAcceptPolicyForAllContexts): Deleted. |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): Remove calls to CFNetwork. |
| |
| 2018-03-09 Youenn Fablet <youenn@apple.com> |
| |
| ServiceWorkerClientFetch should send data to its resource loader once the didReceiveResponse completion handler is called |
| https://bugs.webkit.org/show_bug.cgi?id=183110 |
| |
| Reviewed by Chris Dumez. |
| |
| Buffering data/finish event/fail event until the response completion handler is called. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| (WebKit::ServiceWorkerClientFetch::didReceiveData): |
| (WebKit::ServiceWorkerClientFetch::didFinish): |
| (WebKit::ServiceWorkerClientFetch::didFail): |
| (WebKit::ServiceWorkerClientFetch::didNotHandle): |
| (WebKit::ServiceWorkerClientFetch::cancel): |
| (WebKit::ServiceWorkerClientFetch::continueLoadingAfterCheckingResponse): |
| * WebProcess/Storage/ServiceWorkerClientFetch.h: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Add new CSS env constants for use with fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=183498 |
| |
| Reviewed by Dean Jackson. |
| |
| Pass the values given to WebFullScreenManagerProxy through the process boundary and |
| into WebCore. |
| |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::setFullscreenInsetTop): |
| (WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDelay): |
| * UIProcess/WebFullScreenManagerProxy.h: |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::didExitFullScreen): |
| (WebKit::WebFullScreenManager::setFullscreenInsetTop): |
| (WebKit::WebFullScreenManager::setFullscreenAutoHideDelay): |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| * WebProcess/FullScreen/WebFullScreenManager.messages.in: |
| |
| 2018-03-09 Jer Noble <jer.noble@apple.com> |
| |
| Add isPictureInPictureActive messaging across WebKit process boundary |
| https://bugs.webkit.org/show_bug.cgi?id=183499 |
| |
| Reviewed by Eric Carlson. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged): |
| (WebKit::PlaybackSessionManagerProxy::pictureInPictureActiveChanged): |
| |
| 2018-03-09 Stephan Szabo <stephan.szabo@sony.com> |
| |
| Add guard for wtf/glib include |
| https://bugs.webkit.org/show_bug.cgi?id=183521 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: |
| |
| 2018-03-09 Andy Estes <aestes@apple.com> |
| |
| [Mac] WebKit fails to receive file promises when the embedding app is sandboxed |
| https://bugs.webkit.org/show_bug.cgi?id=183489 |
| <rdar://problem/38267517> |
| |
| WebKit calls -[NSFilePromiseReceiver receivePromisedFilesAtDestination:...] with |
| NSTemporaryDirectory() as the destination for receiving file promise drops. AppKit attempts |
| to issue a sandbox extension for this directory, but for security reasons App Sandbox |
| refuses to do so for NSTemporaryDirectory() itself. As a result, AppKit will call our reader |
| block with a nil error and a valid file URL, but no file will actually exist at that URL. |
| |
| In order for App Sandbox to grant issuing the sandbox extension needed by AppKit, we need to |
| use some other destination directory. This patch uses FileSystem::createTemporaryDirectory() |
| to securely create a unique temporary directory inside NSTemporaryDirectory() for use as the |
| drop destination. |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-03-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Do not use WebKitDOMHTMLFormElement as argument of signal WebKitWebPage::will-submit-form |
| https://bugs.webkit.org/show_bug.cgi?id=183510 |
| |
| Reviewed by Michael Catanzaro. |
| |
| In 2.22 WebKitDOMHTMLFormElement will be deprecated in GTK+ port and won't still exist in WPE. The new |
| JavaScript GLib API will be used to replace most of the DOM API, but a few classes will remain with a minimal |
| API for things that can't be done with JavaScript. WebKitDOMElement will stay and will be added to WPE as well, |
| so if we change the signal parameter to WebKitDOMElement we will be able to keep using |
| WebKitWebPage::will-submit-form without any changes. WPE will gain this signal and the rest of the API that uses |
| DOM. |
| |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): |
| |
| 2018-03-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. [GTK][WPE] Bump Since tags of resource load stats API. |
| |
| The functionality hasn't been properly tested to be released in WebKitGTK+ 2.20. |
| |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkit_website_data_manager_class_init): |
| * UIProcess/API/gtk/WebKitWebsiteData.h: |
| * UIProcess/API/wpe/WebKitWebsiteData.h: |
| |
| 2018-03-08 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed. Suppress GCC warnings in SystemPreviewController.cpp by |
| using the cross-platform #include directives for header inclusion, |
| instead of #import. |
| |
| * UIProcess/SystemPreviewController.cpp: |
| |
| 2018-03-08 Megan Gardner <megan_gardner@apple.com> |
| |
| Allow WebViews to disable system appearance |
| https://bugs.webkit.org/show_bug.cgi?id=183418 |
| <rdar://problem/36975642> |
| |
| Reviewed by Tim Horton. |
| |
| Allow webviews to choose whether or not to follow the default system appearance. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _useSystemAppearance]): |
| (-[WKWebView _setUseSystemAppearance:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::setUseSystemAppearance): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::useSystemAppearance const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setUseSystemAppearance): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-03-08 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, speculative attempt to fix CMake build after r229426 |
| https://bugs.webkit.org/show_bug.cgi?id=183382 |
| <rdar://problem/38191450> |
| |
| * CMakeLists.txt: |
| |
| 2018-03-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Support resigning first responder status when focusing a form control |
| https://bugs.webkit.org/show_bug.cgi?id=183477 |
| <rdar://problem/38225994> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, when presenting an input view controller in extra zoom mode, if the web view loses first responder |
| status, we will blur the focused element, which dismisses all focused form control UI. For certain types of form |
| controls, this prevents the user from using key pieces of functionality. |
| |
| To address this, disconnect the notion of first responder status from DOM element focus while the form control |
| overlay is shown. Later, when the active input session ends, if the web content view was first responder before |
| upon focusing the element, restore first responder status on the web view. This extra tweak is needed to ensure |
| that certain UI affordances which require first responder status on the web view continue to work after |
| interacting with a form control that changes the first responder. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentFocusedFormControlViewController:]): |
| (-[WKContentView dismissFocusedFormControlViewController:]): |
| |
| 2018-03-08 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Revert defaults read of zero values |
| https://bugs.webkit.org/show_bug.cgi?id=183476 |
| |
| Unreviewed revert of three small changes landed in r229427. |
| |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| Reverted back to strict check of greater than zero for defaults reads. |
| |
| 2018-03-08 Tim Horton <timothy_horton@apple.com> |
| |
| Don't have SafariServices in minimal simulator build |
| https://bugs.webkit.org/show_bug.cgi?id=183436 |
| <rdar://problem/38254778> |
| |
| Reviewed by Dan Bernstein. |
| |
| * config.h: |
| |
| 2018-03-08 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make debug mode always partition prevalent resources |
| https://bugs.webkit.org/show_bug.cgi?id=183468 |
| <rdar://problem/38269437> |
| |
| Reviewed by Brent Fulgham. |
| |
| After some testing we decided that a 30 second timeout in ITP debug mode just makes |
| it confusing. We should instead always partition prevalent resources in debug mode |
| to make it easy to understand. The partitioned state is what developers want to test |
| anyway. |
| |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| Minor change to include 0 as valid setting. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| Now just stores the setting of debug mode instead of changing the timeout. |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| Now does not disable partitioning under debug mode. |
| (WebKit::WebResourceLoadStatisticsStore::shouldPartitionCookies const): |
| Now returns true for prevalent resources with user interaction under debug mode. |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| Removed duplicate debug logging statement. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| Added member m_debugModeEnabled. |
| |
| 2018-03-08 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove WebCookieManager and messaging from WebContent process. |
| https://bugs.webkit.org/show_bug.cgi?id=183382 |
| <rdar://problem/38191450> |
| |
| Reviewed by Alex Christensen. |
| |
| Networking access was fully removed from the WebContent process in Bug 183192 (and related bugs). The |
| UIProcess no longer needs to ask the WebContent process about networking-related things, and shouldn't |
| waste everyone's time doing so. |
| |
| This bug removes some left-over WebCookieManager API stuff, and is a first step in purging the |
| WebContent Process from accessing cookie data. |
| |
| * NetworkProcess/Cookies: Copied from WebProcess/Cookies. |
| * NetworkProcess/Cookies/WebCookieManager.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Cookies: Removed. |
| * WebProcess/Cookies/WebCookieManager.cpp: Removed. |
| * WebProcess/Cookies/WebCookieManager.h: Removed. |
| * WebProcess/Cookies/WebCookieManager.messages.in: Removed. |
| * WebProcess/Cookies/curl: Removed. |
| * WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: Removed. |
| * WebProcess/Cookies/mac: Removed. |
| * WebProcess/Cookies/mac/WebCookieManagerMac.mm: Removed. |
| * WebProcess/Cookies/soup: Removed. |
| * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp: Removed. |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: Remove 'WebCookieManager.h" header. |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: Ditto. |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: Ditto. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::WebProcess): Remove call to add WebCookieManager as a |
| WebProcessSupplement. |
| * CMakeLists.txt: Revised paths. |
| * DerivedSources.make: Ditto. |
| * PlatformMac.cmake: Ditto. |
| * PlatformWin.cmake: Ditto. |
| * SourcesGTK.txt: Ditto. |
| * SourcesWPE.txt: Ditto. |
| |
| 2018-03-08 Youenn Fablet <youenn@apple.com> |
| |
| libwebrtc update broke internal builds |
| https://bugs.webkit.org/show_bug.cgi?id=183454 |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/BaseTarget.xcconfig: |
| |
| 2018-03-08 Youenn Fablet <youenn@apple.com> |
| |
| PluginInfoStore::isSupportedPlugin should check for empty mime type |
| https://bugs.webkit.org/show_bug.cgi?id=183457 |
| <rdar://problem/38159575> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::isSupportedPlugin): |
| |
| 2018-03-08 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC][WebCore] Extend jsDynamicCast for WebCore types in WebCore and remove jsDynamicDowncast |
| https://bugs.webkit.org/show_bug.cgi?id=183449 |
| |
| Reviewed by Mark Lam. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::elementForNodeHandle): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::frameForContext): |
| |
| 2018-03-08 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Add inherits<T>(VM&) leveraging JSCast fast path |
| https://bugs.webkit.org/show_bug.cgi?id=183429 |
| |
| Reviewed by Mark Lam. |
| |
| * WebProcess/Plugins/Netscape/JSNPMethod.cpp: |
| (WebKit::callMethod): |
| * WebProcess/Plugins/Netscape/JSNPObject.cpp: |
| (WebKit::callNPJSObject): |
| (WebKit::constructWithConstructor): |
| * WebProcess/Plugins/Netscape/NPJSObject.cpp: |
| (WebKit::NPJSObject::create): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::counterValue): |
| |
| 2018-03-08 Zan Dobersek <zdobersek@igalia.com> |
| |
| Remove WebCore::TextureMapperAnimation as a special case in WebKit IPC |
| generation. Values of this type aren't being transferred across IPC. |
| |
| Rubber-stamped by Carlos Garcia Campos. |
| |
| * Scripts/webkit/messages.py: |
| |
| 2018-03-08 Tim Horton <timothy_horton@apple.com> |
| |
| Stop linking ApplicationServices directly |
| https://bugs.webkit.org/show_bug.cgi?id=182867 |
| <rdar://problem/38252142> |
| |
| Reviewed by Alex Christensen. |
| |
| The frameworks that we use that live inside ApplicationServices |
| have mostly moved out, so import them directly. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-03-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Specify password mode as needed when inputting text |
| https://bugs.webkit.org/show_bug.cgi?id=183428 |
| <rdar://problem/37609386> |
| |
| Reviewed by Tim Horton. |
| |
| If the focused element is a password field, or the input delegate has forced secure text entry, set a flag on |
| the text input view controller to opt in to password text input mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentTextInputViewController:]): |
| |
| 2018-03-07 Tim Horton <timothy_horton@apple.com> |
| |
| Sort and separate FeatureDefines.xcconfig |
| https://bugs.webkit.org/show_bug.cgi?id=183427 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| Sort and split FeatureDefines into paragraphs |
| (to make it easier to sort later). |
| |
| 2018-03-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r218089): [GTK] webkit_web_view_get_inspector() needs to be called, otherwise inspector does not close |
| https://bugs.webkit.org/show_bug.cgi?id=181126 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Fix the condition to decide whether to detach the inspector view ourselves. |
| |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformDetach): Remove the inspector view from its parent if we don't have a client |
| or the client didn't detach it. |
| |
| 2018-03-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Leak checker is not working in WebKitGLib web process tests |
| https://bugs.webkit.org/show_bug.cgi?id=183404 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add private helper for testing to do a garbage collection when the page is closing. |
| |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtension.cpp: |
| (webkitWebExtensionSetGarbageCollectOnPageDestroy): |
| * WebProcess/InjectedBundle/API/glib/WebKitWebExtensionPrivate.h: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h: Fix annotation of |
| webkit_dom_client_rect_list_item(), it should be transfer full. |
| |
| 2018-03-07 Youenn Fablet <youenn@apple.com> |
| |
| Match unsupported plugins based on domains and not origin |
| https://bugs.webkit.org/show_bug.cgi?id=183384 |
| |
| Reviewed by Chris Dumez. |
| |
| Moved from a HashMap of plugins to a Vector of plugins since we cannot match exactly based on the origin. |
| |
| * Scripts/webkit/messages.py: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextAddSupportedPlugin): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _addSupportedPlugin:named:withMimeTypes:withExtensions:]): |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::isSupportedPlugin): |
| (WebKit::PluginInfoStore::supportedPluginNames): |
| (WebKit::PluginInfoStore::addSupportedPlugin): |
| * UIProcess/Plugins/PluginInfoStore.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addSupportedPlugin): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPlugins): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::getPluginInfo): |
| (WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| |
| 2018-03-07 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION (r229093): Media playback on Facebook and Hulu require mDNSResponder access |
| https://bugs.webkit.org/show_bug.cgi?id=183421 |
| <rdar://problem/38191574> |
| |
| Reviewed by Dean Jackson. |
| |
| CoreMedia fails to properly play back media on Facebook and Hulu if access to the |
| mDNSResponder is blocked by the sandbox. This Bug unblocks that access while we |
| investigate the underlying issue. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-07 Dean Jackson <dino@apple.com> |
| |
| Try to fix build for watchOS and tvOS. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| * UIProcess/SystemPreviewController.cpp: |
| |
| 2018-03-07 Dean Jackson <dino@apple.com> |
| |
| Add SystemPreviewController for showing system-level views of special file types |
| https://bugs.webkit.org/show_bug.cgi?id=183413 |
| <rdar://problem/37800834> |
| |
| Reviewed by Tim Horton. |
| |
| Add a new controller class that hangs off WebPageProxy, with the goal |
| of providing system-level viewing of some some file types. Specifically |
| those that can't be shown by WebKit. |
| |
| This is the initial implementation which is quite simple. The controller |
| can be queried about whether it supports a MIME type, then it can be |
| asked to show a URL. |
| |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: Added. |
| (-[_WKPreviewControllerDataSource initWithURL:]): |
| (-[_WKPreviewControllerDataSource numberOfPreviewItemsInPreviewController:]): |
| (-[_WKPreviewControllerDataSource previewController:previewItemAtIndex:]): |
| (WebKit::SystemPreviewController::canPreview const): |
| (WebKit::SystemPreviewController::showPreview): |
| * UIProcess/SystemPreviewController.cpp: Added. |
| (WebKit::SystemPreviewController::SystemPreviewController): |
| (WebKit::SystemPreviewController::canPreview const): |
| (WebKit::SystemPreviewController::showPreview): |
| * UIProcess/SystemPreviewController.h: Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::systemPreviewController): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-03-07 Alejandro G. Castro <alex@igalia.com> |
| |
| Make NetworkRTCResolver port agnostic |
| https://bugs.webkit.org/show_bug.cgi?id=178855 |
| |
| Reviewed by Youenn Fablet. |
| |
| Create a specific Cocoa class to isolate the generic code in the base class, make the base implementation port |
| agnostic and dependent on DNS API in the platform directory which encapsulates the platform specific details. |
| |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: Create an alias class name defined per platform to instantiate the resolver. |
| (WebKit::NetworkRTCProvider::createResolver): Used the alias class name and receive a new IPAddress class that is not |
| dependent on rtc libwebrtc library. |
| * NetworkProcess/webrtc/NetworkRTCResolver.cpp: Remove the platform specific code. Use the DNS API to implement the |
| platform specific code in the default start and stop methods. Add the identifier of the resolve operation to the class. |
| (WebKit::NetworkRTCResolver::NetworkRTCResolver): Add the identifier in the initialization. |
| (WebKit::NetworkRTCResolver::~NetworkRTCResolver): Remove the platform specific code. |
| (WebKit::NetworkRTCResolver::completed): Ditto. |
| (WebKit::NetworkRTCResolver::start): Add a new implementation using the DNS API. |
| (WebKit::NetworkRTCResolver::stop): Ditto |
| * NetworkProcess/webrtc/NetworkRTCResolver.h: Remove the platform specific code and use the DNSResolveQueue for a general |
| solution to implement the platform specific code. Avoid using the IPAddress class that depends on libwertc classes to make |
| it more general regarding DNS name resolution. |
| (WebKit::NetworkRTCResolver::start): Make this class virtual. |
| (WebKit::NetworkRTCResolver::stop): Ditto. |
| * NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp: Copied Cocoa code from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.cpp. |
| Now this class overrides the start and stop methods that use DNS, cocoa implementation should use the DNS methods in the future and |
| remove this class, making sure all the platform specific class is in the platform directory. |
| * NetworkProcess/webrtc/NetworkRTCResolverCocoa.h: Copied Cocoa code from Source/WebKit/NetworkProcess/webrtc/NetworkRTCResolver.h. |
| * PlatformGTK.cmake: Add NetworkRTCResolver compilation for GTK. |
| * WebKit.xcodeproj/project.pbxproj: Add the NetworkRTCResolverCocoa class to the compilation. |
| |
| 2018-03-06 Brent Fulgham <bfulgham@apple.com> |
| |
| NetworkDataTask should enable logging for automation clients |
| https://bugs.webkit.org/show_bug.cgi?id=183378 |
| <rdar://problem/38189556> |
| |
| Reviewed by Brian Burg. |
| |
| The NetworkDataTaskCocoa class was only logging if the SessionID object allowed logging. |
| It should also be considering whether the current session is working on behalf of an |
| automation client. If so, it should allow logging. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCocoa::isAlwaysOnLoggingAllowed const): |
| |
| 2018-03-06 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2018-03-06 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Add a new runtime flag to control whether CSS Animations and CSS Transitions should run using the Web Animations timeline |
| https://bugs.webkit.org/show_bug.cgi?id=183370 |
| <rdar://problem/38180729> |
| |
| Reviewed by Dean Jackson. |
| |
| Before we start creating WebAnimation objects to perform CSS Animations and CSS Transitions, which will replace the existing codepath |
| involving CSSAnimationController and CompositeAnimation, we need a runtime flag that will allow all the new code to be turned off by |
| default while we bring this feature up. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): |
| (WKPreferencesGetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]): |
| (-[WKPreferences _cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| (WebKit::InjectedBundle::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled): |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-03-06 Ms2ger <Ms2ger@igalia.com> |
| |
| [GLib] Implement WebsiteDataStore::defaultServiceWorkerRegistrationDirectory(). |
| https://bugs.webkit.org/show_bug.cgi?id=183364 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): implement. |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed. Addressing further review feedback for patch landed in r229315. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): There's no need for |
| explicit calls of the clear() method on both containers in the CommitScope |
| objects, the destructors invoked for these objects from the CommitScope |
| destructor will have the same effect. |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Remove unused scrolling-related code in TextureMapperLayer, CoordinatedGraphics stack |
| https://bugs.webkit.org/show_bug.cgi?id=183340 |
| |
| Reviewed by Michael Catanzaro. |
| |
| With most of the scrolling-related code in TextureMapperLayer on the |
| chopping block, we can now drop the ScrollingClient inheritance and the |
| commitScrollOffset() virtual method implementation. This enables |
| removing the whole commitScrollOffset() call chain that ran from |
| CoordinatedGraphicsScene through CoordinatedLayerTreeHost and |
| CompositingCoordinator to the affected CoordinatedGraphicsLayer object. |
| |
| The CoordinatedGraphicsScene::findScrollableContentsLayerAt() method is |
| also unused and can be deleted. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::setLayerState): |
| (WebKit::CoordinatedGraphicsScene::createLayer): |
| (WebKit::CoordinatedGraphicsScene::commitScrollOffset): Deleted. |
| (WebKit::CoordinatedGraphicsScene::findScrollableContentsLayerAt): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::commitScrollOffset): Deleted. |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::commitScrollOffset): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::commitScrollOffset): Deleted. |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Apply TextureMapperLayer animations with a single MonotonicTime value |
| https://bugs.webkit.org/show_bug.cgi?id=183360 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext): |
| Pass the monotic time value, as returned by MonotonicTime::now(), to the |
| TextureMapperLayer::applyAnimationsRecursively() call. |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] Clean up CoordinatedImageBacking |
| https://bugs.webkit.org/show_bug.cgi?id=183332 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| (WebKit::CompositingCoordinator::createImageBackingIfNeeded): |
| Adjust call to CoordinatedImageBacking::getCoordinatedImageBackingID(). |
| |
| 2018-03-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| CoordinatedGraphicsScene: properly limit data specific to state commit operation |
| https://bugs.webkit.org/show_bug.cgi?id=183326 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| In the process of state commit in CoordinatedGraphicsScene, the released |
| image backings and backing stores with pending updates are stored in |
| Vector and HashSet objects, respectively. Instead of these two objects |
| being member variables on the CoordinatedGraphicsScene class, keep them |
| in the CommitScope structure that's limited to the operations done in |
| the commitSceneState() method. |
| |
| The two member variables are dropped, and the CommitScope object is |
| passed by reference to any helper method that needs to append either |
| kind of object to the respective container. At the end of the state |
| commit, backing stores with pending updates have those updates applied, |
| and the two containers are cleared out as the CommitScope object is |
| destroyed. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::setLayerState): |
| (WebKit::CoordinatedGraphicsScene::prepareContentBackingStore): |
| (WebKit::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize): |
| (WebKit::CoordinatedGraphicsScene::removeTilesIfNeeded): |
| (WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded): |
| (WebKit::CoordinatedGraphicsScene::syncImageBackings): |
| (WebKit::CoordinatedGraphicsScene::updateImageBacking): |
| (WebKit::CoordinatedGraphicsScene::clearImageBackingContents): |
| (WebKit::CoordinatedGraphicsScene::removeImageBacking): |
| (WebKit::CoordinatedGraphicsScene::commitSceneState): |
| (WebKit::CoordinatedGraphicsScene::purgeGLResources): |
| (WebKit::CoordinatedGraphicsScene::removeReleasedImageBackingsIfNeeded): Deleted. |
| (WebKit::CoordinatedGraphicsScene::commitPendingBackingStoreOperations): Deleted. |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h: |
| |
| 2018-03-05 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Fix std::make_unique / new[] using system malloc |
| https://bugs.webkit.org/show_bug.cgi?id=182975 |
| |
| Reviewed by JF Bastien. |
| |
| Use Vector instead. |
| |
| * NetworkProcess/win/SystemProxyWin.cpp: |
| (WindowsSystemProxy::getSystemHttpProxy): |
| * Platform/IPC/unix/ConnectionUnix.cpp: |
| (IPC::Connection::processMessage): |
| (IPC::Connection::sendOutputMessage): |
| * Platform/win/LoggingWin.cpp: |
| (WebKit::logLevelString): |
| * Shared/SandboxExtension.h: |
| * Shared/mac/SandboxExtensionMac.mm: |
| (WebKit::SandboxExtension::HandleArray::allocate): |
| (WebKit::SandboxExtension::HandleArray::operator[]): |
| (WebKit::SandboxExtension::HandleArray::operator[] const): |
| (WebKit::SandboxExtension::HandleArray::size const): |
| (WebKit::SandboxExtension::HandleArray::encode const): |
| |
| 2018-03-05 Andy Estes <aestes@apple.com> |
| |
| [Mac] Teach WebCore::Pasteboard about file promise drags |
| https://bugs.webkit.org/show_bug.cgi?id=183314 |
| <rdar://problem/38105493> |
| |
| Reviewed by Darin Adler. |
| |
| Added a FIXME comment. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-03-05 Jeff Miller <jeffm@apple.com> |
| |
| Expose still more WKPreferences SPI to match C SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183045 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setAllowsInlineMediaPlayback:]): |
| (-[WKPreferences _allowsInlineMediaPlayback]): |
| (-[WKPreferences _setApplePayEnabled:]): |
| (-[WKPreferences _applePayEnabled]): |
| (-[WKPreferences _setDNSPrefetchingEnabled:]): |
| (-[WKPreferences _dnsPrefetchingEnabled]): |
| (-[WKPreferences _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): |
| (-[WKPreferences _inlineMediaPlaybackRequiresPlaysInlineAttribute]): |
| (-[WKPreferences _setInvisibleMediaAutoplayNotPermitted:]): |
| (-[WKPreferences _invisibleMediaAutoplayNotPermitted]): |
| (-[WKPreferences _setLegacyEncryptedMediaAPIEnabled:]): |
| (-[WKPreferences _legacyEncryptedMediaAPIEnabled]): |
| (-[WKPreferences _setMainContentUserGestureOverrideEnabled:]): |
| (-[WKPreferences _mainContentUserGestureOverrideEnabled]): |
| (-[WKPreferences _setMediaStreamEnabled:]): |
| (-[WKPreferences _mediaStreamEnabled]): |
| (-[WKPreferences _setNeedsStorageAccessFromFileURLsQuirk:]): |
| (-[WKPreferences _needsStorageAccessFromFileURLsQuirk]): |
| (-[WKPreferences _setPDFPluginEnabled:]): |
| (-[WKPreferences _pdfPluginEnabled]): |
| (-[WKPreferences _setRequiresUserGestureForAudioPlayback:]): |
| (-[WKPreferences _requiresUserGestureForAudioPlayback]): |
| (-[WKPreferences _setRequiresUserGestureForVideoPlayback:]): |
| (-[WKPreferences _requiresUserGestureForVideoPlayback]): |
| (-[WKPreferences _setServiceControlsEnabled:]): |
| (-[WKPreferences _serviceControlsEnabled]): |
| (-[WKPreferences _setShowsToolTipOverTruncatedText:]): |
| (-[WKPreferences _showsToolTipOverTruncatedText]): |
| (-[WKPreferences _setTextAreasAreResizable:]): |
| (-[WKPreferences _textAreasAreResizable]): |
| (-[WKPreferences _setUseGiantTiles:]): |
| (-[WKPreferences _useGiantTiles]): |
| (-[WKPreferences _setWantsBalancedSetDefersLoadingBehavior:]): |
| (-[WKPreferences _wantsBalancedSetDefersLoadingBehavior]): |
| (-[WKPreferences _setWebAudioEnabled:]): |
| (-[WKPreferences _webAudioEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-03-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: clicking on a disabled option element shouldn't produce an error |
| https://bugs.webkit.org/show_bug.cgi?id=183284 |
| |
| Reviewed by Brian Burg. |
| |
| This was expected by selenium, but the WebDriver spec says we should simply do nothing in those cases. |
| |
| 14.1 Element Click. |
| https://w3c.github.io/webdriver/webdriver-spec.html#element-click |
| |
| Fixes: imported/w3c/webdriver/tests/element_click/select.py::test_option_disabled |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::selectOptionElement): |
| |
| 2018-03-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Automation: stale elements not detected when removed from the DOM |
| https://bugs.webkit.org/show_bug.cgi?id=183278 |
| |
| Reviewed by Brian Burg. |
| |
| We detect stale elements when the page is reloaded because the maps are recreated, but if an element is removed |
| from the DOM for the same document we keep the nodes in the maps. We should clear stale elements before |
| accessing the maps. |
| |
| Fixes: imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testExpectedConditionStalenessOf |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _clearStaleNodes() |
| (let.AutomationSessionProxy.prototype.nodeForIdentifier): Ditto. |
| (let.AutomationSessionProxy.prototype._clearStaleNodes): Check if cached nodes are still in document and remove them |
| from the maps if they aren't. |
| |
| 2018-03-04 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Move currentCPUTime and sleep(Seconds) to CPUTime.h and Seconds.h respectively |
| https://bugs.webkit.org/show_bug.cgi?id=183312 |
| |
| Reviewed by Mark Lam. |
| |
| Remove wtf/CurrentTime.h include pragma. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| * Platform/IPC/Connection.cpp: |
| * Platform/unix/SharedMemoryUnix.cpp: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Shared/ios/NativeWebTouchEventIOS.mm: |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| * UIProcess/ios/WKContentView.mm: |
| * UIProcess/linux/MemoryPressureMonitor.cpp: |
| * WebProcess/Gamepad/WebGamepad.cpp: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| * WebProcess/WebProcess.cpp: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| * WebProcess/gtk/WebProcessMainGtk.cpp: |
| * WebProcess/win/WebProcessMainWin.cpp: |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-03-02 Brian Burg <bburg@apple.com> |
| |
| Web Automation: script evaluations via WebDriver should have a user gesture indicator |
| https://bugs.webkit.org/show_bug.cgi?id=183230 |
| <rdar://problem/37959739> |
| |
| Reviewed by Andy Estes. |
| |
| APIs that normally require a user gesture should just work when using via WebDriver. |
| To support cases where tests need to simulate user actions with JavaScript, use a |
| fake user gesture, similar to how -[WKWebView evaluateJavaScript:] forces a user |
| gesture when clients evaluate JavaScript in their web view. |
| |
| No new tests, this is covered by W3C tests that use the Fullscreen API. |
| This API does nothing if there is no user gesture; with this patch, it just works. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| |
| 2018-03-04 Tim Horton <timothy_horton@apple.com> |
| |
| Make !ENABLE(DATA_DETECTION) iOS build actually succeed |
| https://bugs.webkit.org/show_bug.cgi?id=183283 |
| <rdar://problem/38062148> |
| |
| Reviewed by Sam Weinig. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): |
| (-[WKContentView _dataForPreviewItemController:atPosition:type:]): |
| Guard some more code with ENABLE(DATA_DETECTION). |
| |
| 2018-03-04 Dan Bernstein <mitz@apple.com> |
| |
| Building with ONLY_ACTIVE_ARCH=NO and ARCHS=x86_64 fails |
| https://bugs.webkit.org/show_bug.cgi?id=183320 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/PluginService.32.xcconfig: If the Apple build tool specifies |
| RC_ARCHS=x86_64, then let the service build for x86_64, but don’t install it. |
| |
| 2018-03-03 Brent Fulgham <bfulgham@apple.com> |
| |
| Notify the NetworkProcess when a session is servicing an automation client |
| https://bugs.webkit.org/show_bug.cgi?id=183306 |
| <rdar://problem/37835783> |
| |
| Reviewed by Brian Burg. |
| |
| Network loads servicing WebDriver are done through an ephemeral session. While this is great |
| for protecting a developer's machine from sharing state with test runs, it has the unintended |
| effect of blocking certain logging operations. |
| |
| We do not log content in ephemeral sessions to protect user privacy. However, ephemeral sessions |
| generated by WebDriver should participate in logging so that proper testing (with logging) can |
| be done. |
| |
| This patch signals the NetworkProcess when an ephemeral session (created for automation purposes) |
| is created, so that it can allow logging. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::destroySession): Remove controlled-by-automation entry. |
| (WebKit::NetworkProcess::sessionIsControlledByAutomation const): Added. |
| (WebKit::NetworkProcess::setSessionIsControlledByAutomation): Added. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::isAlwaysOnLoggingAllowed const): Checks if the relevant session |
| is servicing an automation client, and returns true if it is. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): Signal the network process if this page is being created |
| for an automation client. |
| |
| 2018-03-02 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Remove RunLoop and RunLoop::Timer's interface using double as seconds |
| https://bugs.webkit.org/show_bug.cgi?id=183293 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: |
| (WebKit::CompositingRunLoop::scheduleUpdate): |
| (WebKit::CompositingRunLoop::compositionCompleted): |
| (WebKit::CompositingRunLoop::updateCompleted): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp: |
| (WebKit::ThreadedDisplayRefreshMonitor::dispatchDisplayRefreshCallback): |
| |
| 2018-03-02 Don Olmstead <don.olmstead@sony.com> |
| |
| Share common WebError implementation |
| https://bugs.webkit.org/show_bug.cgi?id=183303 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebErrors.cpp: |
| (WebKit::cancelledError): |
| (WebKit::fileDoesNotExistError): |
| * Shared/glib/WebErrorsGlib.cpp: Removed. |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| LayoutTest imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=179248 |
| <rdar://problem/35377756> |
| |
| Reviewed by Chris Dumez. |
| |
| In case we go up to the initializeSize step and Caches was cleared |
| between the time we stated to initialize and the time we got there, |
| we need to make as if Caches was not initialized, |
| thus keeping m_isInitialized to false and m_storage to nullptr. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initializeSize): |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| Clients should register to StorageProcess with their service worker registration identifier |
| https://bugs.webkit.org/show_bug.cgi?id=182313 |
| <rdar://problem/38044403> |
| |
| Reviewed by Chris Dumez. |
| |
| Relanding. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| |
| 2018-03-02 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to disable WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=183281 |
| <rdar://problem/38060815> |
| |
| Reviewed by Dan Bates. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _isBackground]): |
| (-[WKWebView _isDisplayingPDF]): |
| (-[WKWebView _dataForDisplayedPDF]): |
| (-[WKWebView _suggestedFilenameForDisplayedPDF]): |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry init]): |
| * UIProcess/ios/WKPDFView.h: |
| * UIProcess/ios/WKPDFView.mm: |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessProxy should handle its completion handler at destruction time |
| https://bugs.webkit.org/show_bug.cgi?id=183224 |
| |
| Reviewed by Brady Eidson. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-03-02 Brent Fulgham <bfulgham@apple.com> |
| |
| Update WebContent process sandbox IOKit properties |
| https://bugs.webkit.org/show_bug.cgi?id=183269 |
| <rdar://problem/37853282> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-03-01 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove monotonicallyIncreasingTime |
| https://bugs.webkit.org/show_bug.cgi?id=182911 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::toRecordInformation): |
| * Platform/IPC/ArgumentCoders.cpp: |
| (IPC::ArgumentCoder<Seconds>::encode): |
| (IPC::ArgumentCoder<Seconds>::decode): |
| (IPC::ArgumentCoder<MonotonicTime>::encode): |
| (IPC::ArgumentCoder<MonotonicTime>::decode): |
| * Platform/IPC/ArgumentCoders.h: |
| * Shared/Gamepad/GamepadData.cpp: |
| (WebKit::GamepadData::GamepadData): |
| * Shared/Gamepad/GamepadData.h: |
| (WebKit::GamepadData::lastUpdateTime const): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<MonotonicTime>::encode): Deleted. |
| (IPC::ArgumentCoder<MonotonicTime>::decode): Deleted. |
| (IPC::ArgumentCoder<Seconds>::encode): Deleted. |
| (IPC::ArgumentCoder<Seconds>::decode): Deleted. |
| ArgumentCoders for MonotonicTime and Seconds are now used internally. |
| Move them to Platform/IPC/ArgumentCoders.h. |
| |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::iconDatabaseSyncThread): |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| (WebKit::DrawingAreaProxyImpl::DrawingMonitor::start): |
| (WebKit::DrawingAreaProxyImpl::DrawingMonitor::stop): |
| (WebKit::DrawingAreaProxyImpl::DrawingMonitor::didDraw): |
| * UIProcess/DrawingAreaProxyImpl.h: |
| * UIProcess/Gamepad/UIGamepad.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::animationDidStart): |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::acceleratedAnimationDidStart): |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (mediaTimeToCurrentTime): |
| (-[WKAnimationDelegate animationDidStart:]): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::animationStarted): |
| This argument `beginTime` is not CFTimeInverval actually. We add currentTimeToMediaTime |
| conversion here to fix this issue. |
| |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| (WebKit::RemoteLayerTreeContext::animationDidStart): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::destroyRenderingResources): |
| |
| 2018-03-02 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] whitelist missing AppleJPEG logging feature |
| https://bugs.webkit.org/show_bug.cgi?id=183270 |
| <rdar://problem/37808612> |
| |
| Reviewed by Alex Christensen. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-03-02 Youenn Fablet <youenn@apple.com> |
| |
| IOChannel::read and IOChannel::write can destroy the completion handler in the thread used to manipulate thread |
| https://bugs.webkit.org/show_bug.cgi?id=183261 |
| |
| Reviewed by Antti Koivisto. |
| |
| Moving the completion handler when being called so that it gets desttroyed in the thread it is called. |
| |
| * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: |
| (WebKit::NetworkCache::IOChannel::read): |
| (WebKit::NetworkCache::IOChannel::write): |
| |
| 2018-03-02 Dan Bernstein <mitz@apple.com> |
| |
| Safari uses WebContent.Development when loading injected bundle embedded in its app bundle |
| https://bugs.webkit.org/show_bug.cgi?id=183275 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/mac/WebProcessProxyMac.mm: |
| (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Return false if this is |
| a platform binary. We can also return false unconditionally when building for any shipping |
| major macOS release. |
| |
| 2018-03-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r229153. |
| https://bugs.webkit.org/show_bug.cgi?id=183274 |
| |
| it is breaking imported/w3c/web-platform-tests/service-workers |
| /service-worker/clients-matchall-exact-controller.https.html |
| (Requested by youenn on #webkit). |
| |
| Reverted changeset: |
| |
| "Clients should register to StorageProcess with their service |
| worker registration identifier" |
| https://bugs.webkit.org/show_bug.cgi?id=182313 |
| https://trac.webkit.org/changeset/229153 |
| |
| 2018-03-01 Brent Fulgham <bfulgham@apple.com> |
| |
| Add the "com.apple.security.cs.disable-library-validation” entitlement to the Plugin Process |
| https://bugs.webkit.org/show_bug.cgi?id=183252 |
| <rdar://problem/37887136> |
| |
| Reviewed by David Kilzer. |
| |
| * Configurations/PluginService.entitlements: |
| |
| 2018-03-01 Youenn Fablet <youenn@apple.com> |
| |
| Clients should register to StorageProcess with their service worker registration identifier |
| https://bugs.webkit.org/show_bug.cgi?id=182313 |
| |
| Reviewed by Chris Dumez. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::registerServiceWorkerClient): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| |
| 2018-03-01 Youenn Fablet <youenn@apple.com> |
| |
| LayoutTest imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=179248 |
| <rdar://problem/35377756> |
| |
| Reviewed by Chris Dumez. |
| |
| WebKitTestRunner is clearing caches for every test but there might still be some on-going cache activity due to a previous test. |
| In that case, the activity might try to open the Caches object at the same time the files are deleted by the clearing task. |
| If the new test is trying to open the same caches, it will also receive the same error, hence the console log message. |
| |
| To fix that issue, we clear the initialization pending callbacks when clearing the caches. |
| This prevents the new test to receive the error since the new test should only start some cache activity after the cache clear task is done. |
| Made refactoring to append the first callback into the list of pending callbacks. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initialize): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| (WebKit::CacheStorage::Caches::clear): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| |
| 2018-03-01 Youenn Fablet <youenn@apple.com> |
| |
| Add API test to validate setting of service worker and cache storage directories |
| https://bugs.webkit.org/show_bug.cgi?id=182543 |
| |
| Reviewed by Chris Dumez. |
| |
| Add cache engine directory path to its representation dump. |
| This is used in API tests to check that the path is correctly set. |
| |
| Add a way for to know whether a service worker was registered from a WKWebsiteDataStore. |
| This is used in API tests to check that the path is correctly set. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::representation): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _hasRegisteredServiceWorker]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-03-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Fix some errors due to some mach port APIs being unavailable on watchOS |
| https://bugs.webkit.org/show_bug.cgi?id=183262 |
| <rdar://problem/38028521> |
| |
| Reviewed by Tim Horton. |
| |
| Minor build fix; mach_port_guard and mach_port_unguard are not available on this platform. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::platformInvalidate): |
| (IPC::Connection::platformInitialize): |
| (IPC::Connection::open): |
| |
| 2018-03-01 Per Arne Vollan <pvollan@apple.com> |
| |
| Unreviewed build fix after r229140. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2018-03-01 Per Arne Vollan <pvollan@apple.com> |
| |
| Scrollbar preferences are ignored when the WebContent process doesn't have access to the WindowServer. |
| https://bugs.webkit.org/show_bug.cgi?id=183231 |
| <rdar://problem/37793457> |
| |
| Reviewed by Brent Fulgham. |
| |
| When the WebContent process doesn't have access to the WindowServer, the scrollbars are always of the overlay type. |
| The notification about scrollbar preferences is never received by the WebContent process when there is no |
| WindowServer access. This can be fixed by adding an observer of scrollbar preferences in the UI process, and |
| notifying the WebProcess about this by sending it a message. This message should also contain the preferred |
| scrollbar type, since the call '[NSScroller preferredScrollerStyle]' will always return the overlay style when |
| there is no WindowServer access. |
| |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::registerNotificationObservers): |
| (WebKit::WebProcessPool::unregisterNotificationObservers): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::scrollerStylePreferenceChanged): |
| |
| 2018-03-01 Antti Koivisto <antti@apple.com> |
| |
| Crash when updating cache entry after validation in apps that uses class A file protection |
| https://bugs.webkit.org/show_bug.cgi?id=183242 |
| <rdar://problem/33289058> |
| |
| Reviewed by Chris Dumez. |
| |
| When validating a cache entry, we keep it alive until we get a network response. With 304 response |
| we then update the headers of this existing entry. This accesses the body data of the entry which |
| may be backed by a mapped file. If the app uses class A protection, user might have locked |
| the device and the entry might have become inaccessible, leading to a crash. |
| |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::setNeedsValidation): |
| |
| In case of class A protection, pull the data to a memory buffer immediately before starting a revalidation request. |
| This makes the window where the file could become inaccessible much shorter (since it no longer depends on network). |
| |
| 2018-03-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r221514): [GTK] UI process crash in WebKit::WaylandCompositor::Surface::flushPendingFrameCallbacks |
| https://bugs.webkit.org/show_bug.cgi?id=183091 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Invalidate the surface in the page map when the backing store is destroyed. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::willDestroySurface): |
| * UIProcess/gtk/WaylandCompositor.h: |
| |
| 2018-02-28 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: provide a way to ask clients the type of a JavaScript dialog |
| https://bugs.webkit.org/show_bug.cgi?id=182660 |
| <rdar://problem/37408183> |
| |
| Reviewed by Tim Horton and Carlos Garcia Campos. |
| |
| Add another delegate method to ask what type of dialog is being shown. |
| This is used to implement §18.4 Step 5, where sending text to a dialog |
| without a prompt will return several different kinds of errors. |
| |
| No new tests, covered by web platform tests once Safari side has landed. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Update FIXME radar numbers. |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::toImpl): |
| (WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): |
| If there is no current dialog to be checked, the client can return the 'None' |
| type. This gets converted into a std::nullopt and causes a command error later. |
| |
| 2018-02-28 John Wilander <wilander@apple.com> |
| |
| Remove assertion from ResourceLoadStatisticsClassifier::calculateResourcePrevalence() which causes crashes when domains are explicitly set as prevalent without the associated statistics |
| https://bugs.webkit.org/show_bug.cgi?id=183233 |
| |
| Unreviewed removal of an assertion that's causing layout test crashes. |
| |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| (WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence): |
| Removed ASSERT(currentPrevalence == Low). |
| |
| 2018-02-28 John Wilander <wilander@apple.com> |
| |
| Add a second tier of prevalence to facilitate telemetry on very prevalent domains |
| https://bugs.webkit.org/show_bug.cgi?id=183218 |
| <rdar://problem/37992388> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| (WebKit::vectorLength): |
| New convenience function. |
| (WebKit::ResourceLoadStatisticsClassifier::calculateResourcePrevalence): |
| Renamed from ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics(). |
| Now returns a value from the enum ResourceLoadPrevalence. |
| (WebKit::ResourceLoadStatisticsClassifier::classifyWithVectorThreshold): |
| Now uses the new vectorLength() convenience function. |
| (WebKit::ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics): Deleted. |
| Renamed to ResourceLoadStatisticsClassifier::calculateResourcePrevalence(). |
| * Platform/classifier/ResourceLoadStatisticsClassifier.h: |
| Added enum ResourceLoadPrevalence. |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::encode): |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::decode): |
| Handling of the new boolean field isVeryPrevalentResource. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsVeryPrevalentResource): |
| Test infrastructure. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource): |
| All of these are for handling of the two-tier classification. |
| Also bumped the statisticsModelVersion to 12. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-28 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce use of NetworkingContext in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=183213 |
| |
| Reviewed by Brady Eidson. |
| |
| * NetworkProcess/RemoteNetworkingContext.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::proxiesForURL): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebPage/WebFrame.cpp: |
| |
| 2018-02-28 Brent Fulgham <bfulgham@apple.com> |
| |
| Remove network access from the WebContent process sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=183192 |
| <rdar://problem/35369115> |
| |
| Reviewed by Alex Christensen. |
| |
| Remove the 'system-network', 'allow-network-common', and 'network-client' access from the WebContent process. |
| That's why we have a Network Process! |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-27 Tim Horton <timothy_horton@apple.com> |
| |
| Ensure target triple is propagated correctly to DerivedSources.make |
| https://bugs.webkit.org/show_bug.cgi?id=183189 |
| <rdar://problem/37959694> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * DerivedSources.make: |
| Ditto the WebCore ChangeLog. |
| |
| 2018-02-27 Yongjun Zhang <yongjun_zhang@apple.com> |
| |
| Make it possible to set suggestions in extra zoom mode. |
| https://bugs.webkit.org/show_bug.cgi?id=183154 |
| <rdar://problem/35227450> |
| |
| Reviewed by Tim Horton. |
| |
| In extra zoom mode, when presenting WKFocusedFormControlViewController, make it the inputDelegate for |
| WKContentView. This is needed to ensure we can capture/cache the suggestions when _WKInputSession's |
| suggestions is updated. Later, when we present WKTextInputViewController, we can pass the cached |
| suggestions. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView presentFocusedFormControlViewController:]): Set _focusedFormControlViewController as |
| the inputDelegate for WKContentView. |
| (-[WKContentView dismissFocusedFormControlViewController:]): Null the inputDelegate on dismissal. |
| (-[WKContentView presentTextInputViewController:]): Pass the suggestions from WKFocusedFormControlViewController to |
| WKTextInputViewController when the latter is presented. |
| (-[WKContentView textInputController:didCommitText:]): Call the new delegate method textInputController:didCommitText:withSuggestion:. |
| (-[WKContentView textInputController:didCommitText:withSuggestion:]): When a suggestions is selected, insert the |
| suggestion which will notify the client. |
| (-[WKContentView focusedFormControllerDidUpdateSuggestions:]): Called when the suggestion is updated after the input |
| view controller is presented. |
| |
| 2018-02-27 Tim Horton <timothy_horton@apple.com> |
| |
| Stop using deprecated CADisplay SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183150 |
| <rdar://problem/37918297> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/FrontBoardServicesSPI.h: Added. |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| Switch to the more modern way of getting the display name. |
| |
| 2018-02-27 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r229055. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Stop using deprecated CADisplay SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=183150 |
| https://trac.webkit.org/changeset/229055 |
| |
| 2018-02-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement additional SPI for adjusting viewport shrink-to-fit behavior |
| https://bugs.webkit.org/show_bug.cgi?id=183100 |
| <rdar://problem/37840987> |
| |
| Reviewed by Tim Horton. |
| |
| Add new SPI hooks to provide finer control over certain aspects of the shrink-to-fit viewport heuristic. |
| Currently, in certain cases of iPad multitasking, Safari allows shrinking content to fit by default. This means |
| that even when "width=device-width" is used, if the contents of the page are too wide to fit within the |
| viewport's width, we'll adjust the initial scale such that the viewport can fit all of the content. |
| |
| However, in certain viewport dimensions, this heuristic is insufficient to ensure that pages are laid out and |
| displayed properly within the viewport. Namely, one could imagine that an element with a hard-coded width that |
| is larger than the real viewport width would cause all other elements with dimensions relative to the body to be |
| excessively shrunk down once shrink-to-fit is applied, so the page would still look broken even if the contents |
| of the page all fit within the viewport. |
| |
| To mitigate this, we decouple the notions of minimum layout size from the size of the actual viewport (which we |
| simply refer to as "view size"). This allows us to introduce a mechanism where we lay out the page at a given |
| minimum layout size that is larger than the size of the view; later, when we determine the initial scale, we |
| then apply shrink-to-fit scaling using the view size rather than the minimum layout size. This grants us the |
| ability to lay out content as if our view were large, but still ensure that the contents of the page fit within |
| the actual view. |
| |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| (WebKit::VisibleContentRectUpdateInfo::encode const): |
| (WebKit::VisibleContentRectUpdateInfo::decode): |
| (WebKit::operator<<): |
| * Shared/VisibleContentRectUpdateInfo.h: |
| (WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo): |
| (WebKit::VisibleContentRectUpdateInfo::forceHorizontalShrinkToFit const): |
| (WebKit::operator==): |
| |
| Plumb the forceHorizontalShrinkToFit flag through VisibleContentRectUpdateInfo. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| Plumb viewSize through IPC to WebPage. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| Start off WKWebView flags at their initial values. |
| |
| (-[WKWebView _minimumAllowedLayoutWidth]): |
| (-[WKWebView _setMinimumAllowedLayoutWidth:]): |
| |
| This provides the minimum width at which the page will lay out, such that if the view width dips below this |
| value, we'll use this minimum allowed layout width instead. 0 by default. |
| |
| (-[WKWebView activeMinimumLayoutSizes:]): |
| |
| Refactor this from a static function to a helper method on WKWebView that computes both the minimum layout size |
| (which takes minimum allowed layout width into account) as well as the real view size. Refactor all call sites |
| to use this new method, and also propagate the view size down via IPC, alongside the minimum layout size. |
| |
| (-[WKWebView _dispatchSetMinimumLayoutSize:viewSize:]): |
| (-[WKWebView _frameOrBoundsChanged]): |
| (-[WKWebView _setMinimumLayoutSizeOverride:]): |
| (-[WKWebView _setForceHorizontalViewportShrinkToFit:]): |
| (-[WKWebView _forceHorizontalViewportShrinkToFit]): |
| |
| Setting this flag to YES forces us to always shrink-to-fit in the horizontal axis. NO by default. |
| |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| (-[WKWebView _endAnimatedResize]): |
| (activeMinimumLayoutSize): Deleted. |
| |
| More refactoring to replace activeMinimumLayoutSize() with -activeMinimumLayoutSizes:. |
| |
| (-[WKWebView _dispatchSetMinimumLayoutSize:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| |
| Pass _forceHorizontalViewportShrinkToFit into the visible content rect update. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::dynamicViewportSizeUpdate): |
| (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize): |
| |
| Plumb viewSize alongside the existing minimumLayoutSize. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setViewportConfigurationMinimumLayoutSize): |
| (WebKit::WebPage::dynamicViewportSizeUpdate): |
| (WebKit::WebPage::updateVisibleContentRects): |
| |
| Set forceHorizontalShrinkToFit on the viewport configuration here. |
| |
| 2018-02-27 Tim Horton <timothy_horton@apple.com> |
| |
| Stop using deprecated CADisplay SPI |
| https://bugs.webkit.org/show_bug.cgi?id=183150 |
| <rdar://problem/37918297> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/FrontBoardServicesSPI.h: Added. |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| Switch to the more modern way of getting the display name. |
| |
| 2018-02-26 Youenn Fablet <youenn@apple.com> |
| |
| Caches::m_storage should be set to null in case of error at initialization time |
| https://bugs.webkit.org/show_bug.cgi?id=183068 |
| |
| Reviewed by Chris Dumez. |
| |
| In case of error, we need to set m_storage back to nullptr so that |
| next tries to initialize it will restart from scratch. |
| If we do not set it to nullptr, we end up storing the initialize |
| callback in a queue and the callback will never be called. |
| |
| This is difficult to test as we need the following conditions: |
| - we need to have an error case, like a disk writing error |
| - we need the web app to open a cache in two different pages/frames at about the same time. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initialize): |
| |
| 2018-02-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r226330. |
| https://bugs.webkit.org/show_bug.cgi?id=183152 |
| |
| incorrectly assumes enumeration callback happens once |
| (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Use BlockPtrs and lambdas instead of new/delete to pass |
| parameters to blocks in WebViewImpl::performDragOperation" |
| https://bugs.webkit.org/show_bug.cgi?id=180795 |
| https://trac.webkit.org/changeset/226330 |
| |
| 2018-02-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assertion in WebPage::updatePreferences |
| https://bugs.webkit.org/show_bug.cgi?id=183075 |
| |
| Reviewed by Youenn Fablet and Chris Dumez. |
| |
| Replaced the release assertion added in r228589 with a more graceful disabling of the feature when the entitlement is missing. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didReceiveMessage): Added an early exit with an entitlement check to disable the feature. |
| (WebKit::StorageProcess::initializeWebsiteDataStore): Ditto. |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): Replaced the release assertion with a debug assertion. |
| (WebKit::StorageProcess::swServerForSession): Removed the assertion. This code can be reached when the service worker is disabled. |
| (WebKit::StorageProcess::registerSWServerConnection): Replaced the release assertion with a debug assertion. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): Disable the feature instead of crashing when the entitlement is missing. |
| |
| 2018-02-26 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r223431): Crash under didReceiveChallenge in NetworkSessionCocoa |
| https://bugs.webkit.org/show_bug.cgi?id=183134 |
| <rdar://problem/36339049> |
| |
| Reviewed by Alex Christensen. |
| |
| Like other delegates functions in this file, it is possible for didReceiveChallenge to get called |
| after _session has been nulled out. Other delegate functions already had early returns when |
| _session is null. However, such early return was missing in didReceiveChallenge. |
| |
| This patch ends the early return to didReceiveChallenge so that we do not end up calling |
| _session->downloadID(taskIdentifier) on a null _session. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| |
| 2018-02-26 Youenn Fablet <youenn@apple.com> |
| |
| MessagePort is not always destroyed in the right thread |
| https://bugs.webkit.org/show_bug.cgi?id=183053 |
| |
| Reviewed by Chris Dumez. |
| |
| Update code to pass a lambda to MessagePort::existingMessagePortForIdentifier. |
| |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: |
| (WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::messagesAvailableForPort): |
| |
| 2018-02-25 Alexey Proskuryakov <ap@apple.com> |
| |
| Font smoothing doesn't get disabled if the preference is set before launching WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=183108 |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess): |
| Fix the bug. While at it, also avoid the anti-pattern in setAlwaysUsesComplexTextCodePath. |
| |
| 2018-02-25 Philippe Normand <pnormand@igalia.com> |
| |
| Unreviewed GTK Debug build fix after r228942. |
| |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::iconDatabaseSyncThread): |
| (WebKit::IconDatabase::syncThreadMainLoop): |
| (WebKit::IconDatabase::readFromDatabase): |
| (WebKit::IconDatabase::writeToDatabase): |
| (WebKit::IconDatabase::cleanupSyncThread): |
| |
| 2018-02-25 Chris Dumez <cdumez@apple.com> |
| |
| Service workers do not work well inside Web.app |
| https://bugs.webkit.org/show_bug.cgi?id=183105 |
| <rdar://problem/37864140> |
| |
| Reviewed by Youenn Fablet. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didReceiveMessage): |
| We were failing to forward IPC messages to the ChildProcess class here. As a result, |
| the ChildProcess::RegisterURLSchemeServiceWorkersCanHandle IPC was being ignored |
| by the StorageProcess. |
| |
| 2018-02-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed WPE breakage fix. |
| |
| * WebProcess/wpe/WebProcessMainWPE.cpp: Call g_set_prgname() in WebProcess |
| to prepare the GLib state for subsequent GStreamer initialization. |
| |
| 2018-02-23 John Wilander <wilander@apple.com> |
| |
| Introduce ITP debug logging as an opt-in developer feature |
| https://bugs.webkit.org/show_bug.cgi?id=183065 |
| <rdar://problem/37803761> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Platform/Logging.h: |
| Added a dedicated channel for Resource Load Statistics debug logging |
| since this will be part of a developer-facing feature and should not |
| be mixed with general Resource Load Statistics logging. |
| * UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: |
| (WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded): |
| Now picks up the user default setting for |
| ResourceLoadStatisticsDebugLoggingEnabled. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::removeDataRecords): |
| Now logs for which domains it purges website data if |
| ResourceLoadStatisticsDebugLoggingEnabled is set. |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| Now logs for which domains it partitions and blocks cookies |
| in third-party contexts if ResourceLoadStatisticsDebugLoggingEnabled |
| is set. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-23 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Correct sandbox violation during media playback |
| https://bugs.webkit.org/show_bug.cgi?id=183092 |
| <rdar://problem/37718495> |
| |
| Reviewed by Eric Carlson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-23 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [MSVC] Unknown a type definition error in WebResourceLoadStatisticsStore on wincairo webkit |
| https://bugs.webkit.org/show_bug.cgi?id=182873 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser |
| https://bugs.webkit.org/show_bug.cgi?id=173655 |
| <rdar://problem/37706341> |
| |
| Reviewed by Philippe Normand. |
| |
| Actually pass the gst command line options to the WebProcess. The options in /proc/self/cmdline are separated by |
| null characters, so we are effectively passing always the first option only, which is the program name. Then, in |
| the web process we always ignore the first option and providing WebProcess unconditionally, so we were doing |
| nothing. |
| |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Use WebCore::extractGStreamerOptionsFromCommandLine() |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Ditto. |
| * WebProcess/soup/WebProcessSoup.cpp: |
| (WebKit::WebProcess::platformInitializeWebProcess): Move the vector. |
| |
| 2018-02-22 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove currentTime() / currentTimeMS() |
| https://bugs.webkit.org/show_bug.cgi?id=183052 |
| |
| Reviewed by Mark Lam. |
| |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/linux/WebMemorySamplerLinux.cpp: |
| (WebKit::WebMemorySampler::sampleWebKit const): |
| * Shared/mac/WebMemorySampler.mac.mm: |
| (WebKit::WebMemorySampler::sampleWebKit const): |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime): |
| * UIProcess/API/glib/IconDatabase.cpp: |
| (WebKit::IconDatabase::setIconDataForIconURL): |
| (WebKit::IconDatabase::synchronousLoadDecisionForIconURL): |
| (WebKit::IconDatabase::performURLImport): |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| * UIProcess/Plugins/PlugInAutoStartProvider.cpp: |
| (WebKit::expirationTimeFromNow): |
| (WebKit::PlugInAutoStartProvider::addAutoStartOriginHash): |
| (WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy const): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime): |
| (WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest): |
| (WebKit::PlugInAutoStartProvider::didReceiveUserInteraction): |
| * UIProcess/Plugins/PlugInAutoStartProvider.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processDidFinishLaunching): |
| (WebKit::WebProcessPool::startMemorySampler): |
| (WebKit::WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: |
| (API::InjectedBundle::PageLoaderClient::willPerformClientRedirectForFrame): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| (WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_webSQLiteDatabaseTracker): |
| (WebKit::WebProcess::isPlugInAutoStartOriginHash): |
| (WebKit::WebProcess::plugInDidStartFromOrigin): |
| (WebKit::WebProcess::didAddPlugInAutoStartOriginHash): |
| (WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes): |
| (WebKit::WebProcess::resetPlugInAutoStartOriginHashes): |
| (WebKit::WebProcess::plugInDidReceiveUserInteraction): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-02-22 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r228349): ImageBitmap builtin is now runtime guarded |
| https://bugs.webkit.org/show_bug.cgi?id=183056 |
| <rdar://problem/37799067> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::WebInspectorUI): |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Caches::initialize should call all pending initialization callbacks in case of error |
| https://bugs.webkit.org/show_bug.cgi?id=183062 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initialize): |
| (WebKit::CacheStorage::Caches::initializeSize): |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage::Engine::Caches::writeRecord is not always calling the completion handler |
| https://bugs.webkit.org/show_bug.cgi?id=183055 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a completion handler to Storage::store. |
| Use it instead in Caches::writeRecord. |
| This ensures that the Cache add/put promise will be called once all write operations have been done. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::writeRecord): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::WriteOperation::WriteOperation): |
| (WebKit::NetworkCache::Storage::finishWriteOperation): |
| (WebKit::NetworkCache::Storage::store): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| (WebKit::NetworkCache::Storage::store): |
| |
| 2018-02-22 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add an entitlement check for service worker on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=182865 |
| |
| Reviewed by Dan Bernstein. |
| |
| Addressed Dan's comment by using xpc_connection_copy_entitlement_value instead of obtaining the audit token first. |
| |
| * Shared/mac/SandboxUtilities.h: |
| * Shared/mac/SandboxUtilities.mm: |
| (WebKit::connectedProcessHasEntitlement): |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Fetch event release assert should take into account the fetch mode |
| https://bugs.webkit.org/show_bug.cgi?id=183047 |
| |
| Reviewed by Chris Dumez. |
| |
| In case of navigation tasks, we should use the request URL and not the origin of the loading client. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::isValidFetch): |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| |
| 2018-02-22 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Fix compile errors in WebPageWin.cpp and WebProcessWin.cpp due to WebCore forwarding header paths |
| https://bugs.webkit.org/show_bug.cgi?id=182969 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * WebProcess/WebPage/win/WebPageWin.cpp: |
| * WebProcess/win/WebProcessWin.cpp: |
| |
| 2018-02-22 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove sleep(double) and sleepMS(double) interfaces |
| https://bugs.webkit.org/show_bug.cgi?id=183038 |
| |
| Reviewed by Mark Lam. |
| |
| * PluginProcess/WebProcessConnection.cpp: |
| (WebKit::WebProcessConnection::createPluginAsynchronously): |
| * UIProcess/linux/MemoryPressureMonitor.cpp: |
| (WebKit::pollIntervalForUsedMemoryPercentage): |
| (WebKit::MemoryPressureMonitor::MemoryPressureMonitor): |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Add release logging for CacheStorage::Engine disk related functions |
| https://bugs.webkit.org/show_bug.cgi?id=183042 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::writeFile): |
| (WebKit::CacheStorage::Engine::readFile): |
| |
| 2018-02-22 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228902. |
| |
| This broke internal builds. |
| |
| Reverted changeset: |
| |
| "[Cocoa] Web Automation: provide a way to ask clients the type |
| of a JavaScript dialog" |
| https://bugs.webkit.org/show_bug.cgi?id=182660 |
| https://trac.webkit.org/changeset/228902 |
| |
| 2018-02-22 Youenn Fablet <youenn@apple.com> |
| |
| Add release asserts for service worker fetch and postMessage events |
| https://bugs.webkit.org/show_bug.cgi?id=183025 |
| rdar://problem/37765052 |
| |
| Reviewed by Daniel Bates. |
| |
| Add assertion to protect interception of a fetch load by a service worker with |
| a different origin from the page. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| |
| 2018-02-22 Ms2ger <Ms2ger@igalia.com> |
| |
| [GTK][WPE] Fix some build errors in service workers code |
| https://bugs.webkit.org/show_bug.cgi?id=182966 |
| |
| Reviewed by Žan Doberšek. |
| |
| * CMakeLists.txt: add missing files. |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: add missing includes. |
| * UIProcess/ServiceWorkerProcessProxy.cpp: use #include rather than #import in C++; add missing ifdef. |
| * UIProcess/ServiceWorkerProcessProxy.h: add missing ifdef. |
| * WebProcess/Storage/WebSWClientConnection.cpp: add missing includes. |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: add missing includes. |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| call the function that exists outside cocoa. |
| |
| 2018-02-21 Per Arne Vollan <pvollan@apple.com> |
| |
| The WebContent process should not use NSScreen in the screenAvailableRect/screenRect implementations. |
| https://bugs.webkit.org/show_bug.cgi?id=182855 |
| |
| Reviewed by Brent Fulgham. |
| |
| On macOS, the functions screenAvailableRect and screenRect is implemented using NSScreen, which is communicating |
| with the WindowServer. To avoid this WindowServer communication from the WebContent process when calling |
| screenAvailableRect and screenRect, it is possible to let the UIProcess send a message to the WebContent |
| process whenever there is a change in the display properties, and have the WebContent process cache these |
| display properties. This message should also be sent to a newly started WebContent process. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::displayReconfigurationCallBack): |
| (WebKit::registerDisplayConfigurationCallback): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::warmInitialProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::setScreenProperties): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-02-21 Christopher Reid <chris.reid@sony.com> |
| |
| [Curl] Curl Cookie Database File should be configurable using NetworkProcessCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=182751 |
| |
| Reviewed by Youenn Fablet. |
| |
| Adding a cookiePersistentStorageFile parameter to Curl's NetworkProcessCreationParameters. |
| This parameter is based on Soup's cookiePersistentStoragePath. |
| This parameter is not used yet, it is added to prepare for WinCairo WebKit support. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| * WebProcess/Cookies/WebCookieManager.h: |
| * WebProcess/Cookies/curl/WebCookieManagerCurl.cpp: |
| |
| 2018-02-21 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] Web Automation: provide a way to ask clients the type of a JavaScript dialog |
| https://bugs.webkit.org/show_bug.cgi?id=182660 |
| <rdar://problem/37408183> |
| |
| Reviewed by Tim Horton and Carlos Garcia Campos. |
| |
| Add another delegate method to ask what type of dialog is being shown. |
| This is used to implement §18.4 Step 5, where sending text to a dialog |
| without a prompt will return several different kinds of errors. |
| |
| No new tests, covered by web platform tests once Safari side has landed. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: Update FIXME radar numbers. |
| * UIProcess/Cocoa/AutomationSessionClient.h: |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::AutomationSessionClient): |
| (WebKit::toImpl): |
| (WebKit::AutomationSessionClient::typeOfCurrentJavaScriptDialogOnPage): |
| If there is no current dialog to be checked, the client can return the 'None' |
| type. This gets converted into a std::nullopt and causes a command error later. |
| |
| 2018-02-21 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Fix compile errors of WebProcess and NetworkProcess due to no implementation for windows |
| https://bugs.webkit.org/show_bug.cgi?id=182870 |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| * WebProcess/Plugins/PluginProcessConnectionManager.cpp: |
| (WebKit::PluginProcessConnectionManager::getPluginProcessConnection): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openFrontendConnection): |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::establishConnection): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| |
| 2018-02-21 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake][Win] Use cmakeconfig.h rather than config.h and Platform.h |
| https://bugs.webkit.org/show_bug.cgi?id=182883 |
| |
| Reviewed by Per Arne Vollan. |
| |
| * config.h: |
| |
| 2018-02-21 Brian Burg <bburg@apple.com> |
| |
| Web Automation: failed provisional loads cause "Navigate To" command to hang |
| https://bugs.webkit.org/show_bug.cgi?id=183007 |
| <rdar://problem/37751819> |
| |
| Reviewed by Andy Estes. |
| |
| This hang was revealed by WPT test current_url.py::get_current_url_file_protocol. Now the |
| test simply fails because Safari chooses a policy of 'Ignore' for externally-opened files. |
| I filed an upstream issue with the test here: https://github.com/w3c/webdriver/issues/1232 |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| Notify the session that the load failed in the frame, just like we do |
| for non-provisional failed loads and successful loads. |
| |
| 2018-02-20 Nan Wang <n_wang@apple.com> |
| |
| AX: Keyboard focus not following VoiceOver cursor into web content or within web content. |
| https://bugs.webkit.org/show_bug.cgi?id=182752 |
| <rdar://problem/37518233> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::assistiveTechnologyMakeFirstResponder): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-02-14 Brian Burg <bburg@apple.com> |
| |
| Web Automation: combine session commands to resize and move top-level browsing contexts |
| https://bugs.webkit.org/show_bug.cgi?id=182749 |
| <rdar://problem/37515170> |
| |
| Reviewed by Andy Estes. |
| |
| Since moving and resizing the window are both accomplished by setting the window frame, |
| and the W3C WebDriver specification has a Get/Set Window Rect command, it's time to |
| deduplicate these two methods which basically do the same thing. |
| |
| Adopt modern JSON::Value getters that return std::optional<float>. I have been trying |
| to move the protocol over to this style wholesale, but it is probably easier to do |
| this conversion in smaller pieces. And so, I have started to do so. |
| |
| This change is covered by existing WebDriver tests. |
| |
| * UIProcess/Automation/Automation.json: Add new command. |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): Added. |
| (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): Deleted. |
| (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): Deleted. |
| * UIProcess/Automation/WebAutomationSession.h: |
| |
| 2018-02-20 Brian Burg <bburg@apple.com> |
| |
| ASSERT under WebAutomationSession::setProcessPool() when running W3C test suite a second time |
| https://bugs.webkit.org/show_bug.cgi?id=182991 |
| <rdar://problem/37620578> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Sometimes when running more than one session end-to-end with the same browser instance, |
| UIProcess would crash under addMessageReceiver because another WebAutomationSession was still |
| registered. This is hard to reproduce, but upon code inspection, the receiver management code |
| is somewhat problematic because it only runs when the WebAutomationSession destructor runs. |
| In some cases the client could retain two sessions and cause the first one to never remove itself |
| as the message receiver. |
| |
| Instead of unregistering the session as a message receiver underneath the session's destructor, |
| do this whenever a new session supplants an old session since there is only one active session at a time. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::~WebAutomationSession): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setAutomationSession): |
| |
| 2018-02-20 Tim Horton <timothy_horton@apple.com> |
| |
| Introduce HAVE(IOSURFACE_ACCELERATOR) |
| https://bugs.webkit.org/show_bug.cgi?id=182955 |
| <rdar://problem/37699510> |
| |
| Reviewed by Sam Weinig. |
| |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| * Shared/cg/ShareableBitmapCG.cpp: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| * UIProcess/mac/ViewSnapshotStore.h: |
| * UIProcess/mac/ViewSnapshotStore.mm: |
| |
| 2018-02-20 Chris Dumez <cdumez@apple.com> |
| |
| Provisional load may get committed before receiving the decidePolicyForNavigationResponse response |
| https://bugs.webkit.org/show_bug.cgi?id=182720 |
| <rdar://problem/37515204> |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didReceiveResponse): |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| * WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: |
| (WebKit::WebURLSchemeTaskProxy::didReceiveResponse): |
| |
| 2018-02-20 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228829. |
| |
| This caused a consistent failure in the API test |
| WebKit.InteractionDeadlockAfterCrash on iOS Simulator |
| |
| Reverted changeset: |
| |
| "Switch to UIWKTextInteractionAssistant for non-editable text" |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| https://trac.webkit.org/changeset/228829 |
| |
| 2018-02-20 Megan Gardner <megan_gardner@apple.com> |
| |
| Switch to UIWKTextInteractionAssistant for non-editable text |
| https://bugs.webkit.org/show_bug.cgi?id=182834 |
| |
| Reviewed by Wenson Hsieh and Tim Horton. |
| |
| Switching to only using the UIWKTextInteractionAssistant. Only character granularity is now supported. |
| Also keep the from regressing gating the keyboard bring up on user interaction. The presents of a |
| textInteractionAssistant can no longer be used as proxy for the presence of the keyboard. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| 2018-02-20 John Wilander <wilander@apple.com> |
| |
| Make WebResourceLoadStatisticsStore::processStatisticsAndDataRecords() call WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed() in a proper callback |
| https://bugs.webkit.org/show_bug.cgi?id=182719 |
| <rdar://problem/37517370> |
| |
| Reviewed by Brent Fulgham. |
| |
| This will allow the page notification, statistics pruning, and persistence write |
| to be done at the right time and hopefully stabilize the layout tests including: |
| http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::removeDataRecords): |
| Now takes a callback parameter. |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| Now calls WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed() |
| in a callback provided to WebResourceLoadStatisticsStore::removeDataRecords(). |
| |
| 2018-02-20 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Drop target GraphicsContext usage in Cairo operations |
| https://bugs.webkit.org/show_bug.cgi?id=182964 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| The GraphicsContext parameters in various Cairo operations are not used |
| anymore, so they can be removed. Callsites are updated to reflect this. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): |
| |
| 2018-02-20 Philippe Normand <pnormand@igalia.com> |
| |
| [GStreamer][MiniBrowser] Honor GStreamer command line parameters in MiniBrowser |
| https://bugs.webkit.org/show_bug.cgi?id=173655 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The FIXME in GStreamerUtilities.cpp asks to pass the command line |
| parameters to the GStreamer initialization function. |
| |
| Based on initial patch by: Vanessa Chipirrás Navalón <vchipirras@igalia.com> |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: Define the vector which contains the GStreamer options. |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Read from cmdline file |
| the GStreamer options written by console. |
| * WebProcess/soup/WebProcessSoup.cpp: |
| (WebKit::WebProcess::platformInitializeWebProcess): Call initializeGStreamer() method passing |
| the vector which contains the options. |
| |
| 2018-02-20 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [Win] Fix MSVC's treating __attribute__((warn_unused_result)) |
| https://bugs.webkit.org/show_bug.cgi?id=182479 |
| |
| Reviewed by Darin Adler. |
| |
| Since MSVC doesn't understand "__attribute__", "_Check_return_" is used instead. |
| If clang and VisualStudio 2017 are used, a macro with "__attriute__" will be chosen. |
| |
| * UIProcess/API/cpp/WKRetainPtr.h: |
| |
| 2018-02-19 Brady Eidson <beidson@apple.com> |
| |
| Add WebProcessPool option for process swapping on navigation. |
| https://bugs.webkit.org/show_bug.cgi?id=182945 |
| |
| Reviewed by Alex Christensen. |
| |
| Just the most basic groundwork for testing a new WK2 feature. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationProcessSwapsOnNavigation): |
| (WKContextConfigurationSetProcessSwapsOnNavigation): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration setProcessSwapsOnNavigation:]): |
| (-[_WKProcessPoolConfiguration processSwapsOnNavigation]): |
| |
| 2018-02-19 Daniel Bates <dabates@apple.com> |
| |
| Null pointer dereference in WebPageProxy::urlSchemeHandlerForScheme() |
| https://bugs.webkit.org/show_bug.cgi?id=182905 |
| <rdar://problem/37676775> |
| |
| Reviewed by Alex Christensen. |
| |
| Return nullptr when querying for the scheme handler of the null string. |
| |
| Before a navigation is performed WebKit checks if the destination URL is associated with an app |
| unless the embedding client overrides the WKNavigationDelegate delegate callback -webView:decidePolicyForNavigationAction:decisionHandler. |
| If the URL is not associated with an app then WebKit may fall back to checking if the embedding |
| client registered a scheme handler for it. Currently we assume that the scheme is a non-null |
| string when checking the scheme handler registry. However the scheme can be a null string if |
| it is part of a malformed URL. And this leads to bad news bears when we try to use it to look |
| for a scheme handler. Instead check that the scheme is a non-null string before checking to see |
| if it is in the scheme handler registry. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::urlSchemeHandlerForScheme): |
| |
| 2018-02-19 Eric Carlson <eric.carlson@apple.com> |
| |
| [Extra zoom mode] Don't allow PiP media playback |
| https://bugs.webkit.org/show_bug.cgi?id=182930 |
| <rdar://problem/37676259> |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): Don't enable PiP mode. Require user interaction for |
| all media types. |
| |
| 2018-02-19 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r228696. |
| |
| The API test added with this change is timing out on macOS. |
| |
| Reverted changeset: |
| |
| "Null pointer dereference in |
| WebPageProxy::urlSchemeHandlerForScheme()" |
| https://bugs.webkit.org/show_bug.cgi?id=182905 |
| https://trac.webkit.org/changeset/228696 |
| |
| 2018-02-19 Daniel Bates <dabates@apple.com> |
| |
| Null pointer dereference in WebPageProxy::urlSchemeHandlerForScheme() |
| https://bugs.webkit.org/show_bug.cgi?id=182905 |
| |
| Reviewed by Alex Christensen. |
| |
| Return nullptr when querying for the scheme handler of the null string. |
| |
| Before a navigation is performed WebKit checks if the destination URL is associated with an app |
| unless the embedding client overrides the WKNavigationDelegate delegate callback -webView:decidePolicyForNavigationAction:decisionHandler. |
| If the URL is not associated with an app then WebKit may fall back to checking if the embedding |
| client registered a scheme handler for it. Currently we assume that the scheme is a non-null |
| string when checking the scheme handler registry. However the scheme can be a null string if |
| it is part of a malformed URL. And this leads to bad news bears when we try to use it to look |
| for a scheme handler. Instead check that the scheme is a non-null string before checking to see |
| if it is in the scheme handler registry. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::urlSchemeHandlerForScheme): |
| |
| 2018-02-19 Ms2ger <Ms2ger@igalia.com> |
| |
| Explicitly qualify some method calls on this in lamdas in Service Worker code. |
| https://bugs.webkit.org/show_bug.cgi?id=182875 |
| |
| Reviewed by Chris Dumez. |
| |
| This is necessary for the code to build with GCC 5. Other code already |
| appears to have been adapted similarly. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| |
| 2018-02-18 Reza Abbasian <rabbasian@apple.com> |
| |
| Set the appropriate AutoFill context for suggested passwords. |
| https://bugs.webkit.org/show_bug.cgi?id=182718 |
| <rdar://problem/36326863> |
| |
| Reviewed by Wenson Hsieh and Tim Horton. |
| |
| Before starting the input session, call the new delegate to query if AutoFill password suggestion assistance |
| is required for the focused element. |
| |
| * UIProcess/API/Cocoa/_WKFormInputSession.h: |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| Introduce a new delegate to be called before starting an input session to query if AutoFill password suggestion |
| assistance is required for the focused element. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession initWithContentView:focusedElementInfo:requiresStrongPasswordAssistance:]): |
| (-[WKFormInputSession requiresStrongPasswordAssistance]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| Call the delegate to find out if AutoFill suggested password assistance is required. |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView _autofillContext]): If the first responder is a password element and requires |
| assistance for AutoFill suggested password, set the appropriate AutoFill context. |
| (-[WKFormInputSession initWithContentView:focusedElementInfo:]): Deleted. |
| |
| 2018-02-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Form control values are stale after dismissing and representing input view controllers |
| https://bugs.webkit.org/show_bug.cgi?id=182877 |
| <rdar://problem/37604395> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, when presenting an input view controller for a focused element, we populate the initial form control |
| value using the WKContentView's assisted node information when it was last focused. However, if the user edits |
| the value of a form control, dismisses to the form control view controller (while the element is still focused) |
| and then begins editing the field again, the initial text will be the previous value of the input, since the |
| AssistedNodeInformation isn't up to date. |
| |
| To fix this, we introduce a mechanism to update WKContentView's AssistedNodeInformation for the current assisted |
| node. This overwrites _assistedNodeInformation with new information computed from the web process, as long as |
| the assisted node before and after the request is made in the UI process has not changed. We accomplish this by |
| adding an identifier to AssistedNodeInformation, which is monotonically incremented when an element is focused |
| in the web process. The UI process may then use this identifier to determine whether AssistedNodeInformations |
| are describing the same focused element. |
| |
| One interesting consideration here is that a normal AssistedNodeInformation update (propagated when focusing an |
| element) may be deferred in the UI process until the next layer tree commit. In the absence of the assisted node |
| identifier check, one could imagine a scenario in which the assisted node information in the UI process gets |
| "updated" from a new value to an old value: |
| |
| 1. The web process focuses an element and sends AssistedNodeInformation `A`. |
| 2. WKContentView calls -updateCurrentAssistedNodeInformation. |
| 3. The web process sends AssistedNodeInformation `B`. |
| 4. `A` is received in the UI process, but deferred. |
| 5. The UI process receives `B` and sets _assistedNodeInformation to `B`. |
| 6. The UI process calls -_startAssistingNode: and sets _assistedNodeInformation to `A`. |
| |
| This would mean that the _assistedNodeInformation is set to an earlier value, `A`, after being set to a later |
| value, `B`. However, because the AssistedNodeInformation identifier in step (2) refers to the assisted node |
| prior to step (1), the assisted node identifier in (5) would not match this identifier, and we would simply bail |
| instead of overwriting assisted node information. |
| |
| We use this AssistedNodeInformation update mechanism after inserting text via input view controllers, and also |
| after reentering edit mode from the focused form control view controller. This fixes two issues where changing |
| the size of the focused element after editing it results in the focused form overlay highlighting a stale frame, |
| and also when setting the initial text when reentering edit mode for a form control that is already focused. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| |
| Add a new monotonically increasing identifier (per WebPage) which associates a AssistedNodeInformation with a |
| focused element. In the event that the web process crashes and relaunches (thus resetting this identifier), |
| AssistedNodeInformation state in the UI process is now also reset (see -cleanupInteraction), so we won't end up |
| confusing AssistedNodeInformations computed by different WebPages between a web process crash. |
| |
| * UIProcess/WebPageProxy.h: |
| |
| A bit of related refactoring here to remove an unnecessary bool flag that indicates whether we have a deferred |
| assisted node information. Instead, just use the presence of m_deferredNodeAssistanceArguments. |
| |
| * UIProcess/WebPageProxy.messages.in: |
| |
| Add a AssistedNodeInformationCallback IPC message. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| |
| Clear out the previous AssistedNodeInformation. See above for details. |
| |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView updateCurrentAssistedNodeInformation:]): |
| |
| Tries to update AssistedNodeInformation for the current assisted node, invoking the completion callback when |
| finished. This may result in the assisted node information not being updated due to the current assisted node |
| changing in the time between the start of the request and the information being received in the UI process. |
| |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| |
| Refactored from -presentViewControllerForAssistedNode:, such that it no longer takes an AssistedNodeInformation |
| as an argument, but rather just uses WKContentView's current _assistedNodeInformation. This was just being |
| called with _assistedNodeInformation from all call sites anyways. |
| |
| (-[WKContentView textInputController:didCommitText:]): |
| |
| Request an AssistedNodeInformation update after setting the value of a form control; if the assisted node hasn't |
| changed, update the focused form control overlay. This is needed to handle cases where the focused element's |
| frame may have changed after inserting text (e.g. due to line wrapping), and the focused form control overlay |
| needs to be updated to reflect this change. |
| |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): |
| |
| Request an AssistedNodeInformation update before reentering edit mode; if the assisted node hasn't changed since |
| the start of the request, present the appropriate input view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::assistedNodeInformationCallback): |
| (WebKit::WebPageProxy::requestAssistedNodeInformation): |
| (WebKit::WebPageProxy::didCommitLayerTree): |
| (WebKit::WebPageProxy::startAssistingNode): |
| (WebKit::WebPageProxy::stopAssistingNode): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::elementDidFocus): |
| |
| Increment the assisted node identifier. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::requestAssistedNodeInformation): |
| |
| Compute and return an AssistedNodeInformation. |
| |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| 2018-02-16 Dean Jackson <dino@apple.com> |
| |
| Use OPENGL macros to be more clear about which OpenGL/ES WebGL uses on Cocoa |
| https://bugs.webkit.org/show_bug.cgi?id=182894 |
| |
| Reviewed by Tim Horton. |
| |
| Rename OPENGL_ES_2 to OPENGL_ES. |
| |
| * CMakeLists.txt: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| * UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: |
| (WebKit::AcceleratedBackingStoreWayland::paint): |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::initializeEGL): |
| |
| 2018-02-16 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add an entitlement check for service worker on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=182865 |
| <rdar://problem/37505903> |
| |
| Reviewed by Brady Eidson. |
| |
| Added an entitlement check to enable service workers on iOS. |
| |
| * Shared/mac/SandboxUtilities.h: |
| * Shared/mac/SandboxUtilities.mm: |
| (WebKit::connectedProcessHasEntitlement): Added. |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): Enforce the entitlement check by crashing |
| when this code is executed without the parent process having the service worker entitlement. This should |
| never happen unless someone is trying to bypass the entitlement check in UI Process since we ordinarily |
| disable service worker gracefully in WKWebView _initializeWithConfiguration. |
| (WebKit::StorageProcess::swServerForSession): Ditto. |
| (WebKit::StorageProcess::registerSWServerConnection): Ditto. |
| * StorageProcess/StorageProcess.h: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Added. |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Added. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Disable the service workers when the entitlement is |
| missing from the current process. The entitlement is enforced by WebContent and Storage process. |
| This check avoids crashing WebContent process and gracefully disabling the feature. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): Enforce the entitlement check. |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): Added. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const): Added. |
| |
| 2018-02-16 Youenn Fablet <youenn@apple.com> |
| |
| Allow specifying which plug-ins are supported |
| https://bugs.webkit.org/show_bug.cgi?id=182748 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a C and ObjC API to set which plug-ins are specified. |
| Plug-ins may be allowed by origin of the main page or for all origins. |
| |
| If the API to set a supported plug-in is called, WebKit enters a mode |
| where it will block any plug-in that is not on the list. |
| |
| The list of supported plug-ins is stored in UIProcess and sent to WebProcess. |
| This allows to compute the list of visible plug-ins according supported plugins. |
| |
| PluginInfoStore is storing the list of supported plugins and can |
| answer whether a plug-in creation request is to be made unsupported or not. |
| It also creates the structure sent to WebProcess for computing plugin visibility. |
| |
| Updated ArgumentCoders to accept modern HashSet decoders. |
| |
| * Platform/IPC/ArgumentCoders.h: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextAddSupportedPlugin): |
| (WKContextClearSupportedPlugins): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _addSupportedPlugin:named:withMimeTypes:withExtensions:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| (WebKit::PluginInfoStore::isSupportedPlugin): |
| (WebKit::PluginInfoStore::SupportedPlugins::isSupported): |
| (WebKit::PluginInfoStore::SupportedPlugin::isSupported): |
| (WebKit::PluginInfoStore::supportedPluginNames): |
| (WebKit::PluginInfoStore::addSupportedPlugin): |
| * UIProcess/Plugins/PluginInfoStore.h: |
| (WebKit::PluginInfoStore::clearSupportedPlugins): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::findPlugin): |
| (WebKit::WebPageProxy::unavailablePluginButtonClicked): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addSupportedPlugin): |
| (WebKit::WebProcessPool::clearSupportedPlugins): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getPlugins): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::getPluginInfo): |
| (WebKit::WebPluginInfoProvider::getWebVisiblePluginInfo): |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::shouldUnavailablePluginMessageBeButton const): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::createPlugin): |
| (WebKit::WebPage::canPluginHandleResponse): |
| |
| 2018-02-16 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Implement PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() |
| https://bugs.webkit.org/show_bug.cgi?id=182771 |
| <rdar://problem/36459988> |
| |
| Reviewed by Brent Fulgham. |
| |
| This patch utilizes LocalAuthentication Framework to determine if biometrics |
| are enrolled on a device, which is the user verifying platform authenticator. |
| To do so, it links the framework to WebKit. |
| |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: |
| (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebCredentialsMessengerProxy::isUserVerifyingPlatformAuthenticatorAvailableReply): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: |
| * UIProcess/CredentialManagement/cocoa/WebCredentialsMessengerProxyCocoa.mm: |
| (WebKit::WebCredentialsMessengerProxy::platformIsUserVerifyingPlatformAuthenticatorAvailable): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: |
| (WebKit::WebCredentialsMessenger::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebCredentialsMessenger::isUserVerifyingPlatformAuthenticatorAvailableReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: |
| |
| 2018-02-16 Per Arne Vollan <pvollan@apple.com> |
| |
| Implement stopping of run loop in the WebContent process when using NSRunLoop. |
| https://bugs.webkit.org/show_bug.cgi?id=182499 |
| <rdar://problem/37247424> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add the method ChildProcess::stopNSRunLoop to end the WebContent process by executing a block |
| with 'exit(0)' on the main run loop. |
| |
| * Shared/ChildProcess.h: |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::ChildProcess::stopNSRunLoop): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| (WebKit::WebProcess::stopRunLoop): |
| |
| 2018-02-16 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCario] Add NetworkSessionCurl |
| https://bugs.webkit.org/show_bug.cgi?id=182680 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * NetworkProcess/NetworkSession.cpp: |
| (WebKit::NetworkSession::create): |
| * PlatformWin.cmake: |
| |
| 2018-02-16 Chris Dumez <cdumez@apple.com> |
| |
| ASSERTION FAILED: !m_processes[i] || *m_processes[i] == process in MessagePortChannel::entanglePortWithProcess() |
| https://bugs.webkit.org/show_bug.cgi?id=182054 |
| <rdar://problem/36871207> |
| |
| Reviewed by Brady Eidson. |
| |
| Pipe postMessage messages to and from service workers via the UIProcess instead of going |
| directly to the StorageProcess. This is temporarily needed to avoid races due to the |
| MessagePort registry currently living in the UIProcess and postMessage messages potentially |
| sending MessagePort objects. |
| |
| This change is covered by tests on the bots that currently flakily crash in debug. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::postMessageToServiceWorker): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::postMessageToServiceWorkerClient): |
| (WebKit::WebProcessPool::postMessageToServiceWorker): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessPool.messages.in: |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::postMessageToServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| |
| 2018-02-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add basic support for <input type='date'> using date picker UI |
| https://bugs.webkit.org/show_bug.cgi?id=182847 |
| <rdar://problem/35143111> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for presenting date pickers when focusing a date input. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView dismissAllInputViewControllers]): |
| |
| Pull logic to dismiss input view controllers into a single helper. |
| |
| (-[WKContentView presentDatePickerViewController:]): |
| (-[WKContentView dismissDatePickerViewController:]): |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| (-[WKContentView textInputController:didCommitText:]): |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Delegate wheel events to the date picker. |
| |
| * UIProcess/ios/forms/WKDatePickerViewController.h: Added. |
| * UIProcess/ios/forms/WKDatePickerViewController.mm: Added. |
| |
| Add harness files for the WKDatePickerViewController implementation in WebKitAdditions. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-15 Youenn Fablet <youenn@apple.com> |
| |
| Resources loaded from service workers are not downloadable |
| https://bugs.webkit.org/show_bug.cgi?id=182848 |
| |
| Reviewed by Chris Dumez. |
| |
| Downloads are not supporting resources loaded through service worker. |
| As a temporary solution, we will let network process handle it. |
| Note that this would not work if the URL can only be loaded through service worker. |
| Note also that for navigation loads, if the content type is the default one (application/octet-stream) we are overriding it to |
| text/html as we do not support mime sniffing yet from service worker responses. |
| This might interfere with automatic downloads from navigation. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload): |
| |
| 2018-02-15 Megan Gardner <megan_gardner@apple.com> |
| |
| Support scrolling for non-editable web-selection and start autoscroll when near screen edges |
| https://bugs.webkit.org/show_bug.cgi?id=182815 |
| |
| Add support for autoscrolling during a selection. This also takes into account the edges of the screen |
| and starts autoscrolling when you get close, while still allowing autoscrolling when you are past the bounds |
| of the WebView. |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView startAutoscroll:]): |
| (-[WKContentView resignFirstResponderForWebView]): |
| (-[WKContentView useSelectionAssistantWithGranularity:]): |
| (-[WKContentView selectedTextRange]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::startAutoscrollAtPosition): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::startAutoscrollAtPosition): |
| (WebKit::WebPage::cancelAutoscroll): |
| |
| 2018-02-15 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make sure WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can ingest older plist versions and not reset the database |
| https://bugs.webkit.org/show_bug.cgi?id=182812 |
| <rdar://problem/37511406> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| Now does the following: |
| - Logs when there is a model version mismatch. |
| - Does not ingest statistics if the version on disk is newer than the supported one. |
| - Does ingest statistics if the version on disk is older than the supported one. |
| - Passes on the version found on disk to WebCore::ResourceLoadStatistics::decode(). |
| |
| 2018-02-15 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting |
| https://bugs.webkit.org/show_bug.cgi?id=181946 |
| <rdar://problem/37258262> |
| |
| Reviewed by Chris Dumez. |
| |
| Dummy WebCredentialsMessenger and WebCredentialsMessengerProxy are crafted to establish |
| a message exchange channel between UIProcess and WebProcess. |
| |
| * DerivedSources.make: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::~WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessenger::WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::~WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::makeCredential): |
| (WebKit::WebCredentialsMessenger::getAssertion): |
| (WebKit::WebCredentialsMessenger::makeCredentialReply): |
| (WebKit::WebCredentialsMessenger::getAssertionReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::m_cpuLimit): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-02-15 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] Unify build of platform-specific files in WebKit layer |
| https://bugs.webkit.org/show_bug.cgi?id=182696 |
| |
| Reviewed by Žan Doberšek. |
| |
| This is easy, because all needed changes were made in the previously-landed patch. |
| |
| * CMakeLists.txt: |
| * PlatformWPE.cmake: |
| |
| 2018-02-15 Don Olmstead <don.olmstead@sony.com> |
| |
| WebCore headers should not be included relatively within dependent projects |
| https://bugs.webkit.org/show_bug.cgi?id=182805 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: |
| * NetworkProcess/webrtc/NetworkRTCMonitor.h: |
| * Shared/gtk/WebEventFactory.cpp: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| |
| 2018-02-15 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228495. |
| |
| This caused mulitple perf tests to fail consistently. |
| |
| Reverted changeset: |
| |
| "Resource Load Statistics: Make sure |
| WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can |
| ingest older plist versions and not reset the database" |
| https://bugs.webkit.org/show_bug.cgi?id=182812 |
| https://trac.webkit.org/changeset/228495 |
| |
| 2018-02-14 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Default definition of InjectedBundle::PlatformBundle should not be Windows-specific. |
| https://bugs.webkit.org/show_bug.cgi?id=182810 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This branch was added in r228455, but should not be limited to OS(WINDOWS). |
| |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-02-14 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Default implementations of nativeEvent() should be platform-agnostic. |
| https://bugs.webkit.org/show_bug.cgi?id=182806 |
| |
| Reviewed by Darin Adler. |
| |
| * Shared/NativeWebKeyboardEvent.h: |
| * Shared/NativeWebMouseEvent.h: |
| * Shared/NativeWebWheelEvent.h: |
| |
| 2018-02-14 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Make sure WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can ingest older plist versions and not reset the database |
| https://bugs.webkit.org/show_bug.cgi?id=182812 |
| <rdar://problem/37511406> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| Now does the following: |
| - Logs when there is a model version mismatch. |
| - Does not ingest statistics if the version on disk is newer than the supported one. |
| - Does ingest statistics if the version on disk is older than the supported one. |
| - Passes on the version found on disk to WebCore::ResourceLoadStatistics::decode(). |
| |
| 2018-02-14 Daniel Bates <dabates@apple.com> |
| |
| Disallow cross-origin subresources from asking for credentials |
| https://bugs.webkit.org/show_bug.cgi?id=182579 |
| <rdar://problem/36162271> |
| |
| Reviewed by Andy Estes. |
| |
| Add a private preference to toggle allowing non-mixed content cross-origin subresources to load. |
| WebKitTestRunner toggles this preference when it sees the test option allowCrossOriginSubresourcesToAskForCredential. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetAllowCrossOriginSubresourcesToAskForCredentials): |
| (WKPreferencesGetAllowCrossOriginSubresourcesToAskForCredentials): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-02-14 John Wilander <wilander@apple.com> |
| |
| Make maximumParallelReadCount static to fix lambda capture error in WebKit::NetworkCache::Storage::traverse() |
| https://bugs.webkit.org/show_bug.cgi?id=182797 |
| <rdar://problem/37540594> |
| |
| Reviewed by Tim Horton. |
| |
| This capture was added in r228455 and causes a build failure when |
| run with -Wunused-lambda-capture. Xcode also warns about it. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::traverse): |
| |
| 2018-02-14 Ryosuke Niwa <rniwa@webkit.org> |
| |
| EventDispatcher::wheelEvent uses a wrong enum values in switch |
| https://bugs.webkit.org/show_bug.cgi?id=182796 |
| |
| Reviewed by Chris Dumez. |
| |
| EventDispatcher::wheelEvent is using PlatformWheelEventPhaseBegan and PlatformWheelEventPhaseEnded |
| but the enum type of wheelEvent.phase() is WebWheelEvent::Phase. |
| |
| The enum values are indentical for both so there is no behavioral change. |
| |
| * WebProcess/WebPage/EventDispatcher.cpp: |
| (WebKit::EventDispatcher::wheelEvent): |
| |
| 2018-02-14 Maureen Daum <mdaum@apple.com> |
| |
| Add C SPI for support of Website Data Store in Website Policies |
| https://bugs.webkit.org/show_bug.cgi?id=182698 |
| <rdar://problem/37412008> |
| |
| Reviewed by Andy Estes. |
| |
| Expand the API added for _WKWebsitePolicies.websiteDataStore in r225989 and r226325 |
| to be available in the C API. In the ObjC API, we handle setting the website data |
| store in NavigationState::NavigationClient::decidePolicyForNavigationAction. There |
| we throw an exception if setting the website data store isn't supported, and then |
| change the website data store. The equivalent place to do this work in the C API is |
| in WKFramePolicyListenerUseWithPolicies. However, instead of throwing exceptions, |
| release asserts are used. |
| |
| * UIProcess/API/C/WKFramePolicyListener.cpp: |
| (WKFramePolicyListenerUseWithPolicies): |
| If the website policies data contains a website data store, do the same checks that |
| are done in NavigationState::NavigationClient::decidePolicyForNavigationAction. Namely, |
| that it is a valid website data store and it is a policy decision for a main frame navigation. |
| If these checks are met, change the website data store. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageUpdateWebsitePolicies): |
| * UIProcess/API/C/WKWebsitePolicies.cpp: |
| (WKWebsitePoliciesGetDataStore): |
| (WKWebsitePoliciesSetDataStore): |
| * UIProcess/API/C/WKWebsitePolicies.h: |
| * UIProcess/WebFrameListenerProxy.cpp: |
| (WebKit::WebFrameListenerProxy::changeWebsiteDataStore): |
| (WebKit::WebFrameListenerProxy::isMainFrame): |
| Expose whether the frame proxy is for a main frame, which is required to verify that |
| website policies only specify a website data store for main frame policy decisions. |
| * UIProcess/WebFrameListenerProxy.h: |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::changeWebsiteDataStore): |
| * UIProcess/WebFrameProxy.h: |
| |
| 2018-02-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r228444. |
| |
| Introduced API and Layout test failures. |
| |
| Reverted changeset: |
| |
| "[WebAuthN] Revisit the whole async model of task dispatching, |
| timeout and aborting" |
| https://bugs.webkit.org/show_bug.cgi?id=181946 |
| https://trac.webkit.org/changeset/228444 |
| |
| 2018-02-13 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Fix build errors which come from including headers and not suitable implementation for windows |
| https://bugs.webkit.org/show_bug.cgi?id=182679 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: |
| (WebKit::NetworkCache::BlobStorage::add): |
| * NetworkProcess/cache/NetworkCacheData.cpp: |
| (WebKit::NetworkCache::Data::mapToFile const): |
| (WebKit::NetworkCache::mapFile): |
| (WebKit::NetworkCache::adoptAndMapFile): |
| (WebKit::NetworkCache::readOrMakeSalt): |
| * NetworkProcess/cache/NetworkCacheFileSystem.cpp: |
| (WebKit::NetworkCache::directoryEntryType): |
| (WebKit::NetworkCache::traverseDirectory): |
| (WebKit::NetworkCache::fileTimes): |
| (WebKit::NetworkCache::updateFileModificationTimeIfNeeded): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::traverse): |
| * NetworkProcess/win/SystemProxyWin.h: |
| * Platform/IPC/Attachment.h: |
| * Platform/Module.h: |
| * Platform/SharedMemory.h: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Shared/API/c/WKBase.h: |
| * Shared/ChildProcess.cpp: |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/ProcessAssertion.h: |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| * WebProcess/WebProcess.cpp: |
| |
| 2018-02-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r228431. |
| https://bugs.webkit.org/show_bug.cgi?id=182766 |
| |
| Regressed CMake build stability (Requested by dolmstead on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "[CMake] Make WebCore headers copies" |
| https://bugs.webkit.org/show_bug.cgi?id=182512 |
| https://trac.webkit.org/changeset/228431 |
| |
| 2018-02-13 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting |
| https://bugs.webkit.org/show_bug.cgi?id=181946 |
| <rdar://problem/37258262> |
| |
| Reviewed by Chris Dumez. |
| |
| Dummy WebCredentialsMessenger and WebCredentialsMessengerProxy are crafted to establish |
| a message exchange channel between UIProcess and WebProcess. |
| |
| * DerivedSources.make: |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::~WebCredentialsMessengerProxy): |
| (WebKit::WebCredentialsMessengerProxy::makeCredential): |
| (WebKit::WebCredentialsMessengerProxy::getAssertion): |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| * UIProcess/WebPageProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| (WebKit::WebCredentialsMessenger::WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::~WebCredentialsMessenger): |
| (WebKit::WebCredentialsMessenger::makeCredential): |
| (WebKit::WebCredentialsMessenger::getAssertion): |
| (WebKit::WebCredentialsMessenger::makeCredentialReply): |
| (WebKit::WebCredentialsMessenger::getAssertionReply): |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h. |
| * WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: Added. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_credentialsMessenger): |
| (WebKit::m_cpuLimit): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-02-13 Youenn Fablet <youenn@apple.com> |
| |
| Add support for configuring WebsiteDatastore service worker and cache storage path |
| https://bugs.webkit.org/show_bug.cgi?id=182674 |
| |
| Reviewed by Chris Dumez. |
| |
| Beef up WKWebsiteDataStoreConfiguration to easily set the WebsiteDataStore |
| service worker registration and cache storage directory path. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration _cacheStorageDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setCacheStorageDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration _serviceWorkerRegistrationDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setServiceWorkerRegistrationDirectory:]): |
| |
| 2018-02-13 Brian Burg <bburg@apple.com> |
| |
| Web Automation: don't return an error if resizing/moving a window has no effect |
| https://bugs.webkit.org/show_bug.cgi?id=182742 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::resizeWindowOfBrowsingContext): |
| (WebKit::WebAutomationSession::moveWindowOfBrowsingContext): |
| Unify the behavior for all ports. Don't raise an error if the command was |
| idempotent (by mistake or not). It should not be an error to re-maximize a window. |
| |
| 2018-02-13 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake] Make WebCore headers copies |
| https://bugs.webkit.org/show_bug.cgi?id=182512 |
| |
| Reviewed by Keith Miller. |
| |
| * CMakeLists.txt: |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: |
| * NetworkProcess/webrtc/NetworkRTCMonitor.h: |
| * PlatformWPE.cmake: |
| * Scripts/generate-forwarding-headers.pl: |
| * Shared/gtk/WebEventFactory.cpp: |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| * WebProcess/WebPage/wpe/WebPageWPE.cpp: |
| |
| 2018-02-13 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] whitelist iokit-get-properties |
| https://bugs.webkit.org/show_bug.cgi?id=182722 |
| <rdar://problem/30929165> |
| |
| Reviewed by Eric Carlson. |
| |
| Update the iOS sandbox to block access to IOKit properties that are not needed for |
| legitimate WebContent process use. This brings the iOS sandbox in line with the |
| work done under macOS. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-02-12 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Classify resources as prevalent based on redirects to other prevalent resources |
| https://bugs.webkit.org/show_bug.cgi?id=182664 |
| <rdar://problem/37372572> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| (WebKit::ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics): |
| Unique top frame redirects now counts toward classification as prevalent. |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::encode): |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::decode): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom): |
| Test infrastructure. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| Bumped the statistics model to 11 because of the added fields. |
| (WebKit::WebResourceLoadStatisticsStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain): |
| This function back traces redirect chains to classify domains |
| that have redirected to a newly classified prevalent resource. |
| (WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): |
| Now uses the new convenience function WebResourceLoadStatisticsStore::setPrevalentResource(). |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| New convenience function to make sure we always call |
| WebResourceLoadStatisticsStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain() |
| and capture redirect chains backward. |
| (WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom): |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo): |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom): |
| Test infrastructure. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-02-12 Antti Koivisto <antti@apple.com> |
| |
| Update NetworkCache::Storage::lastStableVersion after r226349 |
| https://bugs.webkit.org/show_bug.cgi?id=182723 |
| <rdar://problem/37469554> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| Allow deleting version 11 caches. |
| |
| 2018-02-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Add support for <input type='time'> using time picker UI |
| https://bugs.webkit.org/show_bug.cgi?id=182683 |
| <rdar://problem/35143162> |
| |
| Reviewed by Tim Horton. |
| |
| Adds support for showing a time picker when an input of type time is focused in extra zoomed mode. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView presentTimePickerViewController:]): |
| (-[WKContentView dismissTimePickerViewController:]): |
| |
| Add helpers to dismiss and present the time picker view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| |
| When focusing InputType::Time, present a time picker. Additionally, tweak the logic here to use the generic text |
| input view controller as a fallback when the other input view controllers (number pads, select menus and time |
| pickers thus far) are not relevant. This prevents us from completely being unable to edit form controls that are |
| currently unsupported. |
| |
| (-[WKContentView textInputController:didCommitText:]): |
| (-[WKContentView textInputControllerDidRequestDismissal:]): |
| |
| Tweak WKContentView for changes to WKTextFormControlViewControllerDelegate. |
| |
| (-[WKContentView actionNameForFocusedFormControlController:]): |
| |
| Adjust this implementation to hide the focused form control "Go" button for selects and time inputs. This |
| currently doesn't work for these form controls because it relies on implicit form submission; this should be |
| fixed by future changes, after which we should revert this adjustment. |
| |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| Delegate wheel events to the time picker if needed. |
| |
| (-[WKContentView textInputController:didRequestDismissalWithAction:]): Deleted. |
| |
| Renamed to -textInputControllerDidRequestDismissal:. |
| |
| * UIProcess/ios/forms/WKTimePickerViewController.h: Added. |
| * UIProcess/ios/forms/WKTimePickerViewController.mm: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Unify builds for platform-specific files in WebKit layer |
| https://bugs.webkit.org/show_bug.cgi?id=182450 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add most GTK-specific sources to unified build. API files are exempted, except for the DOM |
| API. Files shared with PluginProcessGTK2 are also exempted. Finally, files with name |
| conflicts in headers, which appears difficult to fix, are also exempted. |
| |
| * CMakeLists.txt: |
| * NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp: |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| * NetworkProcess/soup/NetworkSessionSoup.cpp: |
| * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: |
| * Platform/classifier/ResourceLoadStatisticsClassifier.cpp: |
| * PlatformGTK.cmake: |
| * PluginProcess/unix/PluginControllerProxyUnix.cpp: |
| * Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp: |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| * Shared/CoordinatedGraphics/SimpleViewportController.cpp: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| * Shared/Plugins/Netscape/unix/NetscapePluginModuleUnix.cpp: |
| * Shared/Plugins/unix/PluginSearchPath.cpp: |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| * Shared/glib/WebContextMenuItemGlib.cpp: |
| * Shared/glib/WebErrorsGlib.cpp: |
| * Shared/gtk/ArgumentCodersGtk.cpp: |
| * Shared/gtk/NativeWebKeyboardEventGtk.cpp: |
| * Shared/gtk/ProcessExecutablePathGtk.cpp: |
| * Shared/gtk/WebErrorsGtk.cpp: |
| * Shared/gtk/WebEventFactory.cpp: |
| * Shared/linux/WebMemorySamplerLinux.cpp: |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| * Shared/soup/WebErrorsSoup.cpp: |
| * SourcesGTK.txt: Added. |
| * UIProcess/AcceleratedDrawingAreaProxy.cpp: |
| * UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp: |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| * UIProcess/BackingStore.cpp: |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp: |
| * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: |
| * UIProcess/WebStorage/StorageManager.cpp: |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| * UIProcess/gtk/AcceleratedBackingStore.cpp: |
| * UIProcess/gtk/DragAndDropHandler.cpp: |
| * UIProcess/gtk/GestureController.cpp: |
| * UIProcess/gtk/HardwareAccelerationManager.cpp: |
| * UIProcess/gtk/InputMethodFilter.cpp: |
| * UIProcess/gtk/TextCheckerGtk.cpp: |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| * UIProcess/gtk/WebColorPickerGtk.cpp: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| * UIProcess/gtk/WebPasteboardProxyGtk.cpp: |
| * UIProcess/gtk/WebPopupMenuProxyGtk.cpp: |
| * WebProcess/Cookies/soup/WebCookieManagerSoup.cpp: |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp: |
| (webkit_dom_attr_dom_event_target_init): |
| (webkit_dom_attr_set_property): |
| (webkit_dom_attr_get_property): |
| (webkit_dom_attr_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp: |
| (webkit_dom_cdata_section_dom_event_target_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp: |
| (webkit_dom_css_rule_set_property): |
| (webkit_dom_css_rule_get_property): |
| (webkit_dom_css_rule_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp: |
| (webkit_dom_css_rule_list_get_property): |
| (webkit_dom_css_rule_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp: |
| (webkit_dom_css_style_declaration_set_property): |
| (webkit_dom_css_style_declaration_get_property): |
| (webkit_dom_css_style_declaration_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp: |
| (webkit_dom_css_style_sheet_get_property): |
| (webkit_dom_css_style_sheet_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp: |
| (webkit_dom_css_value_set_property): |
| (webkit_dom_css_value_get_property): |
| (webkit_dom_css_value_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp: |
| (webkit_dom_character_data_dom_event_target_init): |
| (webkit_dom_character_data_set_property): |
| (webkit_dom_character_data_get_property): |
| (webkit_dom_character_data_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp: |
| (webkit_dom_client_rect_get_property): |
| (webkit_dom_client_rect_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp: |
| (webkit_dom_client_rect_list_get_property): |
| (webkit_dom_client_rect_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp: |
| (webkit_dom_comment_dom_event_target_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp: |
| (webkit_dom_dom_selection_get_property): |
| (webkit_dom_dom_selection_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp: |
| (webkit_dom_dom_token_list_set_property): |
| (webkit_dom_dom_token_list_get_property): |
| (webkit_dom_dom_token_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: |
| (webkit_dom_dom_window_dom_event_target_init): |
| (webkit_dom_dom_window_set_property): |
| (webkit_dom_dom_window_get_property): |
| (webkit_dom_dom_window_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp: |
| (webkit_dom_document_dom_event_target_init): |
| (webkit_dom_document_set_property): |
| (webkit_dom_document_get_property): |
| (webkit_dom_document_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp: |
| (webkit_dom_document_fragment_dom_event_target_init): |
| (webkit_dom_document_fragment_get_property): |
| (webkit_dom_document_fragment_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp: |
| (webkit_dom_document_type_dom_event_target_init): |
| (webkit_dom_document_type_get_property): |
| (webkit_dom_document_type_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp: |
| (webkit_dom_element_dom_event_target_init): |
| (webkit_dom_element_set_property): |
| (webkit_dom_element_get_property): |
| (webkit_dom_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp: |
| (webkit_dom_event_set_property): |
| (webkit_dom_event_get_property): |
| (webkit_dom_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp: |
| (webkit_dom_file_get_property): |
| (webkit_dom_file_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp: |
| (webkit_dom_file_list_get_property): |
| (webkit_dom_file_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp: |
| (webkit_dom_html_anchor_element_dom_event_target_init): |
| (webkit_dom_html_anchor_element_set_property): |
| (webkit_dom_html_anchor_element_get_property): |
| (webkit_dom_html_anchor_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp: |
| (webkit_dom_html_applet_element_dom_event_target_init): |
| (webkit_dom_html_applet_element_set_property): |
| (webkit_dom_html_applet_element_get_property): |
| (webkit_dom_html_applet_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp: |
| (webkit_dom_html_area_element_dom_event_target_init): |
| (webkit_dom_html_area_element_set_property): |
| (webkit_dom_html_area_element_get_property): |
| (webkit_dom_html_area_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp: |
| (webkit_dom_html_br_element_dom_event_target_init): |
| (webkit_dom_html_br_element_set_property): |
| (webkit_dom_html_br_element_get_property): |
| (webkit_dom_html_br_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp: |
| (webkit_dom_html_base_element_dom_event_target_init): |
| (webkit_dom_html_base_element_set_property): |
| (webkit_dom_html_base_element_get_property): |
| (webkit_dom_html_base_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp: |
| (webkit_dom_html_body_element_dom_event_target_init): |
| (webkit_dom_html_body_element_set_property): |
| (webkit_dom_html_body_element_get_property): |
| (webkit_dom_html_body_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp: |
| (webkit_dom_html_button_element_dom_event_target_init): |
| (webkit_dom_html_button_element_set_property): |
| (webkit_dom_html_button_element_get_property): |
| (webkit_dom_html_button_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp: |
| (webkit_dom_html_canvas_element_dom_event_target_init): |
| (webkit_dom_html_canvas_element_set_property): |
| (webkit_dom_html_canvas_element_get_property): |
| (webkit_dom_html_canvas_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp: |
| (webkit_dom_html_collection_get_property): |
| (webkit_dom_html_collection_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp: |
| (webkit_dom_html_d_list_element_dom_event_target_init): |
| (webkit_dom_html_d_list_element_set_property): |
| (webkit_dom_html_d_list_element_get_property): |
| (webkit_dom_html_d_list_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp: |
| (webkit_dom_html_directory_element_dom_event_target_init): |
| (webkit_dom_html_directory_element_set_property): |
| (webkit_dom_html_directory_element_get_property): |
| (webkit_dom_html_directory_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp: |
| (webkit_dom_html_div_element_dom_event_target_init): |
| (webkit_dom_html_div_element_set_property): |
| (webkit_dom_html_div_element_get_property): |
| (webkit_dom_html_div_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp: |
| (webkit_dom_html_document_dom_event_target_init): |
| (webkit_dom_html_document_set_property): |
| (webkit_dom_html_document_get_property): |
| (webkit_dom_html_document_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: |
| (webkit_dom_html_element_dom_event_target_init): |
| (webkit_dom_html_element_set_property): |
| (webkit_dom_html_element_get_property): |
| (webkit_dom_html_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp: |
| (webkit_dom_html_embed_element_dom_event_target_init): |
| (webkit_dom_html_embed_element_set_property): |
| (webkit_dom_html_embed_element_get_property): |
| (webkit_dom_html_embed_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp: |
| (webkit_dom_html_field_set_element_dom_event_target_init): |
| (webkit_dom_html_field_set_element_get_property): |
| (webkit_dom_html_field_set_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp: |
| (webkit_dom_html_font_element_dom_event_target_init): |
| (webkit_dom_html_font_element_set_property): |
| (webkit_dom_html_font_element_get_property): |
| (webkit_dom_html_font_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp: |
| (webkit_dom_html_form_element_dom_event_target_init): |
| (webkit_dom_html_form_element_set_property): |
| (webkit_dom_html_form_element_get_property): |
| (webkit_dom_html_form_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp: |
| (webkit_dom_html_frame_element_dom_event_target_init): |
| (webkit_dom_html_frame_element_set_property): |
| (webkit_dom_html_frame_element_get_property): |
| (webkit_dom_html_frame_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp: |
| (webkit_dom_html_frame_set_element_dom_event_target_init): |
| (webkit_dom_html_frame_set_element_set_property): |
| (webkit_dom_html_frame_set_element_get_property): |
| (webkit_dom_html_frame_set_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp: |
| (webkit_dom_html_hr_element_dom_event_target_init): |
| (webkit_dom_html_hr_element_set_property): |
| (webkit_dom_html_hr_element_get_property): |
| (webkit_dom_html_hr_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp: |
| (webkit_dom_html_head_element_dom_event_target_init): |
| (webkit_dom_html_head_element_set_property): |
| (webkit_dom_html_head_element_get_property): |
| (webkit_dom_html_head_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp: |
| (webkit_dom_html_heading_element_dom_event_target_init): |
| (webkit_dom_html_heading_element_set_property): |
| (webkit_dom_html_heading_element_get_property): |
| (webkit_dom_html_heading_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp: |
| (webkit_dom_html_html_element_dom_event_target_init): |
| (webkit_dom_html_html_element_set_property): |
| (webkit_dom_html_html_element_get_property): |
| (webkit_dom_html_html_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp: |
| (webkit_dom_html_iframe_element_dom_event_target_init): |
| (webkit_dom_html_iframe_element_set_property): |
| (webkit_dom_html_iframe_element_get_property): |
| (webkit_dom_html_iframe_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp: |
| (webkit_dom_html_image_element_dom_event_target_init): |
| (webkit_dom_html_image_element_set_property): |
| (webkit_dom_html_image_element_get_property): |
| (webkit_dom_html_image_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: |
| (webkit_dom_html_input_element_dom_event_target_init): |
| (webkit_dom_html_input_element_set_property): |
| (webkit_dom_html_input_element_get_property): |
| (webkit_dom_html_input_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp: |
| (webkit_dom_html_li_element_dom_event_target_init): |
| (webkit_dom_html_li_element_set_property): |
| (webkit_dom_html_li_element_get_property): |
| (webkit_dom_html_li_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp: |
| (webkit_dom_html_label_element_dom_event_target_init): |
| (webkit_dom_html_label_element_set_property): |
| (webkit_dom_html_label_element_get_property): |
| (webkit_dom_html_label_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp: |
| (webkit_dom_html_legend_element_dom_event_target_init): |
| (webkit_dom_html_legend_element_set_property): |
| (webkit_dom_html_legend_element_get_property): |
| (webkit_dom_html_legend_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp: |
| (webkit_dom_html_link_element_dom_event_target_init): |
| (webkit_dom_html_link_element_set_property): |
| (webkit_dom_html_link_element_get_property): |
| (webkit_dom_html_link_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp: |
| (webkit_dom_html_map_element_dom_event_target_init): |
| (webkit_dom_html_map_element_set_property): |
| (webkit_dom_html_map_element_get_property): |
| (webkit_dom_html_map_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp: |
| (webkit_dom_html_marquee_element_dom_event_target_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp: |
| (webkit_dom_html_menu_element_dom_event_target_init): |
| (webkit_dom_html_menu_element_set_property): |
| (webkit_dom_html_menu_element_get_property): |
| (webkit_dom_html_menu_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp: |
| (webkit_dom_html_meta_element_dom_event_target_init): |
| (webkit_dom_html_meta_element_set_property): |
| (webkit_dom_html_meta_element_get_property): |
| (webkit_dom_html_meta_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp: |
| (webkit_dom_html_mod_element_dom_event_target_init): |
| (webkit_dom_html_mod_element_set_property): |
| (webkit_dom_html_mod_element_get_property): |
| (webkit_dom_html_mod_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp: |
| (webkit_dom_html_o_list_element_dom_event_target_init): |
| (webkit_dom_html_o_list_element_set_property): |
| (webkit_dom_html_o_list_element_get_property): |
| (webkit_dom_html_o_list_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp: |
| (webkit_dom_html_object_element_dom_event_target_init): |
| (webkit_dom_html_object_element_set_property): |
| (webkit_dom_html_object_element_get_property): |
| (webkit_dom_html_object_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp: |
| (webkit_dom_html_opt_group_element_dom_event_target_init): |
| (webkit_dom_html_opt_group_element_set_property): |
| (webkit_dom_html_opt_group_element_get_property): |
| (webkit_dom_html_opt_group_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp: |
| (webkit_dom_html_option_element_dom_event_target_init): |
| (webkit_dom_html_option_element_set_property): |
| (webkit_dom_html_option_element_get_property): |
| (webkit_dom_html_option_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp: |
| (webkit_dom_html_options_collection_set_property): |
| (webkit_dom_html_options_collection_get_property): |
| (webkit_dom_html_options_collection_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp: |
| (webkit_dom_html_paragraph_element_dom_event_target_init): |
| (webkit_dom_html_paragraph_element_set_property): |
| (webkit_dom_html_paragraph_element_get_property): |
| (webkit_dom_html_paragraph_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp: |
| (webkit_dom_html_param_element_dom_event_target_init): |
| (webkit_dom_html_param_element_set_property): |
| (webkit_dom_html_param_element_get_property): |
| (webkit_dom_html_param_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp: |
| (webkit_dom_html_pre_element_dom_event_target_init): |
| (webkit_dom_html_pre_element_set_property): |
| (webkit_dom_html_pre_element_get_property): |
| (webkit_dom_html_pre_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp: |
| (webkit_dom_html_quote_element_dom_event_target_init): |
| (webkit_dom_html_quote_element_set_property): |
| (webkit_dom_html_quote_element_get_property): |
| (webkit_dom_html_quote_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp: |
| (webkit_dom_html_script_element_dom_event_target_init): |
| (webkit_dom_html_script_element_set_property): |
| (webkit_dom_html_script_element_get_property): |
| (webkit_dom_html_script_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp: |
| (webkit_dom_html_select_element_dom_event_target_init): |
| (webkit_dom_html_select_element_set_property): |
| (webkit_dom_html_select_element_get_property): |
| (webkit_dom_html_select_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp: |
| (webkit_dom_html_style_element_dom_event_target_init): |
| (webkit_dom_html_style_element_set_property): |
| (webkit_dom_html_style_element_get_property): |
| (webkit_dom_html_style_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp: |
| (webkit_dom_html_table_caption_element_dom_event_target_init): |
| (webkit_dom_html_table_caption_element_set_property): |
| (webkit_dom_html_table_caption_element_get_property): |
| (webkit_dom_html_table_caption_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp: |
| (webkit_dom_html_table_cell_element_dom_event_target_init): |
| (webkit_dom_html_table_cell_element_set_property): |
| (webkit_dom_html_table_cell_element_get_property): |
| (webkit_dom_html_table_cell_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp: |
| (webkit_dom_html_table_col_element_dom_event_target_init): |
| (webkit_dom_html_table_col_element_set_property): |
| (webkit_dom_html_table_col_element_get_property): |
| (webkit_dom_html_table_col_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp: |
| (webkit_dom_html_table_element_dom_event_target_init): |
| (webkit_dom_html_table_element_set_property): |
| (webkit_dom_html_table_element_get_property): |
| (webkit_dom_html_table_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp: |
| (webkit_dom_html_table_row_element_dom_event_target_init): |
| (webkit_dom_html_table_row_element_set_property): |
| (webkit_dom_html_table_row_element_get_property): |
| (webkit_dom_html_table_row_element_class_init): |
| (webkit_dom_html_table_row_element_insert_cell): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp: |
| (webkit_dom_html_table_section_element_dom_event_target_init): |
| (webkit_dom_html_table_section_element_set_property): |
| (webkit_dom_html_table_section_element_get_property): |
| (webkit_dom_html_table_section_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp: |
| (webkit_dom_html_text_area_element_dom_event_target_init): |
| (webkit_dom_html_text_area_element_set_property): |
| (webkit_dom_html_text_area_element_get_property): |
| (webkit_dom_html_text_area_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp: |
| (webkit_dom_html_title_element_dom_event_target_init): |
| (webkit_dom_html_title_element_set_property): |
| (webkit_dom_html_title_element_get_property): |
| (webkit_dom_html_title_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp: |
| (webkit_dom_html_u_list_element_dom_event_target_init): |
| (webkit_dom_html_u_list_element_set_property): |
| (webkit_dom_html_u_list_element_get_property): |
| (webkit_dom_html_u_list_element_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp: |
| (webkit_dom_keyboard_event_get_property): |
| (webkit_dom_keyboard_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp: |
| (webkit_dom_media_list_set_property): |
| (webkit_dom_media_list_get_property): |
| (webkit_dom_media_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp: |
| (webkit_dom_mouse_event_get_property): |
| (webkit_dom_mouse_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp: |
| (webkit_dom_named_node_map_get_property): |
| (webkit_dom_named_node_map_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp: |
| (webkit_dom_node_dom_event_target_init): |
| (webkit_dom_node_set_property): |
| (webkit_dom_node_get_property): |
| (webkit_dom_node_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp: |
| (webkit_dom_node_iterator_get_property): |
| (webkit_dom_node_iterator_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp: |
| (webkit_dom_node_list_get_property): |
| (webkit_dom_node_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp: |
| (webkitDOMObjectSetProperty): |
| (webkit_dom_object_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp: |
| (webkit_dom_processing_instruction_dom_event_target_init): |
| (webkit_dom_processing_instruction_get_property): |
| (webkit_dom_processing_instruction_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp: |
| (webkit_dom_range_get_property): |
| (webkit_dom_range_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp: |
| (webkit_dom_style_sheet_set_property): |
| (webkit_dom_style_sheet_get_property): |
| (webkit_dom_style_sheet_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp: |
| (webkit_dom_style_sheet_list_get_property): |
| (webkit_dom_style_sheet_list_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp: |
| (webkit_dom_text_dom_event_target_init): |
| (webkit_dom_text_get_property): |
| (webkit_dom_text_class_init): |
| (webkit_dom_event_target_init): Deleted. |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp: |
| (webkit_dom_tree_walker_get_property): |
| (webkit_dom_tree_walker_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp: |
| (webkit_dom_ui_event_get_property): |
| (webkit_dom_ui_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp: |
| (webkit_dom_wheel_event_get_property): |
| (webkit_dom_wheel_event_class_init): |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp: |
| (webkit_dom_xpath_result_get_property): |
| (webkit_dom_xpath_result_class_init): |
| * WebProcess/InjectedBundle/glib/InjectedBundleGlib.cpp: |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: |
| * WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.cpp: |
| * WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp: |
| * WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| * WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| * WebProcess/WebPage/AcceleratedSurface.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| * WebProcess/WebPage/DrawingAreaImpl.cpp: |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp: |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp: |
| * WebProcess/WebPage/gtk/WebPageGtk.cpp: |
| * WebProcess/gtk/WaylandCompositorDisplay.cpp: |
| * WebProcess/gtk/WebProcessMainGtk.cpp: |
| |
| 2018-02-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: addCookie command should prepend a dot to domain if missing |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| <rdar://problem/37116398> |
| |
| Reviewed by Michael Catanzaro. |
| |
| RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| |
| 2018-02-11 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Add WKBaseWin.h |
| https://bugs.webkit.org/show_bug.cgi?id=182681 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * PlatformWin.cmake: |
| * Shared/API/c/win/WKBaseWin.h: Added. |
| |
| 2018-02-09 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Remove invalidated WebPage::handleEditingKeyboardEvent default implementation after r228260. |
| https://bugs.webkit.org/show_bug.cgi?id=182663 |
| |
| Reviewed by Chris Dumez. |
| |
| This would need to be updated to turn `keyEvent` into `underlyingPlatformEvent`; |
| instead, we can remove it, as it's only for Windows, which doesn't yet support WK2. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::handleEditingKeyboardEvent): Deleted. |
| |
| 2018-02-09 Nan Wang <n_wang@apple.com> |
| |
| AX: Accessibility is not notified when a web process cancels the suspension |
| https://bugs.webkit.org/show_bug.cgi?id=182659 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We were notifying Accessibility with the web process suspended information in actualPrepareToSuspend |
| and processDidResume. However, the suspension can be canceled during the prepare call. So that we |
| should also post a notification in cancelPrepareToSuspend. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::cancelPrepareToSuspend): |
| |
| 2018-02-09 Brent Fulgham <bfulgham@apple.com> |
| |
| Sandbox violating attempting to read log formatting preference file |
| https://bugs.webkit.org/show_bug.cgi?id=182648 |
| <rdar://problem/36629495> |
| |
| Reviewed by Eric Carlson. |
| |
| Various frameworks attempt to read logging format information from /usr/local/lib/log. The sandbox is blocking |
| this, generating log spam and preventing some logging features from working properly. We should allow read |
| access to this path. |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-08 Chris Dumez <cdumez@apple.com> |
| |
| There should be a way to disable [OverrideBuiltins] behavior in a given DOMWrapperWorld |
| https://bugs.webkit.org/show_bug.cgi?id=182524 |
| <rdar://problem/9057327> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add C API on WKBundleScriptWorld and Cocoa API on WKWebProcessPlugInScriptWorld to |
| disable the [OverrideBuiltins] behavior on a given script world. |
| |
| The [OverrideBuiltins] behavior [1] is legacy behavior that is needed for Web compatibility |
| but allowing the client to disable this behavior in a given world makes development easier |
| and running injected script on uncontrolled content a lot more reliable. |
| |
| [1] https://heycam.github.io/webidl/#OverrideBuiltins |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm: |
| (-[WKWebProcessPlugInScriptWorld disableOverrideBuiltinsBehavior]): |
| * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp: |
| (WKBundleScriptWorldDisableOverrideBuiltinsBehavior): |
| * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.h: |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp: |
| (WebKit::InjectedBundleScriptWorld::disableOverrideBuiltinsBehavior): |
| * WebProcess/InjectedBundle/InjectedBundleScriptWorld.h: |
| |
| 2018-02-08 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Remove WebProcessPool::platformInitialize stub. |
| https://bugs.webkit.org/show_bug.cgi?id=182621 |
| |
| Reviewed by Alex Christensen. |
| |
| The #if here could be simplified to PLATFORM(WIN), but Windows too will need a proper implementation |
| as part of WK2 support, so this stub shouldn't need to exist at all. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::platformInitialize): Deleted. |
| |
| 2018-02-08 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| TestController should not exercise cocoa-specific resource load statistics APIs |
| https://bugs.webkit.org/show_bug.cgi?id=182355 |
| |
| Reviewed by Alex Christensen. |
| |
| Remove the Cocoa testing SPI, since it's redundant with the C API. Also, add a couple |
| missing cookie partitioning callbacks to the C API. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetLastSeen:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetIsPrevalentResource:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsPrevalentResource:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsSubFrameUnder:topFrameHost:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsRegisteredAsRedirectingTo:hostRedirectedTo:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetHadUserInteraction:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetHasHadNonRecentUserInteractionForHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsHadUserInteraction:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetIsGrandfathered:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsIsGrandfathered:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetSubframeUnderTopFrameOrigin:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetSubresourceUnderTopFrameOrigin:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetSubresourceUniqueRedirectTo:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetTimeToLiveUserInteraction:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetTimeToLiveCookiePartitionFree:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetMinimumTimeBetweenDataRecordsRemoval:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetGrandfatheringTime:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetMaxStatisticsEntries:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetPruneEntriesDownTo:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsProcessStatisticsAndDataRecords]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSubmitTelemetry]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetNotifyPagesWhenDataRecordsWereScanned:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldClassifyResourcesBeforeDataRecordsRemoval:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetNotifyPagesWhenTelemetryWasCaptured:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:completionHandler:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-02-08 Don Olmstead <don.olmstead@sony.com> |
| |
| Remove JavaScriptCore/ForwardingHeaders directory |
| https://bugs.webkit.org/show_bug.cgi?id=182594 |
| |
| Reviewed by Mark Lam. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-02-08 Tim Horton <timothy_horton@apple.com> |
| |
| Make WebKit public headers modules-safe |
| https://bugs.webkit.org/show_bug.cgi?id=182611 |
| <rdar://problem/37160164> |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/API/Cocoa/WKPreviewElementInfo.h: |
| * UIProcess/API/Cocoa/WKSnapshotConfiguration.h: |
| Import headers without which these WebKit headers can not be used alone. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Make WKWindowFeaturesPrivate a private header like it was supposed to be. |
| |
| 2018-02-08 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r228262. |
| |
| This broke an internal build alongside r228261. |
| |
| Reverted changeset: |
| |
| "WebDriver: addCookie command should prepend a dot to domain |
| if missing" |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| https://trac.webkit.org/changeset/228262 |
| |
| 2018-02-08 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK] WaylandCompositor misusing eglGetProcAddress |
| https://bugs.webkit.org/show_bug.cgi?id=182490 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Check that the appropriate extensions are available before calling eglGetProcAddress, as even |
| getting a non null value from it, the functionality can be disabled at runtime. |
| |
| * UIProcess/gtk/WaylandCompositor.cpp: |
| (WebKit::WaylandCompositor::initializeEGL): |
| |
| 2018-02-08 Frederic Wang <fwang@igalia.com> |
| |
| Add scrolling node types to distinguish main frames and subframes. |
| https://bugs.webkit.org/show_bug.cgi?id=182533 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: Replace the case of |
| FrameScrollingNode with MainFrameScrollingNode and SubframeScrollingNode. |
| (WebKit::encodeNodeAndDescendants): |
| (WebKit::RemoteScrollingCoordinatorTransaction::decode): |
| (WebKit::dump): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: Ditto. |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: Ditto and pass the node type to the |
| constructor of the frame scrolling node. |
| (WebKit::RemoteScrollingTree::createScrollingTreeNode): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: Replace the case of |
| FrameScrollingNode with MainFrameScrollingNode and SubframeScrollingNode. |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: In order to |
| determine whether the node is a main frame or subframe, use the node type instead of checking |
| whether the node as a parent. |
| (WebKit::ScrollingTreeScrollingNodeDelegateIOS::updateChildNodesAfterScroll): |
| |
| 2018-02-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: addCookie command should prepend a dot to domain if missing |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| <rdar://problem/37116398> |
| |
| Reviewed by Michael Catanzaro. |
| |
| RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| |
| 2018-01-13 Darin Adler <darin@apple.com> |
| |
| Event improvements |
| https://bugs.webkit.org/show_bug.cgi?id=179591 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp: |
| (webkit_dom_wheel_event_init_wheel_event): Updated to call initWebKitWheelEvent. |
| |
| * WebProcess/Plugins/PluginView.cpp: Removed include of ScriptValue.h. |
| |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| (WebKit::WebEditorClient::executePendingEditorCommands): |
| Updated for name change from keyEvent to underlyingPlatformEvent. |
| (WebKit::WebEditorClient::handleInputMethodKeydown): Ditto. |
| * WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp: |
| (WebKit::WebEditorClient::handleKeyboardEvent): Ditto. |
| (WebKit::WebEditorClient::handleInputMethodKeydown): Ditto. |
| |
| * WebProcess/WebPage/WebPage.cpp: Removed include of ScriptValue.h. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleEditingKeyboardEvent): Updated for name change from |
| keyEvent to underlyingPlatformEvent. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::executeKeypressCommandsInternal): Ditto. |
| (WebKit::WebPage::handleEditingKeyboardEvent): Ditto. |
| |
| 2018-02-07 Antti Koivisto <antti@apple.com> and Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION(r227758): Webpage fails to load due to crash in com.apple.WebKit: WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse + 267 |
| https://bugs.webkit.org/show_bug.cgi?id=182532 |
| <rdar://problem/36414017> |
| |
| Reviewed by Chris Dumez. |
| |
| No test case, don't know how to make one. The repro involves multipart HTTP streaming and details are hazy. |
| We were calling a function that was WTFMoved away just a few lines above. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-02-07 Tim Horton <timothy_horton@apple.com> |
| |
| Evernote device management web view sometimes displays at the wrong scale |
| https://bugs.webkit.org/show_bug.cgi?id=182590 |
| <rdar://problem/36633687> |
| |
| Reviewed by Simon Fraser. |
| |
| Evernote implements the WKWebView's scroll view's delegate method |
| viewForZoomingInScrollView: and returns nil. This results in |
| WKScrollView's zoomScale always returning 1, no matter what the |
| WKContentView's actual scale is. This will result in us never updating |
| the WKContentView's scale to 1. When loading a page that has a few |
| scale changes during load but ends up at scale 1, we get stuck at whatever |
| intermediate scale immediately preceded settling on 1. |
| |
| Fix this by not forwarding viewForZoomingInScrollView: to the external |
| WKScrollView delegate; we are in charge of the contents of the scroll |
| view (including which view scrollView's zoomScale should track), and |
| overriding viewForZoomingInScrollView: is only ever going to lead to |
| a broken WebKit. |
| |
| * UIProcess/ios/WKScrollView.mm: |
| (shouldForwardScrollViewDelegateMethodToExternalDelegate): |
| (-[WKScrollViewDelegateForwarder forwardInvocation:]): |
| (-[WKScrollViewDelegateForwarder forwardingTargetForSelector:]): |
| |
| 2018-02-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Delegate scrolling from the content view to input view controllers |
| https://bugs.webkit.org/show_bug.cgi?id=182534 |
| <rdar://problem/37276625> |
| |
| Reviewed by Tim Horton. |
| |
| Override -_wheelChangedWithEvent: on the content view, and give extra zoomed input view controllers a chance to |
| handle the event. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _wheelChangedWithEvent:]): |
| |
| 2018-02-07 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement multiple and single select menus |
| https://bugs.webkit.org/show_bug.cgi?id=182525 |
| <rdar://problem/35143016> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for presenting picker views when focusing single or multiple select elements. See changes below for |
| additional detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingKeyboard]): |
| |
| Move logic for presenting view controllers when focusing elements out of _startAssistingKeyboard, and into |
| _startAssistingNode:(...). This is because _startAssistingKeyboard is only invoked for certain types of focused |
| element types; importantly, this set excludes select elements. Putting the call to present the focused view |
| controller there also didn't make much since, considering that these new view controllers are not tied to |
| keyboards in any way. |
| |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| |
| Dismiss any select menu that is being presented. |
| |
| (-[WKContentView presentSelectMenuViewController:]): |
| (-[WKContentView dismissSelectMenuViewController:]): |
| |
| Introduce idempotent helpers for presenting and dismissing the select menu view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| (-[WKContentView selectMenu:didSelectItemAtIndex:]): |
| |
| For single select menus. Called when the user selects a row. |
| |
| (-[WKContentView didCancelSelectionInSelectMenu:]): |
| (-[WKContentView numberOfItemsInSelectMenu:]): |
| (-[WKContentView selectMenu:displayTextForItemAtIndex:]): |
| |
| Indicates the text value to show at a given index. |
| |
| (-[WKContentView selectMenu:didCheckItemAtIndex:checked:]): |
| |
| For multiple select menus, invoked when an item is checked. The `checked` parameter indicates whether or not the |
| item is now checked. |
| |
| (-[WKContentView selectMenuSupportsMultipleSelection:]): |
| |
| Indicates whether this select menu is single-item-only, or allows multiple items to be selected (checked). |
| |
| (-[WKContentView selectMenu:hasCheckedOptionAtIndex:]): |
| |
| For multiple select menus. Determines whether an option at the given index is checked. |
| |
| (-[WKContentView startingIndexForSelectMenu:]): |
| |
| Determines the index to instantly scroll to when presenting the select menu. |
| |
| * UIProcess/ios/forms/WKSelectMenuViewController.h: Added. |
| * UIProcess/ios/forms/WKSelectMenuViewController.mm: Added. |
| |
| Add new harness files for WKSelectMenuViewController's header and implementation (see WebKitAdditions). |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-07 Brent Fulgham <bfulgham@apple.com> |
| |
| Improve NetworkResourceLoader logging to capture redirect cases |
| https://bugs.webkit.org/show_bug.cgi?id=182573 |
| <rdar://problem/37316714> |
| |
| Reviewed by Chris Dumez. |
| |
| Add logging for cookie partitioning or blocking during redirects. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| |
| 2018-02-07 John Wilander <wilander@apple.com> |
| |
| Restrict Referer to just the origin for third parties in private mode and third parties ITP blocks cookies for in regular mode |
| https://bugs.webkit.org/show_bug.cgi?id=182559 |
| <rdar://problem/36990337> |
| |
| Reviewed by Andy Estes. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::isThirdPartyRequest): |
| New convenience function. Checks whether the resource shares |
| partition with the first party. |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Now strips the referrer to just the origin for: |
| 1. All third party requests in private mode. |
| 2. Third party requests to domains that ITP blocks cookies for. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| Now strips the referrer in redirects to just the origin for: |
| 1. All third party requests in private mode. |
| 2. Third party requests to domains that ITP blocks cookies for. |
| |
| 2018-02-07 Daniel Bates <dabates@apple.com> |
| |
| Log error when authentication challenge is blocked due to an insecure request |
| https://bugs.webkit.org/show_bug.cgi?id=182358 |
| |
| Reviewed by Andy Estes. |
| |
| Have network process notify the web process when it blocks an authentication challenge. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::completeAuthenticationChallenge): |
| * NetworkProcess/NetworkLoadClient.h: |
| (WebKit::NetworkLoadClient::didBlockAuthenticationChallenge): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didBlockAuthenticationChallenge): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didBlockAuthenticationChallenge): |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| |
| 2018-02-07 Chris Dumez <cdumez@apple.com> |
| |
| IndexedDB in service workers is using a memory backed store |
| https://bugs.webkit.org/show_bug.cgi?id=182574 |
| <rdar://problem/37316205> |
| |
| Reviewed by Youenn Fablet. |
| |
| Make sure we pass a proper WebDatabaseProvider to the ServiceWorkerProcess via |
| PageConfiguration. Otherwise, we end up using the default EmptyDatabaseProvider |
| which uses an InProcessIDBServer and a memory-backed store for IndexedDB. |
| |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::start): |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-02-07 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Typo in a translatable string |
| https://bugs.webkit.org/show_bug.cgi?id=182570 |
| |
| Unreviewed. Fix a typo. |
| |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkit_website_data_manager_class_init): |
| |
| 2018-02-06 Don Olmstead <don.olmstead@sony.com> |
| |
| Remove WebCore/ForwardingHeaders directory |
| https://bugs.webkit.org/show_bug.cgi?id=182347 |
| |
| Reviewed by Keith Miller. |
| |
| * Platform/mac/StringUtilities.mm: |
| * Shared/Cocoa/WebKit2InitializeCocoa.mm: |
| * Shared/WebKit2Initialize.cpp: |
| * Shared/linux/WebMemorySamplerLinux.cpp: |
| * Shared/mac/WebMemorySampler.mac.mm: |
| * UIProcess/WebProcessPool.cpp: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h: |
| * WebProcess/InjectedBundle/API/glib/WebKitConsoleMessagePrivate.h: |
| * WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| * WebProcess/Plugins/PluginProcessConnection.cpp: |
| * WebProcess/Plugins/PluginView.cpp: |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| |
| 2018-02-06 Chris Dumez <cdumez@apple.com> |
| |
| Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html is a flaky failure on macOS and iOS |
| https://bugs.webkit.org/show_bug.cgi?id=181392 |
| <rdar://problem/36384136> |
| |
| Reviewed by Youenn Fablet. |
| |
| All tasks from the StorageProcess to the WebContent process to update registrations |
| and service workers state are posted to the runloop. However, the fetch callbacks |
| do not do so. This means that fetch results might come in out of order with regards |
| to the registration / service worker state updates. The test was flaky because an |
| intercepted load would sometimes finish before the task to update the service worker |
| state to "activated" was processed by the runloop. We address the issue by having |
| the ServiceWorkerClientFetch callbacks schedule tasks to the runloop too. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| (WebKit::ServiceWorkerClientFetch::didReceiveData): |
| (WebKit::ServiceWorkerClientFetch::didFinish): |
| (WebKit::ServiceWorkerClientFetch::didFail): |
| (WebKit::ServiceWorkerClientFetch::didNotHandle): |
| |
| 2018-02-06 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Correct sandbox violation triggered by Chase.com |
| https://bugs.webkit.org/show_bug.cgi?id=182519 |
| <rdar://problem/37121757> |
| |
| Reviewed by Eric Carlson. |
| |
| Hitting a sandbox violation when attempting to check status of IOAV*En/Decode support. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-02-06 Jeff Miller <jeffm@apple.com> |
| |
| Add WKNavigationDelegate SPI to tell the client when an insecure plug-in is blocked |
| https://bugs.webkit.org/show_bug.cgi?id=182540 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::didBlockInsecurePluginVersion): |
| Changed to take a dictionary reference. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::didBlockInsecurePluginVersion): |
| Added. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| Changed didBlockInsecurePluginVersion() to take a dictionary reference. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| Added -_webView:didBlockInsecurePluginVersionWithInfo:. |
| |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| Initialize webViewDidBlockInsecurePluginVersionWithInfo. |
| |
| (WebKit::NavigationState::NavigationClient::didBlockInsecurePluginVersion): |
| Added. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didBlockInsecurePluginVersion): |
| Remove check for PLATFORM(COCOA) (we don't check for this in didFailToInitializePlugin() where we |
| also use createPluginInformationDictionary()) and ENABLE(NETSCAPE_PLUGIN_API) (we're already inside |
| an #if ENABLE(NETSCAPE_PLUGIN_API block) and use auto for pluginInformation. Attempt to use the |
| navigation client before the loader client. |
| |
| 2018-02-06 Youenn Fablet <youenn@apple.com> |
| |
| HasServiceWorkerRegistration bit should be sent when creating a new page |
| https://bugs.webkit.org/show_bug.cgi?id=182410 |
| |
| Reviewed by Chris Dumez. |
| |
| Move the bit computation at page creation time. |
| This allows computing the bit based on the web site data store and not only on the pool configuration. |
| WebPage uses that bit to activate service worker registration matching for the whole process. |
| |
| In case there is a service worker process proxy created, the bit is set to true by default. |
| |
| Bit is computed by checking for database file presence. |
| This information is cached in a map for efficiency reasons and cleared when a service worker process proxy is created. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::initializeWebPage): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-02-06 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix format specifiers added in r228116 |
| https://bugs.webkit.org/show_bug.cgi?id=182456 |
| <rdar://problem/37181006> |
| |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::remove): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::retrieveRecords): |
| (WebKit::CacheStorageEngineConnection::deleteMatchingRecords): |
| (WebKit::CacheStorageEngineConnection::putRecords): |
| (WebKit::CacheStorageEngineConnection::reference): |
| (WebKit::CacheStorageEngineConnection::dereference): |
| |
| 2018-02-05 Chris Dumez <cdumez@apple.com> |
| |
| Avoid unnecessarily constructing RunLoops for GC AutomaticThreads in Connection::sendMessage() after r228001 |
| https://bugs.webkit.org/show_bug.cgi?id=182494 |
| <rdar://problem/37147632> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Somebody fixed a GC crash in r228001 by allowing RunLoop::current() to be called from a |
| GC thread. However, this is still unnecessarily inefficient. Calling RunLoop::current() |
| will construct RunLoops for background GC threads (WTF::AutomaticThreads). This patches |
| updates the IPC code to call isMainThread() instead of RunLoop::isMain() in |
| Connection::sendMessage(). This should mean the same thing since this code runs in |
| WebKit2 and should be more efficient as it ends up simply calling pthread_main_np(), |
| without constructing a RunLoop. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendMessage): |
| |
| 2018-02-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assertion in inlineVideoFrame |
| https://bugs.webkit.org/show_bug.cgi?id=182513 |
| <rdar://problem/37159363> |
| |
| Reviewed by Zalan Bujtas. |
| |
| Fixed the bug. Don't try to update the layout when there is no live render tree or active DOM objects |
| had been stopped: i.e. during a document destruction. |
| |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::inlineVideoFrame): |
| |
| 2018-02-05 Yousuke Kimoto <yousuke.kimoto@sony.com> |
| |
| [WinCairo] Refine WebKitLegacy and WebKit build for wincairo |
| https://bugs.webkit.org/show_bug.cgi?id=182478 |
| |
| Reviewed by Alex Christensen. |
| |
| Fixed a typo of forwarding header path for InjectedBundle and copying header |
| method, which should use FLATTENED. |
| |
| * PlatformWin.cmake: Fix a typo of a forwarding header path for InjectedBundle and use FLATTENED. |
| |
| 2018-02-05 Youenn Fablet <youenn@apple.com> |
| |
| WebsiteDataStore::resolveDirectoriesIfNecessary() should not overwrite its resolved serviceWorkerRegistrationDirectory if already set |
| https://bugs.webkit.org/show_bug.cgi?id=182514 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary): |
| |
| 2018-02-05 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Storage process is using the wrong sandbox profile filename |
| https://bugs.webkit.org/show_bug.cgi?id=182500 |
| <rdar://problem/37232614> |
| |
| Reviewed by David Kilzer. |
| |
| The iOS entitlements file was still referencing the old Databases sandbox profile, even though the |
| process has been renamed 'Storage'. |
| |
| * Configurations/Databases-iOS.entitlements: |
| |
| 2018-02-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add DoNotProcessIncomingMessagesWhenWaitingForSyncReply to GetPlugins and RootViewToScreen |
| https://bugs.webkit.org/show_bug.cgi?id=182458 |
| |
| Reviewed by Chris Dumez. |
| |
| Added DoNotProcessIncomingMessagesWhenWaitingForSyncReply to GetPlugins and RootViewToScreen |
| which are found to get sent from WebContent process while ScriptDisallowedScope is present |
| by a work-in-progress patch on webkit.org/b/182449. |
| |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::rootViewToScreen): |
| |
| 2018-02-05 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r227964 and r228087. |
| https://bugs.webkit.org/show_bug.cgi?id=182508 |
| |
| These introduced an API test failure with |
| URLTest.HostIsIPAddress alongside commit r228086 (Requested by |
| mlewis13 on #webkit). |
| |
| Reverted changesets: |
| |
| "[SOUP] Ensure domain is valid when converting a WebCore |
| Cookie to Soup" |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| https://trac.webkit.org/changeset/227964 |
| |
| "WebDriver: addCookie command should prepend a dot to domain |
| if missing" |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| https://trac.webkit.org/changeset/228087 |
| |
| 2018-02-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement number pad UI when editing `tel` and `number` inputs |
| https://bugs.webkit.org/show_bug.cgi?id=182472 |
| <rdar://problem/35143057> |
| |
| Reviewed by Tim Horton. |
| |
| Allows the user to edit numeric input types using a number pad. See below comments for more detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _stopAssistingNode]): |
| |
| Dismiss the number pad, if it is present. |
| |
| (-[WKContentView dismissNumberPadViewController:]): |
| (-[WKContentView presentNumberPadViewController:]): |
| |
| Add new helpers for showing and hiding the number pad view controller. |
| |
| (-[WKContentView presentViewControllerForAssistedNode:]): |
| (-[WKContentView textInputController:didRequestDismissalWithAction:]): |
| |
| Dismiss the number pad, if it is present. |
| |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): |
| (-[WKContentView shouldPresentTextInputViewController:]): Deleted. |
| |
| Remove -shouldPresentTextInputViewController and replace it with -presentViewControllerForAssistedNode:, which |
| presents the appropriate view controller given "assisted" node information. |
| |
| * UIProcess/ios/forms/WKNumberPadView.h: Added. |
| * UIProcess/ios/forms/WKNumberPadView.mm: Added. |
| * UIProcess/ios/forms/WKNumberPadViewController.h: Added. |
| * UIProcess/ios/forms/WKNumberPadViewController.mm: Added. |
| |
| Add "WebKitAdditions harness" files for the new number pad view and view controller classes. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-02-05 Youenn Fablet <youenn@apple.com> |
| |
| Add logging to CacheStorageEngineConnection |
| https://bugs.webkit.org/show_bug.cgi?id=182456 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::remove): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::retrieveRecords): |
| (WebKit::CacheStorageEngineConnection::deleteMatchingRecords): |
| (WebKit::CacheStorageEngineConnection::putRecords): |
| (WebKit::CacheStorageEngineConnection::reference): |
| (WebKit::CacheStorageEngineConnection::dereference): |
| * Platform/Logging.h: |
| |
| 2018-02-05 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r222795): Nike app "Refused to set unsafe header" when adding and viewing cart |
| https://bugs.webkit.org/show_bug.cgi?id=182491 |
| <rdar://problem/36533447> |
| |
| Reviewed by Brent Fulgham. |
| |
| Exempt Nike from the XHR header restrictions in r222795. |
| |
| Following r222795 only Dashboard widgets are allowed to set arbitrary XHR headers. |
| However Nike also depends on such functionality. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (shouldAllowSettingAnyXHRHeaderFromFileURLs): |
| |
| 2018-02-02 Brent Fulgham <bfulgham@apple.com> |
| |
| Improve NetworkResourceLoader logging so it can be used for 'setCookiesFromDOM' |
| https://bugs.webkit.org/show_bug.cgi?id=182455 |
| <rdar://problem/36626601> |
| |
| Reviewed by Chris Dumez. |
| |
| Refactor "logCookieInformation" so that it can be used for resource loads and DOM cookie |
| manipulation. Place the generally useful logic in a static method that can be invoked |
| from other places in the NetworkProcess. |
| |
| Call the new refactored method from NetworkConnectionToWebProcess::setCookiesFromDOM so |
| we can perform logging there as well. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): Call the new logging method |
| (when enabled). |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::shouldLogCookieInformation): Changed to static method. |
| (WebKit::escapeForJSON): Made a static function so it could be shared between multiple |
| methods. |
| (WebKit::NetworkResourceLoader::logCookieInformation const): Refactor into two methods. |
| (WebKit::NetworkResourceLoader::logCookieInformation): Ditto. |
| (WebKit::NetworkResourceLoader::shouldLogCookieInformation const): Deleted. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): Switch to user-enabled release logging |
| to track partitioning and blocking behavior. |
| |
| 2018-02-05 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Add testRunner.getAllStorageAccessEntries() to make testing easier and more explicit |
| https://bugs.webkit.org/show_bug.cgi?id=181601 |
| <rdar://problem/36475837> |
| |
| Reviewed by Alex Christensen. |
| |
| http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html |
| was found to be flaky. With the testRunner.hasStorageAccessEntry() getter |
| it's possible to check access even if a frame doesn't respond timely to |
| postMessage after detach and attach. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::getAllStorageAccessEntries): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _getAllStorageAccessEntries:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getAllStorageAccessEntries): |
| (WebKit::NetworkProcessProxy::allStorageAccessEntriesResult): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::getAllStorageAccessEntries): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-02-05 Daniel Bates <dabates@apple.com> |
| |
| Disallow evaluating JavaScript from NPP_Destroy() in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=181889 |
| <rdar://problem/36674701> |
| |
| Reviewed by Brent Fulgham. |
| |
| Make the behavior of WebKit match the behavior of WebKitLegacy on Mac. |
| |
| * Shared/Plugins/NPObjectMessageReceiver.cpp: |
| (WebKit::NPObjectMessageReceiver::hasMethod): |
| (WebKit::NPObjectMessageReceiver::invoke): |
| (WebKit::NPObjectMessageReceiver::invokeDefault): |
| (WebKit::NPObjectMessageReceiver::hasProperty): |
| (WebKit::NPObjectMessageReceiver::getProperty): |
| (WebKit::NPObjectMessageReceiver::setProperty): |
| (WebKit::NPObjectMessageReceiver::removeProperty): |
| (WebKit::NPObjectMessageReceiver::enumerate): |
| (WebKit::NPObjectMessageReceiver::construct): |
| Bail out if the plugin is executing NPP_Destroy(). |
| |
| * WebProcess/Plugins/Plugin.cpp: |
| (WebKit::Plugin::destroyPlugin): |
| * WebProcess/Plugins/Plugin.h: |
| (WebKit::Plugin::isBeingDestroyed const): |
| Move bookkeeping of whether the plugin is being destroyed from PluginView |
| to here. This makes it straightforward for NPObjectMessageReceiver to query |
| this information. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::~PluginView): |
| (WebKit::PluginView::destroyPluginAndReset): |
| (WebKit::PluginView::recreateAndInitialize): |
| (WebKit::PluginView::protectPluginFromDestruction): |
| (WebKit::PluginView::unprotectPluginFromDestruction): |
| Move bookkeeping of whether the plugin is being destroyed from here |
| to Plugin. |
| |
| * WebProcess/Plugins/PluginView.h: |
| (WebKit::PluginView::isBeingDestroyed const): Turn around and ask the plugin if it |
| is being destroyed, if we have one. |
| |
| 2018-02-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: addCookie command should prepend a dot to domain if missing |
| https://bugs.webkit.org/show_bug.cgi?id=182328 |
| <rdar://problem/37116398> |
| |
| Reviewed by Michael Catanzaro. |
| |
| RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::addSingleCookie): |
| |
| 2018-02-03 Tim Horton <timothy_horton@apple.com> |
| |
| UI process sometimes crashes under -[WKContentView _lookupForWebView:] |
| https://bugs.webkit.org/show_bug.cgi?id=182460 |
| <rdar://problem/33260602> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _lookupForWebView:]): |
| If you have a range selection, but no rects for the selection, retrieving |
| the 0th element of selectionRects will crash the UI process. To fix, in |
| this case, use the rect for the starting caret instead. |
| |
| It doesn't seem like the presentationRect is actually currently used for |
| the Lookup service, so the only impact is that we shouldn't crash anymore. |
| |
| 2018-02-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Remove remaining dead !USE(NETWORK_SESSION) code |
| https://bugs.webkit.org/show_bug.cgi?id=182451 |
| |
| Reviewed by Alex Christensen. |
| |
| DownloadCurl.cpp and AuthenticationManagerSoup.cpp have been dead code since NETWORK_SESSION |
| became mandatory. |
| |
| * NetworkProcess/Downloads/curl/DownloadCurl.cpp: Removed. |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * PlatformWin.cmake: |
| * Shared/Authentication/soup/AuthenticationManagerSoup.cpp: Removed. |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| CacheStorage should check for origin file presence when computing the origin of a folder |
| https://bugs.webkit.org/show_bug.cgi?id=182454 |
| |
| Reviewed by Chris Dumez. |
| |
| In case caches is opened for an origin but no cache is added, we do not have a caches name file but we do have an origin filename. |
| We should be checking the origin filename anyway since we will be reading it afterwards. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::retrieveOriginFromDirectory): |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default |
| https://bugs.webkit.org/show_bug.cgi?id=182403 |
| <rdar://problem/36673358> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::legacyWebsiteDataStoreConfiguration): Setting serviceWorkerRegistrationDirectory for legacy stores. |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| Clearing all service worker registrations should wait for importing service worker registration to finish |
| https://bugs.webkit.org/show_bug.cgi?id=182407 |
| |
| Reviewed by Chris Dumez. |
| |
| Updating API to take a completion handler. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-02-02 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win] MSVC doesn't seem to like "friend class NeverDestroyed<Foo>" |
| https://bugs.webkit.org/show_bug.cgi?id=182081 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| The template friend class, which belongs to a different namespace, |
| can't access private member if its friend declaration is specified |
| without the namespace and with class keyword. |
| |
| Replaced "friend class NeverDestroyed<Foo>" with "friend NeverDestroyed<Foo>". |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/capture/NetworkCaptureManager.h: |
| * PluginProcess/PluginProcess.h: |
| * Shared/CallbackID.h: |
| * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: |
| * StorageProcess/StorageProcess.h: |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/gtk/PluginInfoCache.h: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/gtk/AcceleratedBackingStoreX11.cpp: |
| * UIProcess/gtk/HardwareAccelerationManager.h: |
| * UIProcess/gtk/WaylandCompositor.h: |
| * UIProcess/linux/MemoryPressureMonitor.h: |
| * UIProcess/mac/ServicesController.h: |
| * WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h: |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| * WebProcess/WebCoreSupport/WebPasteboardOverrides.h: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-02-02 Youenn Fablet <youenn@apple.com> |
| |
| Configure serviceWorkerRegistrationDirectory on the web site data store and move it to a Caches subfolder as a default |
| https://bugs.webkit.org/show_bug.cgi?id=182403 |
| |
| Reviewed by Alex Christensen. |
| |
| WebsiteDataStore is the place to set configuration information such as service worker registration path. |
| This patch updates WebKit code accordingly. |
| By default, the service worker registration path is in a Caches subfolder, similarly to cache API path. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::createWithLegacyOptions): |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): |
| (API::ProcessPoolConfiguration::ProcessPoolConfiguration): |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationCopyServiceWorkerDatabaseDirectory): Deleted. |
| (WKContextConfigurationSetServiceWorkerDatabaseDirectory): Deleted. |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _serviceWorkerRegistrationDirectory]): |
| (-[WKWebsiteDataStore _setServiceWorkerRegistrationDirectory:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const): |
| (WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory): |
| * UIProcess/gtk/WebProcessPoolGtk.cpp: |
| * UIProcess/gtk/WebProcessPoolWPE.cpp: |
| |
| 2018-02-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra Zoom Mode] Implement support for indirect mainframe scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=182421 |
| <rdar://problem/35142694> |
| |
| Reviewed by Tim Horton. |
| |
| Makes a few small adjustments to WKScrollView to improve mainframe scrolling, and disable the pinch gesture for |
| zooming. See below for more details. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| |
| Remove a now-unneeded WebKitAdditions import. |
| |
| * UIProcess/ios/WKScrollView.mm: |
| (-[WKScrollView initWithFrame:]): |
| |
| Add imports for -Before and -After versions of WKScrollViewAdditions. |
| |
| (-[WKScrollView addGestureRecognizer:]): |
| |
| Override -addGestureRecognizer here to prevent touches on the pinch gesture recognizer from being recognized. |
| I chose this approach instead of just disabling the gesture in -initWithFrame: because (1) the pinch gesture |
| recognizer is lazily created when setting minimum or maximum zoom scales, rather than immediately in |
| -initWithFrame:, and (2) even if we set the -enabled to NO, UIKit later resets it to YES in other codepaths. |
| |
| 2018-02-01 Tim Horton <timothy_horton@apple.com> |
| |
| WebKit fails to build (_startAssistingNode has conflicting parameters) |
| https://bugs.webkit.org/show_bug.cgi?id=182417 |
| <rdar://problem/36965318> |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| Use Big BOOL like in the implementation. |
| |
| 2018-02-01 Brent Fulgham <bfulgham@apple.com> |
| |
| Improve NetworkResourceLogger to report blocked (versus non-partitioned) cookies |
| https://bugs.webkit.org/show_bug.cgi?id=182408 |
| <rdar://problem/36918028> |
| |
| Reviewed by Chris Dumez. |
| |
| Update the logging method to report blocked origins, rather than logging them as non-partitioned |
| loads that have no cookies or other content. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| |
| 2018-02-01 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r222824): UI process crashes in WebKit::WebBackForwardList::backItem const |
| <https://webkit.org/b/182409> |
| <rdar://problem/35495094> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::goToItem): Fix typo so the for loop |
| actually checks each value in m_entries. |
| |
| 2018-02-01 Youenn Fablet <youenn@apple.com> |
| |
| Delay service worker process creation until actually needed by SWServer |
| https://bugs.webkit.org/show_bug.cgi?id=182301 |
| |
| Reviewed by Chris Dumez. |
| |
| Do not create a service worker process at creation of the first SWServerConnection. |
| Wait for a WebProcess message that needs it: |
| - postMessage message |
| - fetchEvent message |
| - job scheduling. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::establishSWServerConnection): |
| |
| 2018-02-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Extra zoom mode] Implement basic support for interacting with text form controls |
| https://bugs.webkit.org/show_bug.cgi?id=182401 |
| <rdar://problem/35143035> |
| |
| Reviewed by Tim Horton. |
| |
| Add UI support for interacting with and editing text form controls when extra zoom mode is enabled. See below |
| for more details. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration encodeWithCoder:]): |
| (-[WKWebViewConfiguration initWithCoder:]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _textInteractionGesturesEnabled]): |
| (-[WKWebViewConfiguration _setTextInteractionGesturesEnabled:]): |
| (-[WKWebViewConfiguration _longPressActionsEnabled]): |
| (-[WKWebViewConfiguration _setLongPressActionsEnabled:]): |
| |
| Introduce two new web view configuration flags: `textInteractionGesturesEnabled` and `longPressActionsEnabled`. |
| The former determines whether text interaction gestures (i.e. text selection, moving the caret, showing UI for |
| IME, etc.) are enabled. The latter determines whether or not long press actions (i.e. touch callout, share |
| sheet, etc.) are enabled. These are disabled by default only in extra zoom mode. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setTextAsync): |
| |
| Add a way to set the text value of a currently edited text form control. This will either set the text value of |
| an input, a. la. autofill, or overwrite the contents of a contenteditable area by selecting everything and |
| inserting the given text. |
| |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::focusNextAssistedNode): |
| |
| Add a default argument for the completion callback. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView _actionForLongPressFromPositionInformation:]): |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView insertionPointColor]): |
| |
| Respect the web view configuration flags above by bailing early from text interaction and long press action |
| sheet methods. |
| |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| Add a flag indicating whether we are in the process of changing focus from one node to another. We use this to |
| decide whether or not we want to present the text input view controller right away, or just reload the focused |
| form control overlay. When we stop "assisting" a node, we also keep the focused form control overlay up if we're |
| only changing focus to another form control. |
| |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView presentFocusedFormControlViewController:]): |
| (-[WKContentView dismissFocusedFormControlViewController:]): |
| (-[WKContentView shouldPresentTextInputViewController:]): |
| (-[WKContentView presentTextInputViewController:]): |
| (-[WKContentView dismissTextInputViewController:]): |
| |
| Introduce helpers for managing presentation of the focused form control overlay and text input view controller. |
| All -present and -dismiss helpers here are idempotent. These view controllers are presented from the content |
| view's view controller for fullscreen presentation. |
| |
| (-[WKContentView textInputController:didCommitText:]): |
| (-[WKContentView textInputController:didRequestDismissalWithAction:]): |
| (-[WKContentView focusedFormControlControllerDidSubmit:]): |
| (-[WKContentView focusedFormControlControllerDidCancel:]): |
| (-[WKContentView focusedFormControlControllerDidBeginEditing:]): |
| (-[WKContentView highlightedRectForFocusedFormControlController:inCoordinateSpace:]): |
| (-[WKContentView actionNameForFocusedFormControlController:]): |
| (-[WKContentView focusedFormControlControllerDidRequestNextNode:]): |
| (-[WKContentView focusedFormControlControllerDidRequestPreviousNode:]): |
| (-[WKContentView hasNextNodeForFocusedFormControlController:]): |
| (-[WKContentView hasPreviousNodeForFocusedFormControlController:]): |
| |
| Implement delegate methods for the focused form control and text input view controllers. This mainly involves |
| straightforward plumbing of pieces of AssistedNodeInformation on the content view. |
| |
| (-[WKContentView pointIsInAssistedNode:]): Deleted. |
| |
| Remove a method that was still implemented only for binary compatibility with iOS 10. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setTextAsync): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-02-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Shift + mouse scroll should scroll horizontally |
| https://bugs.webkit.org/show_bug.cgi?id=181629 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Swap scroll direction when Shift is pressed for consistency with GtkScrolledWindow. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseScrollEvent): |
| |
| 2018-02-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r227893): fast/events/touch/touch-stale-node-crash.html and other tests crash |
| https://bugs.webkit.org/show_bug.cgi?id=182350 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| Ensure events synthesized from touch gestures have a valid window, screen and device. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| * UIProcess/gtk/GestureController.h: Add virtual destructor to GestureControllerclient. |
| |
| 2018-01-31 Simon Fraser <simon.fraser@apple.com> |
| |
| Use different debug red colors for different contexts |
| https://bugs.webkit.org/show_bug.cgi?id=182362 |
| |
| Reviewed by Tim Horton. |
| |
| Pure red is used elsehwere in the system as a debug color indicator, so use different |
| shades of red for WebKit in the two places where we paint a reddish wash in debug builds, |
| so they are identifiable. |
| |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::drawInContext): |
| |
| 2018-01-31 Don Olmstead <don.olmstead@sony.com> |
| |
| [CMake] Make JavaScriptCore headers copies |
| https://bugs.webkit.org/show_bug.cgi?id=182303 |
| |
| Reviewed by Alex Christensen. |
| |
| * CMakeLists.txt: |
| * Scripts/generate-forwarding-headers.pl: |
| |
| 2018-01-31 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r227942. |
| |
| r227875 should not have been rolled out. |
| |
| Reverted changeset: |
| |
| "Unreviewed, rolling out r227875." |
| https://bugs.webkit.org/show_bug.cgi?id=182357 |
| https://trac.webkit.org/changeset/227942 |
| |
| 2018-01-31 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, rolling out r227875. |
| https://bugs.webkit.org/show_bug.cgi?id=182357 |
| |
| Missing cross-platform TestController implementation |
| |
| Reverted changeset: |
| |
| "Add callbacks to testRunner.statisticsSetShouldPartitionCookiesForHost() and testRunner.statisticsUpdateCookiePartitioning()" |
| https://bugs.webkit.org/show_bug.cgi?id=181958 |
| https://trac.webkit.org/changeset/227875 |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning:]): Deleted. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:completionHandler:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| (WebKit::WebResourceLoadStatisticsStore::clearInMemory): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::clearPartitioningStateForDomains): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-01-31 Brent Fulgham <bfulgham@apple.com> |
| |
| Follow-up to r227939. |
| https://bugs.webkit.org/show_bug.cgi?id=182354 |
| <rdar://problem/37046844> |
| |
| Make sure the correct sandbox is used on iOS as well. |
| |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::initializeSandbox): |
| |
| 2018-01-31 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r220094): com.apple.WebKit.Storage lost its sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=182354 |
| <rdar://problem/37046844> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| The Database process was renamed to Storage, but it's sandbox was not updated. |
| |
| * Configurations/WebKit.xcconfig: Update for sandbox rename. |
| * DerivedSources.make: Ditto. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb: Removed. |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Storage.sb: Copied from Resources/SandboxProfiles/ios/com.apple.WebKit.Databases.sb. |
| * StorageProcess/mac/com.apple.WebKit.Databases.sb.in: Removed. |
| * StorageProcess/mac/com.apple.WebKit.Storage.sb.in: Copied from StorageProcess/mac/com.apple.WebKit.Databases.sb.in. |
| * WebKit.xcodeproj/project.pbxproj: Update for sandbox rename. |
| |
| 2018-01-31 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r227223): http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html, http/tests/resourceLoadStatistics/grandfathering.html timing out on GTK, WPE |
| https://bugs.webkit.org/show_bug.cgi?id=182222 |
| |
| Reviewed by Alex Christensen. |
| |
| Add callbacks to notify when resource load statistics deletion is complete. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-01-31 Tim Horton <timothy_horton@apple.com> |
| |
| Occasional null deref under WebPageProxy::updateBackingStoreDiscardableState() |
| https://bugs.webkit.org/show_bug.cgi?id=182349 |
| <rdar://problem/27822258> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateBackingStoreDiscardableState): |
| m_drawingArea can be null during process launch and relaunch. |
| |
| Cocoa ports don't use the result of setBackingStoreIsDiscardable(), |
| but they do run this code to keep it up to date. |
| |
| 2018-01-31 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Move gir and typelib generation into ENABLE_INTROSPECTION conditional |
| https://bugs.webkit.org/show_bug.cgi?id=182308 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * PlatformGTK.cmake: |
| |
| 2018-01-31 Youenn Fablet <youenn@apple.com> |
| |
| Remove StorageToWebProcessConnection::removeSWServerConnection |
| https://bugs.webkit.org/show_bug.cgi?id=182305 |
| |
| Reviewed by Chris Dumez. |
| |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::removeSWServerConnection): Deleted. |
| * StorageProcess/StorageToWebProcessConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.messages.in: |
| |
| 2018-01-31 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r227544): [GTK] contextMenuEvent is NULL on CONTEXT_MENU call |
| https://bugs.webkit.org/show_bug.cgi?id=182224 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Move the gestures handling to WebKitWebViewBase. This patch adds GestureControllerClient class, created and |
| implemented by WebKitWebViewBase and used by GestureController instead of the WebPageProxy. This way we ensure |
| events are handled consistently. |
| |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithTouchEvent): Cast the GdkEvent since GestureController no longer works wirth |
| const GdkEvents. |
| (WebKit::PageClientImpl::zoom): Use webkit_web_view_set_zoom_level() in case of WebKitWebView or |
| WebPageProxy::setPageZoomFactor() otherwise. |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (ClickCounter::currentClickCountForGdkButtonEvent): Receive a GdkEvent to avoid casts. |
| (webkitWebViewBaseHandleMouseEvent): Helper function to handle mouse events. |
| (webkitWebViewBaseButtonPressEvent): Use webkitWebViewBaseHandleMouseEvent. |
| (webkitWebViewBaseButtonReleaseEvent): Ditto. |
| (webkitWebViewBaseHandleWheelEvent): Helper function to handle wheel events. |
| (webkitWebViewBaseScrollEvent): Use webkitWebViewBaseHandleWheelEvent. |
| (webkitWebViewBaseMotionNotifyEvent): Use webkitWebViewBaseHandleMouseEvent. |
| (webkitWebViewBaseCrossingNotifyEvent): Ditto. |
| (webkitWebViewBaseGestureController): Pass the widget and client to GestureController. |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::GestureController): Receives a widget and client now. |
| (WebKit::GestureController::handleEvent): Remove the const. |
| (WebKit::GestureController::Gesture::Gesture): Initialize client. |
| (WebKit::GestureController::Gesture::handleEvent): Remove the const. |
| (WebKit::GestureController::DragGesture::startDrag): Use the client instead of WebPageProxy. |
| (WebKit::GestureController::DragGesture::handleDrag): Ditto. |
| (WebKit::GestureController::DragGesture::handleTap): Ditto. |
| (WebKit::GestureController::DragGesture::begin): Ignore the const returned by gtk_gesture_get_last_event(). |
| (WebKit::GestureController::DragGesture::update): Ditto. |
| (WebKit::GestureController::DragGesture::end): Ditto. |
| (WebKit::GestureController::DragGesture::DragGesture): Receives a widget and client now. |
| (WebKit::GestureController::SwipeGesture::startMomentumScroll): Use the client instead of WebPageProxy. |
| (WebKit::GestureController::SwipeGesture::swipe): Ignore the const returned by gtk_gesture_get_last_event(). |
| (WebKit::GestureController::SwipeGesture::SwipeGesture): Receives a widget and client now. |
| (WebKit::GestureController::ZoomGesture::begin): Start the zoom. |
| (WebKit::GestureController::ZoomGesture::startZoom): Use the client instead of WebPageProxy. |
| (WebKit::GestureController::ZoomGesture::handleZoom): Ditto. |
| (WebKit::GestureController::ZoomGesture::ZoomGesture): Receives a widget and client now. |
| (WebKit::GestureController::LongPressGesture::longPressed): Use the client instead of WebKitWebView. |
| (WebKit::GestureController::LongPressGesture::pressed): Ignore the const returned by gtk_gesture_get_last_event(). |
| (WebKit::GestureController::LongPressGesture::LongPressGesture): Receives a widget and client now. |
| (WebKit::GestureController::Gesture::simulateMouseClick): Deleted. |
| (WebKit::createScrollEvent): Deleted. |
| * UIProcess/gtk/GestureController.h: |
| |
| 2018-01-31 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Web Automation: cookies returned by automation should have expiry time in seconds |
| https://bugs.webkit.org/show_bug.cgi?id=182293 |
| |
| Reviewed by Brian Burg. |
| |
| When creating a WebCore::Cookie from a WebDriver object we convert the given expiry time to milliseconds, but |
| when creating a WebDriver object from a WebCore::Cookie we are keeping the milliseconds. We should convert to |
| seconds for consistency, so that the WebDriver always handles seconds. |
| |
| Fixes: imported/w3c/webdriver/tests/cookies/get_named_cookie.py::test_get_named_cookie |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::buildObjectForCookie): Convert expiry to seconds. |
| |
| 2018-01-31 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Unreviewed iOS build fix. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-01-30 John Wilander <wilander@apple.com> |
| |
| Add callbacks to testRunner.statisticsSetShouldPartitionCookiesForHost() and testRunner.statisticsUpdateCookiePartitioning() |
| https://bugs.webkit.org/show_bug.cgi?id=181958 |
| https://bugs.webkit.org/show_bug.cgi?id=182072 |
| <rdar://problem/36801804> |
| <rdar://problem/36845795> |
| |
| Reviewed by Brent Fulgham. |
| |
| Because of the asynchronous nature of XPC and cookies, |
| we need callbacks in these TestRunner functions so that |
| the layout tests can wait for state changes to finish |
| before checking test conditions. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): |
| (WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder): |
| (WebKit::WebResourceLoadStatisticsStore::clearInMemory): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning): |
| (WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::clearPartitioningStateForDomains): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-01-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(r227550): Resource timing API is disabled on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=182318 |
| |
| Reviewed by Chris Dumez. |
| |
| Resource timing API should be enabled by default all versions of macOS we support now. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-01-30 Tim Horton <timothy_horton@apple.com> |
| |
| WKWebView layout is sometimes wrong after rotation on iPhone X |
| https://bugs.webkit.org/show_bug.cgi?id=182304 |
| <rdar://problem/34158671> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _computedContentInset]): |
| (-[WKWebView _scrollViewSystemContentInset]): |
| (activeMinimumLayoutSize): |
| It turns out that it is not always safe to look at the safe area insets of |
| children from inside layoutSubviews, even after the call to super. |
| |
| Instead, make use of the fact that WKScrollView and WKWebView have identical |
| coordinate spaces, and map WKWebView's safe area insets into the WKScrollView. |
| It's safe to use the scroll view's affected-edges and contentScrollInset, |
| because those aren't updated at the same outside-of-layout time that |
| safe area insets are. |
| |
| We could alternatively move all calls to activeMinimumLayoutSize outside |
| of layoutSubviews, but that seems like a larger and riskier change. |
| |
| All attempts to write a test have failed; this depends heavily on use of |
| autolayout and the mechanism by which the system updates system-owned |
| safe area insets during device rotation. |
| |
| 2018-01-30 Don Olmstead <don.olmstead@sony.com> |
| |
| JSExports.h should be included as <JavaScriptCore/JSExportMacros.h> |
| https://bugs.webkit.org/show_bug.cgi?id=182312 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * config.h: |
| |
| 2018-01-30 Brent Fulgham <bfulgham@apple.com> |
| |
| Add telemetry to track storage access API adoption |
| https://bugs.webkit.org/show_bug.cgi?id=182197 |
| <rdar://problem/35803309> |
| |
| Reviewed by Chris Dumez. |
| |
| Part 2: Add telemetry for the Storage Access API case |
| |
| This change increments a counter when an origin is loaded in a first part context because |
| it was granted Storage Access API permissions. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): Add logging to indicate |
| loads that happened with the Storage Access API enabled. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): Increment counter for |
| loads using the new API. |
| |
| 2018-01-30 Megan Gardner <megan_gardner@apple.com> |
| |
| Make preserve and restore focus more likely to be symmetrical |
| https://bugs.webkit.org/show_bug.cgi?id=182264 |
| <rdar://problem/36948473> |
| |
| Reviewed by Tim Horton. |
| |
| Keep a stack of if we actually increment the focusState, so that |
| changes to the web content do not result in asymmetric decrements to the focus state. |
| To work around problems associated with <rdar://problem/37000122>. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| 2018-01-30 Brent Fulgham <bfulgham@apple.com> |
| |
| Add telemetry to track storage access API adoption |
| https://bugs.webkit.org/show_bug.cgi?id=182197 |
| <rdar://problem/35803309> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch also handled aggregating the counts in the UIProcess, which has access to |
| the right data. |
| |
| The original patch assumed the WebContent process kept track of user interaction. This is |
| only tracked in the UIProcess, so we can get rid of some of the logging code adding in |
| r227755. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): Rollout of r227755 changes not |
| needed to track the statistics. |
| (WebKit::WebProcessCreationParameters::decode): Ditto. |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): Ditto. |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::wasAccessedAsFirstPartyDueToUserInteraction): Moved from |
| the WebContent process, which does not keep track of user interaction. |
| (WebKit::WebResourceLoadStatisticsStore::mergeStatistics): Aggregate counts while processing |
| the statistics. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-30 Chris Dumez <cdumez@apple.com> |
| |
| Make sure we never create a WebSWClientConnection with an invalid sessionID |
| https://bugs.webkit.org/show_bug.cgi?id=182276 |
| <rdar://problem/36582633> |
| |
| Reviewed by Alex Christensen. |
| |
| Make sure we never create a WebSWClientConnection with an invalid sessionID as this |
| could corrupt our hash tables. |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::swServerForSession): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession): |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession): |
| |
| 2018-01-30 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [WinCairo] Fix forwarding header conflict of WebKit on WinCairo |
| https://bugs.webkit.org/show_bug.cgi?id=177202 |
| |
| Reviewed by Alex Christensen. |
| |
| * PlatformWin.cmake: |
| |
| 2018-01-29 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: evaluateJavaScriptFunction should return null when return value is undefined |
| https://bugs.webkit.org/show_bug.cgi?id=180350 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| undefined can't be converted to JSON string, in which case JSON.stringify() returns undefined and we handle that |
| case to return an empty string. We currently handle this case for execute script commands, but not in all other |
| cases where we use evaluateJavaScriptFunction. It would be simpler if evaluateJavaScriptFunction returned null, |
| because in that case we wouldn't need to handle it as a special case. |
| |
| 15.2 Executing Script |
| https://w3c.github.io/webdriver/webdriver-spec.html#dfn-json-clone |
| |
| Fixes: imported/w3c/webdriver/tests/state/get_element_property.py::test_element_non_existent |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.js: |
| (let.AutomationSessionProxy.prototype._jsonStringify): Return "null" instead of "" when undefined is given. |
| |
| 2018-01-29 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Release assert in updateLayout while waiting for sync reply to WebPageProxy::HasInsecureContent |
| https://bugs.webkit.org/show_bug.cgi?id=182273 |
| |
| Reviewed by Chris Dumez. |
| |
| The assertion was caused by unrelated sync IPCs being processed while WebContent process is waiting for |
| the reply to WebPageProxy::HasInsecureContent. Since this IPC can be used while creating CachedFrame, |
| it's not safe to execute arbitrary code. |
| |
| Fixed the bug by using DoNotProcessIncomingMessagesWhenWaitingForSyncReply added in r227566. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame): |
| |
| 2018-01-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add a build step to copy resources from WebKitAdditions as bundle resources in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=182268 |
| <rdar://problem/37003784> |
| |
| Reviewed by Tim Horton and Dan Bernstein. |
| |
| Adds a "Copy Additional Resources" phase when building WebKit. This phase copies resources from |
| usr/local/include/WebKitAdditions/WebKit/AdditionalResources in the build directory into the |
| unlocalized resources directory. If the AdditionalResources directory does not exist in the build |
| directory, we fall back to searching the SDK. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-29 Youenn Fablet <youenn@apple.com> |
| |
| ServiceWorkerClientFetch should not consider responses without Location headers as redirection responses |
| https://bugs.webkit.org/show_bug.cgi?id=182134 |
| |
| Reviewed by Chris Dumez. |
| |
| As per fetch spec, a response with a redirection status code but no Location header should not be considered as a redirection. |
| This is also consistent with SubresourceLoader::didReceiveResponse. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-29 Youenn Fablet <youenn@apple.com> |
| |
| Cache API should make sure to resolve caches.open promises in the same order as called |
| https://bugs.webkit.org/show_bug.cgi?id=182193 |
| <rdar://problem/36930363> |
| |
| Reviewed by Chris Dumez. |
| |
| Covered by added test. |
| Whenever opening/removing a cache requires writing to disk, wait to finish the task |
| until any disk writing task is done. |
| Applying this strategy when clearing data so that we also clear data that is pending to be written. |
| For removing cache, we now return whether a cache was actually deleted by returning zero as removed cache identifier. |
| WebCore uses that information to return true/false as promise resolution value. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::retrieveCaches): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clear): |
| (WebKit::CacheStorage::Caches::open): |
| (WebKit::CacheStorage::Caches::remove): |
| (WebKit::CacheStorage::Caches::writeCachesToDisk): |
| (WebKit::CacheStorage::Caches::cacheInfos): |
| (WebKit::CacheStorage::Caches::cacheInfos const): Deleted. |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| (WebKit::CacheStorage::Caches::createWeakPtr): |
| |
| 2018-01-29 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up API after bugs 178240 and 176474 |
| https://bugs.webkit.org/show_bug.cgi?id=182259 |
| |
| Reviewed by Dan Bernstein. |
| |
| NS_OPTIONS should be NSUInteger, not NSInteger. This is how all other NS_OPTIONS in WebKit are, |
| and it's necessary if we get really big numbers as options. Changing them won't cause binary |
| incompatibility unless someone does signed integer comparison with currently invalid values. |
| |
| Added availability macros I forgot to add earlier. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-01-29 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Add a compile-time feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=182211 |
| <rdar://problem/36936365> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-01-29 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Introduce debug mode as experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=182199 |
| <rdar://problem/36930364> |
| |
| Reviewed by Alex Christensen. |
| |
| The only changes to default behavior are: |
| - Increased resolution on timestamps which is needed to be able to set shorter |
| timeouts in debug mode. |
| - Only update partitioning and blocking table when needed. This is an optimization |
| which pays off in less XPC with shorter timeouts. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::resourceLoadStatisticsDebugMode const): |
| (API::WebsiteDataStore::setResourceLoadStatisticsDebugMode): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsDebugMode): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsDebugMode]): |
| (-[WKWebsiteDataStore _setResourceLoadStatisticsDebugMode:]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode): |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::resourceLoadStatisticsDebugMode const): |
| (WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-01-29 Andy Estes <aestes@apple.com> |
| |
| [iOS] Restrict synthetic clicks to the origin that handled the underlying touch event |
| https://bugs.webkit.org/show_bug.cgi?id=182252 |
| <rdar://problem/21555881> |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::dispatchTouchEvent): |
| (WebKit::WebPage::updatePotentialTapSecurityOrigin): |
| |
| Record the target frame origin of touch events that are potential taps, are |
| TouchStart events, are targeted in frames that have touch event listeners, and are not |
| handled by those listeners. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::potentialTapAtPosition): |
| (WebKit::WebPage::commitPotentialTap): |
| (WebKit::WebPage::cancelPotentialTapInFrame): |
| |
| Passed the target frame origin to Frame::nodeRespondingToClickEvents() then cleared it. |
| |
| 2018-01-29 Alex Christensen <achristensen@webkit.org> |
| |
| Make policy checks more robust against null pointer dereferencing |
| https://bugs.webkit.org/show_bug.cgi?id=182263 |
| <rdar://problem/34895714> |
| |
| Reviewed by Tim Horton. |
| |
| We're still dereferencing null. Check everything. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-01-29 Brent Fulgham <bfulgham@apple.com> |
| |
| Add telemetry to track storage access API adoption |
| https://bugs.webkit.org/show_bug.cgi?id=182197 |
| <rdar://problem/35803309> |
| |
| Reviewed by Chris Dumez. |
| |
| Part 1: Add telemetry for the user interaction case |
| |
| This patch adds telemetry to track how frequently third-party cookies are |
| used in a first party context due to user interaction. This will help |
| understand cases where the new Storage Access API can help, and to help |
| us understand if we have considered relevant use cases in its design. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/WebResourceLoadStatisticsTelemetry.cpp: |
| (WebKit::sortedPrevalentResourceTelemetry): Update for new telemetry. |
| (WebKit::submitTopList): Update for new data types. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): Handle the partitioning time |
| passed from the UIProcess. |
| |
| 2018-01-29 Alex Christensen <achristensen@webkit.org> |
| |
| Fix crash when during canAuthenticateAgainstProtectionSpace |
| https://bugs.webkit.org/show_bug.cgi?id=182260 |
| <rdar://problem/34911343> |
| |
| Reviewed by Chris Dumez. |
| |
| If we have a valid network load with no challenge completion handler and we are |
| telling it to continue with the challenge handling, something has gone wrong. |
| Maybe we've just recovered from a crashed network process. If this happens, do nothing. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): |
| |
| 2018-01-29 Zach Li <zacharyli323@gmail.com> |
| |
| Warning in 32-bit WebKit build when trying to link to SafariSafeBrowsing |
| https://bugs.webkit.org/show_bug.cgi?id=182251 |
| rdar://problem/36964995 |
| |
| Reviewed by Alex Christensen. |
| |
| * Configurations/WebKit.xcconfig: |
| Only link against SafariSafeBrowsing framework in 64-bit architecture. |
| |
| * Platform/spi/Cocoa/SafeBrowsingSPI.h: |
| Guard the Safe Browsing code with WK_API_ENABLED. |
| |
| 2018-01-29 Chris Dumez <cdumez@apple.com> |
| |
| Make sure we do not re-enter Webcore during StorageToWebProcessConnection::EstablishSWServerConnection Sync IPC |
| https://bugs.webkit.org/show_bug.cgi?id=182256 |
| <rdar://problem/36689233> |
| |
| Reviewed by Simon Fraser. |
| |
| Make sure we do not re-enter Webcore during StorageToWebProcessConnection::EstablishSWServerConnection Sync IPC as |
| this can lead to crashes such as the one in <rdar://problem/36689233>. |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| |
| 2018-01-29 Jan-Michael Brummer <jan.brummer@tabos.org> |
| |
| [GTK] Zooming gesture incorrectly uses scale instead of zoom |
| https://bugs.webkit.org/show_bug.cgi?id=182174 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Switch zooming gesture to use zoom instead of scale function. |
| |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::ZoomGesture::begin): |
| (WebKit::GestureController::ZoomGesture::handleZoom): |
| |
| 2018-01-29 Brady Eidson <beidson@apple.com> |
| |
| Make it possible for apps that use both WK1 and WK2 to use MessagePorts. |
| https://bugs.webkit.org/show_bug.cgi?id=182229 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/UIMessagePortChannelProvider.cpp: |
| (WebKit::UIMessagePortChannelProvider::UIMessagePortChannelProvider): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): The UI process does not need to override the |
| global singleton provider. It can remain the default ProviderImpl to allow WK1 views |
| to work fine, too. |
| |
| 2018-01-29 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: ASSERTION FAILED: !m_loadTimer.isActive() |
| https://bugs.webkit.org/show_bug.cgi?id=182237 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| We should stop the load timer when we dispatch the pending navigation callbacks due to an alert open. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| |
| 2018-01-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Add GraphicsContextImplCairo::createFactory() helpers |
| https://bugs.webkit.org/show_bug.cgi?id=182238 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Use GraphicsContextImplCairo::createFactory() helpers throughout the |
| Cairo-specific GraphicsContext constructors in the WebKit layer. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| (WebKit::BackingStore::incorporateUpdate): |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| (WebKit::WebPrintOperationGtk::renderPage): |
| |
| 2018-01-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Remove the GraphicsContext(cairo_t*) constructor |
| https://bugs.webkit.org/show_bug.cgi?id=182234 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Call sites of the GraphicsContext(cairo_t*) constructor are adjusted to |
| instead provide a factory function that returns a fresh |
| GraphicsContextImplCairo object, passing that cairo_t object to its |
| constructor. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::createGraphicsContext): |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| (WebKit::BackingStore::incorporateUpdate): |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| (WebKit::WebPrintOperationGtk::renderPage): |
| |
| 2018-01-26 Megan Gardner <megan_gardner@apple.com> |
| |
| Don't retain focus for input peripheral views |
| https://bugs.webkit.org/show_bug.cgi?id=182204 |
| |
| Reviewed by Tim Horton. |
| |
| Retaining focus on input peripheral views makes it so they cannot dismiss themselves with |
| the current architecture. This should probably be fixed in UIKit, as there is no reason for |
| focus to be retained on these views anyways, as they don't have keyboard input, but this |
| guards against over-aggressive retain requests. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| 2018-01-26 Chris Dumez <cdumez@apple.com> |
| |
| Make sure service worker code does not launch a StorageProcess unnecessarily |
| https://bugs.webkit.org/show_bug.cgi?id=182192 |
| <rdar://problem/36927427> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When calling WebProcess::existingWebToStorageProcessConnection(), make sure we do not |
| force the creation of a WebProcess connection to the StorageProcess. If there is |
| no WebProcess, just return false right away. |
| |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| * WebProcess/WebProcess.h: |
| |
| 2018-01-26 Alex Christensen <achristensen@webkit.org> |
| |
| Allow cellular access for default-created ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=182179 |
| <rdar://problem/36572023> |
| |
| Reviewed by Andy Estes. |
| |
| This makes it so when we recover from a NetworkProcess crash (see r227590) on iOS, we will |
| be able to continue browsing using cell data. |
| |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setPrivateBrowsingEnabled): |
| |
| 2018-01-26 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up more networking code |
| https://bugs.webkit.org/show_bug.cgi?id=182161 |
| |
| Reviewed by Anders Carlsson. |
| |
| Two cleanups: |
| 1. The WebProcess doesn't need to initialize NetworkSessions. |
| 2. WebFrameNetworkingContext doesn't need to have the NetworkingContext functions to support ResourceHandles in WebKit any more. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/RemoteNetworkingContext.h: |
| (): Deleted. |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| * NetworkProcess/curl/RemoteNetworkingContextCurl.cpp: |
| (WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted. |
| (WebKit::RemoteNetworkingContext::isValid const): Deleted. |
| (WebKit::RemoteNetworkingContext::storageSession const): Deleted. |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted. |
| (WebKit::RemoteNetworkingContext::isValid const): Deleted. |
| (WebKit::RemoteNetworkingContext::localFileContentSniffingEnabled const): Deleted. |
| (WebKit::RemoteNetworkingContext::storageSession const): Deleted. |
| (WebKit::RemoteNetworkingContext::sourceApplicationAuditData const): Deleted. |
| (WebKit::RemoteNetworkingContext::sourceApplicationIdentifier const): Deleted. |
| (WebKit::RemoteNetworkingContext::blockedError const): Deleted. |
| * NetworkProcess/soup/RemoteNetworkingContextSoup.cpp: |
| (WebKit::RemoteNetworkingContext::~RemoteNetworkingContext): Deleted. |
| (WebKit::RemoteNetworkingContext::isValid const): Deleted. |
| (WebKit::RemoteNetworkingContext::storageSession const): Deleted. |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::clearCachedCredentials): |
| |
| 2018-01-26 Jan-Michael Brummer <jan.brummer@tabos.org> |
| |
| [GTK] Support using long-tap gesture to open context menu |
| https://bugs.webkit.org/show_bug.cgi?id=140747 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add long press gesture which simulates a secondary mouse press to open context menu. |
| |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::GestureController): |
| (WebKit::GestureController::handleEvent): |
| (WebKit::GestureController::isProcessingGestures const): |
| (WebKit::GestureController::Gesture::simulateMousePress): |
| (WebKit::GestureController::DragGesture::handleTap): |
| (WebKit::GestureController::LongPressGesture::longPressed): |
| (WebKit::GestureController::LongPressGesture::pressed): |
| (WebKit::GestureController::LongPressGesture::LongPressGesture): |
| * UIProcess/gtk/GestureController.h: |
| (WebKit::GestureController::reset): |
| |
| 2018-01-26 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. REGRESSION(r227647): window.open() is broken in GTK and WPE after r227647. |
| |
| In r227647, API::UIClient::createNewPage() was changed to use CompletionHandler instead of Function. All |
| implementations were updated expect the GLib one, and we didn't notice it because the method doesn't have the |
| final/override mark. |
| |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| (UIClient::createNewPage): |
| |
| 2018-01-25 Sergio Villar Senin <svillar@igalia.com> |
| |
| [WebVR] Make WebVR available by default for developer builds |
| https://bugs.webkit.org/show_bug.cgi?id=182101 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Moved WebVR setting to the experimental features section and make it |
| available by default for developer builds for GTK and WPE. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-01-25 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION (r221899): Web Content process hangs when webpage tries to make a new window if the WKWebView doesn’t have a UI delegate |
| https://bugs.webkit.org/show_bug.cgi?id=182152 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Call the completion handler of the default API::UIClient::createNewPage. |
| |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::createNewPage): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageUIClient): |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::createNewPage): |
| |
| 2018-01-25 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] [WK2] Introduce new views and view controllers to support extra-zoomed text form controls |
| https://bugs.webkit.org/show_bug.cgi?id=182000 |
| <rdar://problem/35143035> |
| |
| Reviewed by Tim Horton. |
| |
| Add new files to support text form control editing while extra-zoomed. |
| |
| * UIProcess/ios/forms/WKFocusedFormControlView.h: Added. |
| * UIProcess/ios/forms/WKFocusedFormControlView.mm: Added. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.h: Added. |
| * UIProcess/ios/forms/WKFocusedFormControlViewController.mm: Added. |
| * UIProcess/ios/forms/WKTextFormControlViewController.h: Added. |
| * UIProcess/ios/forms/WKTextFormControlViewController.mm: Added. |
| * UIProcess/ios/forms/WKTextInputViewController.h: Added. |
| * UIProcess/ios/forms/WKTextInputViewController.mm: Added. |
| * UIProcess/ios/forms/WKTextSuggestionButton.h: Added. |
| * UIProcess/ios/forms/WKTextSuggestionButton.mm: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-25 Chris Dumez <cdumez@apple.com> |
| |
| Clients.get(id) should only returns clients in the service worker's origin |
| https://bugs.webkit.org/show_bug.cgi?id=182149 |
| <rdar://problem/36882310> |
| |
| Reviewed by Youenn Fablet. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| |
| 2018-01-25 Youenn Fablet <youenn@apple.com> |
| |
| WebPluginInfoProvider should handle null host queries |
| https://bugs.webkit.org/show_bug.cgi?id=182112 |
| |
| Reviewed by Chris Dumez. |
| |
| Return early if host is null. |
| |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| |
| 2018-01-25 Simon Fraser <simon.fraser@apple.com> |
| |
| ASSERT(CGSizeEqualToSize(m_resizeScrollOffset, CGSizeZero)) in WebViewImpl::setFrameAndScrollBy() |
| https://bugs.webkit.org/show_bug.cgi?id=182082 |
| rdar://problem/13971838 |
| |
| Reviewed by Tim Horton. |
| |
| Safari could call WebViewImpl::setFrameAndScrollBy() multiple times with different scroll offsets, |
| triggering this assertion. |
| |
| Rename to m_resizeScrollOffset to m_scrollOffsetAdjustment to reduce confusion with actual scroll offsets. |
| This parameter has no effect on macOS, but is used by the -[WKWebView setFrame:andScrollBy:] so at some point |
| needs to be hooked up to allow synchronous view resize and scroll adjustment (e.g. for the Find bar animation). |
| |
| Remove DrawingAreaProxy's m_layerPosition which was unused, and remove the parameters from the UpdateGeometry message. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _frameOrBoundsChanged]): |
| (-[WKWebView _beginAnimatedResizeWithUpdates:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::setFrameAndScrollBy): |
| (WebKit::WebViewImpl::setDrawingAreaSize): |
| * UIProcess/DrawingAreaProxy.cpp: |
| (WebKit::DrawingAreaProxy::setSize): |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::sendUpdateGeometry): |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::sendUpdateGeometry): |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::updateGeometry): |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updateGeometry): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updateGeometry): |
| |
| 2018-01-25 Keith Rollin <krollin@apple.com> |
| |
| Add logging to facilitate binding of WebContent and Network processes to UI process |
| https://bugs.webkit.org/show_bug.cgi?id=182066 |
| |
| Reviewed by Brent Fulgham. |
| |
| When examining sysdiagnose logs and tracing events from one process to |
| another, it would be helpful to know which WebKit processes were |
| related to each other. When Safari, Mail, Messages, etc. are all |
| running at the same time, it may otherwise be difficult to know if a |
| particular Network process, for example was associated with Safari or |
| some other application. Add some logging to the creation of WebContent |
| and Network processes to identify their "presenting process" (parent |
| application). |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * Platform/Logging.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-25 Youenn Fablet <youenn@apple.com> |
| |
| DocumentLoader should interrupt ongoing load when getting a redirection from network that matches a service worker |
| https://bugs.webkit.org/show_bug.cgi?id=182115 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-25 Alex Christensen <achristensen@webkit.org> |
| |
| Fix crash when preconnecting while closing private browsing |
| https://bugs.webkit.org/show_bug.cgi?id=182114 |
| <rdar://problem/35637284> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * NetworkProcess/PreconnectTask.cpp: |
| There is a race condition when destroying a session while a page is initiating a preconnect. |
| If this happens, fail gracefully instead of trying to preconnect with a null session. |
| |
| 2018-01-25 Dan Bernstein <mitz@apple.com> |
| |
| [Mac] Enable library validation for Networking & Storage XPC services |
| https://bugs.webkit.org/show_bug.cgi?id=173424 |
| <rdar://problem/32386565> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Configurations/BaseXPCService.xcconfig: Moved the definitions of |
| WK_LIBRARY_VALIDATION_ENABLED and WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS from |
| WebContentService.xcconfig to here and made them Mac-only at this level. |
| * Configurations/NetworkService.xcconfig: Also set OTHER_CODE_SIGN_FLAGS to |
| WK_LIBRARY_VALIDATION_CODE_SIGN_FLAGS. |
| * Configurations/StorageService.xcconfig: Ditto. |
| * Configurations/WebContentService.xcconfig: Moved definitions from here to |
| BaseXPCService.xcconfig. |
| |
| 2018-01-25 David Hyatt <hyatt@apple.com> |
| |
| Enable lines clamp support for Apple Mail by default |
| https://bugs.webkit.org/show_bug.cgi?id=182113 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::appleMailLinesClampEnabled): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| |
| 2018-01-25 Sergio Villar Senin <svillar@igalia.com> |
| |
| [WebVR][GTK][WPE] Remove the WebVR public API added in r227518 |
| https://bugs.webkit.org/show_bug.cgi?id=182102 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| |
| 2018-01-25 Sergio Villar Senin <svillar@igalia.com> |
| |
| [WebVR][GTK][WPE] Remove the WebVR public API added in r227518 |
| https://bugs.webkit.org/show_bug.cgi?id=182102 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| This new public API was not supposed to be included in the patch |
| that added OpenVR to the tree and to the build. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsSetProperty): |
| (webKitSettingsGetProperty): |
| (webkit_settings_class_init): |
| (webkit_settings_get_enable_webvr): Deleted. |
| (webkit_settings_set_enable_webvr): Deleted. |
| * UIProcess/API/gtk/WebKitSettings.h: |
| * UIProcess/API/wpe/WebKitSettings.h: |
| |
| 2018-01-25 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [GTK] Fix build with touch events disabled |
| |
| Unreviewed build fix. |
| |
| Explicitly include gtk.h in files that were indirectly getting it |
| only when touch events were enabled. |
| * UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp: |
| * UIProcess/gtk/WaylandCompositor.h: |
| |
| 2018-01-25 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| WebDriver: test imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py crashes in debug |
| https://bugs.webkit.org/show_bug.cgi?id=182096 |
| |
| Reviewed by Carlos Alberto Lopez Perez. |
| |
| It's an assert in HashTable iterators checkValidity(). The problem is that we get the keys to iterate the values |
| and the map is modified inside the loop. We need to use copyToVector to copy the keys. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout): |
| (WebKit::WebAutomationSession::respondToPendingFrameNavigationCallbacksWithTimeout): |
| (WebKit::WebAutomationSession::willShowJavaScriptDialog): |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Gracefully recover from NetworkProcess crashes in private browsing |
| https://bugs.webkit.org/show_bug.cgi?id=182073 |
| <rdar://problem/36572023> |
| |
| Reviewed by Geoff Garen. |
| |
| If we're using a non-persistent WKWebsiteDataStore and the NetworkProcess crashes and we try to do a load, |
| then the WebProcess restarts the NetworkProcess but doesn't recreate the ephemeral session in the NetworkProcess. |
| When this happens, we've already lost the browsing state in memory in the NetworkProcess, but we don't want to hang. |
| If this is the problem, then just recreate the ephemeral session and continue loading. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| (WebKit::WebsiteDataStoreParameters::legacyPrivateSessionParameters): Deleted. |
| * Shared/WebsiteDataStoreParameters.h: |
| (WebKit::WebsiteDataStoreParameters::legacyPrivateSessionParameters): |
| |
| 2018-01-24 Dan Bernstein <mitz@apple.com> |
| |
| Enable library validation on the Web Content service |
| Part 1 of https://bugs.webkit.org/show_bug.cgi?id=172365 |
| <rdar://problem/26470661> |
| |
| Reviewed by David Kilzer. |
| |
| This makes the Web Content process signed with the Library Validation flag in production |
| builds. Because doing so would prevent engineering builds of Apple apps that use an |
| injected bundle from working, this also adds a Development version of the service, which |
| does not enforce Library Validation. The UI process chooses to use the Development service |
| iff it would need to load an injected bundle that is not part of the OS. |
| |
| * Configurations/DebugRelease.xcconfig: Disable Library Validation in engineering builds. |
| |
| * Configurations/WebContentService.Development.xcconfig: Added. Like the normal service, but |
| only installed when WebKit is installed in the OS, and uses a Development variant. |
| |
| * Configurations/WebContentService.xcconfig: For the Development variant, append |
| ".Development" to the product name, which is also the service identifier. Enable Library |
| Validation for the Normal variant of the service when WK_LIBRARY_VALIDATION_ENABLED allows |
| it. |
| |
| * UIProcess/Launcher/ProcessLauncher.h: Add nonValidInjectedCodeAllowed member to |
| LaunchOptions, false by default. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::serviceName): Use the Development variant if nonValidInjectedCodeAllowed is true. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getLaunchOptions): Initialize nonValidInjectedCodeAllowed using |
| the new shouldAllowNonValidInjectedCode(). |
| (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Generic implementation |
| that returns false. |
| * UIProcess/WebProcessProxy.h: Declared shouldAllowNonValidInjectedCode. |
| * UIProcess/mac/WebProcessProxyMac.mm: |
| (WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Return true if this is |
| system WebKit with a non-system injected bundle. |
| |
| * WebKit.xcodeproj/project.pbxproj: Added new service target. |
| |
| 2018-01-24 Chris Dumez <cdumez@apple.com> |
| |
| Add a IPC::SendSyncOption indicating we should not process incoming IPC while waiting for the sync reply |
| https://bugs.webkit.org/show_bug.cgi?id=182021 |
| <rdar://problem/21629943> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add a new DoNotProcessIncomingMessagesWhenWaitingForSyncReply SendSyncOption that the caller can |
| set when calling sendSync(). This indicates that the sendSync() should return only when we receive |
| the response to our sync IPC message, and that we should not process ANY incoming IPC in the meantime. |
| |
| This patch also starts using this flag in 3 places where we know processing incoming IPC is an issue |
| and is causing crashes. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendSyncMessage): |
| When DoNotProcessIncomingMessagesWhenWaitingForSyncReply SendSyncOption is set, make sure |
| we set the ShouldDispatchMessageWhenWaitingForSyncReply flag on the encoder. If we did not set this |
| flag then it could cause deadlocks when the destination process is also waiting on a synchronous |
| IPC from us. Normally, this flag already gets set for sync messages because sendSyncMessage() calls |
| sendMessage() with DispatchMessageEvenWhenWaitingForSyncReply SyncOption. However, sendMessage() |
| ignores the DispatchMessageEvenWhenWaitingForSyncReply flag if the |
| m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage flag is set on the |
| connection. Note that this flag is set on the connection from the WebProcess to the UIProcess at |
| the moment, which is why we saw deadlocks on the previous iteration of this patch. |
| |
| (IPC::Connection::waitForSyncReply): |
| If DoNotProcessIncomingMessagesWhenWaitingForSyncReply SendSyncOption is set, do not |
| process incoming IPC messages while waiting for our sync IPC reply. |
| |
| * Platform/IPC/Connection.h: |
| Add new SendSyncOption. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| Testing infrastructure. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| Use new flag. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| Testing infrastructure. |
| |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): |
| Use new flag. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::syncIPCMessageWhileWaitingForSyncReplyForTesting): |
| Testing infrastructure. |
| |
| (WebKit::WebProcess::ensureNetworkProcessConnection): |
| Use new flag. |
| |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| Testing infrastructure. |
| |
| 2018-01-24 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove duplicate preference update for WebAuthentication value |
| https://bugs.webkit.org/show_bug.cgi?id=182058 |
| |
| Reviewed by Brian Burg. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| An identical update already happens in generated code. |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebProcess access to QTKit |
| https://bugs.webkit.org/show_bug.cgi?id=182035 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| This isn't needed any more. We only have a little bit of code that uses QTKit which we should remove, |
| and it's only used for fullscreen controls in WebKitLegacy. Let's tighten up the sandbox! |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove pre-Sierra-OS-specific code in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=182024 |
| |
| Reviewed by Tim Horton. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| * Shared/Cocoa/DataDetectionResult.mm: |
| (WebKit::DataDetectionResult::encode const): |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::ArgumentCoder<WebCore::Payment>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentContact>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::encode): |
| (IPC::ArgumentCoder<WebCore::PaymentMethod>::encode): |
| * Shared/WebPreferencesDefaultValues.h: |
| * Shared/cg/ShareableBitmapCG.cpp: |
| (WebKit::wantsExtendedRange): |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): |
| * Shared/mac/CodeSigning.mm: |
| (WebKit::codeSigningIdentifier): |
| (WebKit::codeSigningIdentifierForCurrentProcess): |
| * Shared/mac/ColorSpaceData.mm: |
| (WebKit::ColorSpaceData::encode const): |
| * Shared/mac/PasteboardTypes.mm: |
| (WebKit::PasteboardTypes::forURL): |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): |
| (IPC::ArgumentCoder<Credential>::encodePlatformData): |
| (IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode): |
| (IPC::ArgumentCoder<MediaPlaybackTargetContext>::encodePlatformData): |
| * Shared/mac/WebHitTestResultData.mm: |
| (WebKit::WebHitTestResultData::platformEncode const): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setObject:forBundleParameter:]): |
| (-[WKProcessPool _setObjectsForBundleParametersWithDictionary:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _handleAcceptedCandidate:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::handleAcceptedCandidate): |
| (WebKit::WebViewImpl::performDragOperation): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Stop using AuthenticationClient in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=182016 |
| |
| Reviewed by Brady Eidson. |
| |
| It was necessary to support ResourceHandle use in WebKit, but now we're using NetworkSession everywhere in WebKit. |
| |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::useCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::cancelSingleChallenge): |
| (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): |
| (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WebProcess authentication code |
| https://bugs.webkit.org/show_bug.cgi?id=182020 |
| |
| Reviewed by Brady Eidson. |
| |
| * Shared/Authentication/AuthenticationManager.cpp: |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallenge): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReceiveAuthenticationChallenge): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::m_webSQLiteDatabaseTracker): |
| |
| 2018-01-24 Jan-Michael Brummer <jan.brummer@tabos.org> |
| |
| [GTK] Page crash after swipe gesture running GNOME3 under wayland |
| https://bugs.webkit.org/show_bug.cgi?id=181996 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add missing GDK_TOUCH_CANCEL support which fixes page crashes due to cancelled gestures. |
| * Shared/gtk/WebEventFactory.cpp: |
| (WebKit::WebEventFactory::createWebTouchEvent): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::doneWithTouchEvent): |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (touchPointStateForEvents): |
| (webkitWebViewBaseGetTouchPointsForEvent): |
| (webkitWebViewBaseTouchEvent): |
| * UIProcess/gtk/GestureController.cpp: |
| (WebKit::GestureController::handleEvent): |
| |
| 2018-01-24 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused QTKit preference |
| https://bugs.webkit.org/show_bug.cgi?id=181968 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Shared/API/c/WKDeprecatedFunctions.cpp: |
| (WKPreferencesSetQTKitEnabled): |
| (WKPreferencesGetQTKitEnabled): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetQTKitEnabled): Deleted. |
| (WKPreferencesGetQTKitEnabled): Deleted. |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setQTKitEnabled:]): Deleted. |
| (-[WKPreferences _qtKitEnabled]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-01-24 Youenn Fablet <youenn@apple.com> |
| |
| Fetch response should copy its url from the request if null |
| https://bugs.webkit.org/show_bug.cgi?id=182048 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-24 Sergio Villar Senin <svillar@igalia.com> |
| |
| Unreviewed build fix after r227518. I forgot to add the function declarations to the WPE |
| header. |
| |
| * UIProcess/API/wpe/WebKitSettings.h: Added webkit_settings_get/set_enable_webvr. |
| |
| 2018-01-24 Youenn Fablet <youenn@apple.com> |
| |
| Add Cache Storage engine assertion following on bug 181887 |
| https://bugs.webkit.org/show_bug.cgi?id=181925 |
| |
| Reviewed by Alex Christensen. |
| |
| In a normal environment, the folderPath should be the same as the path computed from the ClientOrigin. |
| Add assertion to verify this. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| |
| 2018-01-24 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Use GDK_EVENT_PROPAGATE and GDK_EVENT_STOP in WebKitWebViewBase.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=182031 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| No functional changes, this just replaces TRUE with GDK_EVENT_STOP and FALSE with |
| GDK_EVENT_PROPAGATE, to improve readability. |
| |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewBaseKeyPressEvent): |
| (webkitWebViewBaseKeyReleaseEvent): |
| (webkitWebViewBaseButtonPressEvent): |
| (webkitWebViewBaseButtonReleaseEvent): |
| (webkitWebViewBaseScrollEvent): |
| (webkitWebViewBaseMotionNotifyEvent): |
| (webkitWebViewBaseCrossingNotifyEvent): |
| (webkitWebViewBaseTouchEvent): |
| |
| 2018-01-23 Eric Carlson <eric.carlson@apple.com> |
| |
| Resign NowPlaying status when no media element is eligible |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| <rdar://problem/35294116> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): Return registeredAsNowPlayingApplication |
| status. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::nowPlayingInfoCallback): Ditto. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::requestActiveNowPlayingSessionInfo): Ditto. |
| |
| 2018-01-23 Alex Christensen <achristensen@webkit.org> |
| |
| Use CompletionHandlers for ResourceHandleClient::didReceiveResponseAsync |
| https://bugs.webkit.org/show_bug.cgi?id=181961 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/Downloads/Download.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| * WebProcess/WebProcess.cpp: |
| |
| 2018-01-23 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rollout r227216 as it seems to be causing deadlocks |
| https://bugs.webkit.org/show_bug.cgi?id=182013 |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::waitForSyncReply): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::setShouldProcessIncomingMessagesWhileWaitingForSyncReply): Deleted. |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::testIncomingSyncIPCMessageWhileWaitingForSyncReply): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::NetworkProcessConnection): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::WebToStorageProcessConnection): |
| * WebProcess/WebConnectionToUIProcess.cpp: |
| (WebKit::WebConnectionToUIProcess::WebConnectionToUIProcess): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testIncomingSyncIPCMessageWhileWaitingForSyncReply): Deleted. |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::undo): |
| (WebKit::WebEditorClient::redo): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::syncIPCMessageWhileWaitingForSyncReplyForTesting): Deleted. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r227437. |
| https://bugs.webkit.org/show_bug.cgi?id=182011 |
| |
| broke build (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove unused QTKit preference" |
| https://bugs.webkit.org/show_bug.cgi?id=181968 |
| https://trac.webkit.org/changeset/227437 |
| |
| 2018-01-23 Alex Christensen <achristensen@webkit.org> |
| |
| Remove compile guard around beacon API |
| https://bugs.webkit.org/show_bug.cgi?id=182002 |
| |
| Reviewed by Sam Weinig. |
| |
| It's enabled everywhere now. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetBeaconAPIEnabled): |
| (WKPreferencesGetBeaconAPIEnabled): |
| * config.h: |
| |
| 2018-01-23 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused QTKit preference |
| https://bugs.webkit.org/show_bug.cgi?id=181968 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Shared/API/c/WKDeprecatedFunctions.cpp: |
| (WKPreferencesSetQTKitEnabled): |
| (WKPreferencesGetQTKitEnabled): |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetQTKitEnabled): Deleted. |
| (WKPreferencesGetQTKitEnabled): Deleted. |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setQTKitEnabled:]): Deleted. |
| (-[WKPreferences _qtKitEnabled]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-01-23 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] WebProcess needs TCC entitlements for media capture |
| https://bugs.webkit.org/show_bug.cgi?id=181995 |
| <rdar://problem/36674649> |
| |
| Reviewed by Eric Carlson. |
| |
| * Configurations/WebContent-OSX.entitlements: Add delegated services needed to support media |
| capture features. |
| |
| 2018-01-23 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Disable header postprocessing when building for macOS High Sierra |
| https://bugs.webkit.org/show_bug.cgi?id=181972 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebKit.xcconfig: Adopt macOSTargetConditionals.xcconfig helpers and disable postprocessing |
| when building for macOS 10.13. |
| |
| 2018-01-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Window resizing is broken after detaching to separate window |
| https://bugs.webkit.org/show_bug.cgi?id=181992 |
| <rdar://problem/36714840> |
| |
| Reviewed by Brian Burg. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformDetach): |
| Restore the inspector view's autoresizingMask to the initial value |
| that works with a detached window. This gets changed when the view |
| gets attached to bottom/side, so we need to revert it on detaching. |
| |
| 2018-01-23 Brady Eidson <beidson@apple.com> |
| |
| Allow passing MessagePorts across processes (e.g. ServiceWorkers). |
| https://bugs.webkit.org/show_bug.cgi?id=181178 |
| |
| Reviewed by Andy Estes. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorkerClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::postMessageToServiceWorkerClient): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::entangleLocalPortInThisProcessToRemote): |
| (WebKit::WebProcessProxy::postMessageToRemote): |
| |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::postMessageToServiceWorker): |
| (WebKit::WebSWClientConnection::postMessageToServiceWorkerClient): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.messages.in: |
| |
| 2018-01-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r227279 and r227373. |
| https://bugs.webkit.org/show_bug.cgi?id=181988 |
| |
| The LayoutTest crash fix introduced an API test failure. |
| (Requested by ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "Resign NowPlaying status when no media element is eligible" |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| https://trac.webkit.org/changeset/227279 |
| |
| "Resign NowPlaying status when no media element is eligible" |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| https://trac.webkit.org/changeset/227373 |
| |
| 2018-01-23 Youenn Fablet <youenn@apple.com> |
| |
| REGRESSION (r227348): ASSERT_NOT_REACHED in WebKit::ServiceWorkerClientFetch::didFinish() |
| https://bugs.webkit.org/show_bug.cgi?id=181956 |
| <rdar://problem/36755492> |
| |
| Reviewed by Chris Dumez. |
| |
| Covered by test no longer crashing in Debug builds. |
| Reset m_redirectionStatus to None when starting an SW fetch. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::start): |
| (WebKit::ServiceWorkerClientFetch::didFinish): |
| |
| 2018-01-23 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE] TestWebKitFindController asserts |
| https://bugs.webkit.org/show_bug.cgi?id=181472 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Let's fix this in two independent ways. |
| |
| First, use a GRefPtr to hold ownership of the WebKitWebViewBackend. This way, we don't need |
| to change the order in which WebKitWebView destroys its priv struct members from what is |
| used in WebKitGTK+, which can lead to odd bugs. |
| |
| Additionally, just for good measure, stop resetting the find client when disposing |
| WebKitFindController. This is unnecessary because it will never be destroyed before the |
| WebKitWebView. |
| |
| * UIProcess/API/glib/WebKitFindController.cpp: |
| (webkit_find_controller_class_init): |
| (webkitFindControllerDispose): Deleted. |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (_WebKitWebViewPrivate::~_WebKitWebViewPrivate): |
| (webkitWebViewSetProperty): |
| (webkitWebViewGetProperty): |
| (webkitWebViewCreatePage): |
| (webkit_web_view_get_backend): |
| * UIProcess/API/wpe/WebKitWebViewBackend.cpp: |
| (webkitWebViewBackendCreateDefault): |
| (WTF::refGPtr): |
| (WTF::derefGPtr): |
| * UIProcess/API/wpe/WebKitWebViewBackendPrivate.h: |
| |
| 2018-01-22 Jon Lee <jonlee@apple.com> |
| |
| Update title label size |
| https://bugs.webkit.org/show_bug.cgi?id=181962 |
| rdar://problem/36754744 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/WKFullScreenWindowControllerIOS.mm: |
| (-[_WKFullScreenViewController setLocation:secure:trustedName:trustedSite:]): Move titleLabel properties into |
| createSubviews. |
| (-[_WKFullScreenViewController createSubviews]): Set the title label for both the cancel and location buttons. |
| Refer to a const CGFloat for the font size. |
| |
| 2018-01-22 Megan Gardner <megan_gardner@apple.com> |
| |
| Temporarily restore block selection code conditionally |
| https://bugs.webkit.org/show_bug.cgi?id=181895 |
| <rdar://problem/36567325> |
| |
| Reviewed by Tim Horton. |
| |
| We need to restore this code temporarily to avoid a crash. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): |
| |
| 2018-01-22 Zach Li <zacharyli323@gmail.com> |
| |
| We should not try to link against the Safe Browsing framework on watchOS and tvOS. |
| https://bugs.webkit.org/show_bug.cgi?id=181965. |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/WebKit.xcconfig: |
| |
| 2018-01-22 Alex Christensen <achristensen@webkit.org> |
| |
| Remove pre-NetworkSession loading code |
| https://bugs.webkit.org/show_bug.cgi?id=181944 |
| |
| Reviewed by Tim Horton. |
| |
| We were keeping it around for El Capitan. |
| |
| * NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm: |
| (WebKit::LegacyCustomProtocolManager::registerProtocolClass): |
| * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.cpp: |
| (WebKit::LegacyCustomProtocolManager::initialize): |
| * NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.h: |
| * NetworkProcess/Downloads/BlobDownloadClient.cpp: Removed. |
| * NetworkProcess/Downloads/BlobDownloadClient.h: Removed. |
| * NetworkProcess/Downloads/Download.cpp: |
| (WebKit::Download::~Download): |
| (WebKit::Download::cancel): |
| (WebKit::Download::didReceiveChallenge): |
| (WebKit::Download::didFinish): |
| (WebKit::Download::isAlwaysOnLoggingAllowed const): |
| (WebKit::Download::start): Deleted. |
| (WebKit::Download::startWithHandle): Deleted. |
| (WebKit::Download::didStart): Deleted. |
| (WebKit::Download::willSendRedirectedRequest): Deleted. |
| (WebKit::Download::didReceiveAuthenticationChallenge): Deleted. |
| (WebKit::Download::didReceiveResponse): Deleted. |
| (WebKit::Download::shouldDecodeSourceDataOfMIMEType): Deleted. |
| (WebKit::Download::decideDestinationWithSuggestedFilename): Deleted. |
| (WebKit::Download::decideDestinationWithSuggestedFilenameAsync): Deleted. |
| (WebKit::Download::didDecideDownloadDestination): Deleted. |
| (WebKit::Download::continueDidReceiveResponse): Deleted. |
| * NetworkProcess/Downloads/Download.h: |
| (WebKit::Download::setBlobFileReferences): Deleted. |
| (WebKit::Download::request const): Deleted. |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::startDownload): |
| (WebKit::DownloadManager::willDecidePendingDownloadDestination): |
| (WebKit::DownloadManager::convertNetworkLoadToDownload): |
| (WebKit::DownloadManager::continueDecidePendingDownloadDestination): |
| (WebKit::DownloadManager::resumeDownload): |
| (WebKit::DownloadManager::cancelDownload): |
| * NetworkProcess/Downloads/DownloadManager.h: |
| (WebKit::DownloadManager::startDownload): |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| * NetworkProcess/Downloads/PendingDownload.h: |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| * NetworkProcess/Downloads/ios/DownloadIOS.mm: Removed. |
| * NetworkProcess/Downloads/mac/DownloadMac.mm: Removed. |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::loadPing): |
| * NetworkProcess/NetworkDataTask.cpp: |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| * NetworkProcess/NetworkDataTaskBlob.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::~NetworkLoad): |
| (WebKit::NetworkLoad::setDefersLoading): |
| (WebKit::NetworkLoad::cancel): |
| (WebKit::NetworkLoad::continueWillSendRequest): |
| (WebKit::NetworkLoad::continueDidReceiveResponse): |
| (WebKit::NetworkLoad::shouldCaptureExtraNetworkLoadMetrics const): |
| (WebKit::NetworkLoad::didReceiveResponseAsync): Deleted. |
| (WebKit::NetworkLoad::didReceiveBuffer): Deleted. |
| (WebKit::NetworkLoad::didFinishLoading): Deleted. |
| (WebKit::NetworkLoad::didFail): Deleted. |
| (WebKit::NetworkLoad::willSendRequestAsync): Deleted. |
| (WebKit::NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync): Deleted. |
| (WebKit::NetworkLoad::shouldUseCredentialStorage): Deleted. |
| (WebKit::NetworkLoad::didReceiveAuthenticationChallenge): Deleted. |
| (WebKit::NetworkLoad::receivedCancellation): Deleted. |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::clearCachedCredentials): |
| (WebKit::NetworkProcess::findPendingDownloadLocation): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::startNetworkLoad): |
| * NetworkProcess/NetworkSession.cpp: |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/PingLoad.cpp: |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| * NetworkProcess/mac/NetworkLoadMac.mm: Removed. |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::didReceiveAuthenticationChallenge): |
| (WebKit::AuthenticationManager::useCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): |
| (WebKit::AuthenticationManager::cancelSingleChallenge): |
| (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): |
| (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: Removed. |
| * Shared/SessionTracker.cpp: |
| (WebKit::SessionTracker::setSession): |
| (WebKit::SessionTracker::destroySession): |
| * Shared/SessionTracker.h: |
| * Shared/mac/CookieStorageShim.h: Removed. |
| * Shared/mac/CookieStorageShim.mm: Removed. |
| * UIProcess/API/APIDownloadClient.h: |
| (API::DownloadClient::didReceiveData): |
| (API::DownloadClient::shouldDecodeSourceDataOfMIMEType): Deleted. |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetDownloadClient): |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::shouldDecodeSourceDataOfMIMEType): Deleted. |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::willSendRequest): |
| (WebKit::DownloadProxy::didReceiveResponse): |
| (WebKit::DownloadProxy::shouldDecodeSourceDataOfMIMEType): Deleted. |
| (WebKit::DownloadProxy::decideDestinationWithSuggestedFilename): Deleted. |
| * UIProcess/Downloads/DownloadProxy.h: |
| * UIProcess/Downloads/DownloadProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::clearCachedCredentials): |
| * config.h: |
| |
| 2018-01-22 Youenn Fablet <youenn@apple.com> |
| |
| SW: Make sure ServiceWorker loading and requests are correctly cleared by ITP |
| https://bugs.webkit.org/show_bug.cgi?id=181942 |
| <rdar://problem/35132091> |
| |
| Reviewed by Chris Dumez. |
| |
| Add ServiceWorkerRegistrations and DOMCache as persistent data to be cleared according ITP decisions. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes): |
| |
| 2018-01-22 Chris Dumez <cdumez@apple.com> |
| |
| Add release logging to help debug issues related to service workers |
| https://bugs.webkit.org/show_bug.cgi?id=181935 |
| <rdar://problem/36735900> |
| |
| Reviewed by Brady Eidson. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::didFinishFetch): |
| (WebKit::WebSWServerConnection::didFailFetch): |
| (WebKit::WebSWServerConnection::didNotHandleFetch): |
| |
| 2018-01-22 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] REGRESSION (r225763): Allow access to power logging features |
| https://bugs.webkit.org/show_bug.cgi?id=181938 |
| <rdar://problem/36442803> |
| |
| Reviewed by Eric Carlson. |
| |
| I denied access to the powerlog facility in r225763, not realizing that it |
| gets activated in certain logging scenarios. This patch reverts this change. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-01-22 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS, iOS] Allow accss to AVFoundation preference |
| https://bugs.webkit.org/show_bug.cgi?id=181937 |
| <rdar://problem/33137029> |
| |
| Reviewed by Eric Carlson. |
| |
| Grant access to the 'com.apple.avfoundation.frecents' preference. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-01-22 Brady Eidson <beidson@apple.com> |
| |
| In WebKit2, make the MessagePortChannelRegistry live in the UI process. |
| https://bugs.webkit.org/show_bug.cgi?id=181922 |
| |
| Reviewed by Andy Estes. |
| |
| With all of the work that went into making MessagePorts be fully asynchronous |
| and to be process-aware, formally moving them out-of-process is just a matter |
| of adding WebKit IPC layers. |
| |
| The basic unit of asynchronicity is "MessagePortChannelProvider", and this patch |
| adds both a WebMessagePortChannelProvider and UIMessagePortChannelProvider for |
| each side of the process divide. |
| |
| * UIProcess/UIMessagePortChannelProvider.cpp: Added. |
| (WebKit::UIMessagePortChannelProvider::singleton): |
| (WebKit::UIMessagePortChannelProvider::UIMessagePortChannelProvider): |
| (WebKit::UIMessagePortChannelProvider::~UIMessagePortChannelProvider): |
| (WebKit::UIMessagePortChannelProvider::createNewMessagePortChannel): |
| (WebKit::UIMessagePortChannelProvider::entangleLocalPortInThisProcessToRemote): |
| (WebKit::UIMessagePortChannelProvider::messagePortDisentangled): |
| (WebKit::UIMessagePortChannelProvider::messagePortClosed): |
| (WebKit::UIMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::UIMessagePortChannelProvider::postMessageToRemote): |
| (WebKit::UIMessagePortChannelProvider::checkRemotePortForActivity): |
| (WebKit::UIMessagePortChannelProvider::checkProcessLocalPortForActivity): |
| * UIProcess/UIMessagePortChannelProvider.h: Added. |
| (WebKit::UIMessagePortChannelProvider::registry): |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_configurationPreferenceValues): |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::processForIdentifier): |
| (WebKit::m_userMediaCaptureManagerProxy): |
| (WebKit::WebProcessProxy::~WebProcessProxy): |
| (WebKit::WebProcessProxy::shutDown): |
| (WebKit::WebProcessProxy::createNewMessagePortChannel): |
| (WebKit::WebProcessProxy::entangleLocalPortInThisProcessToRemote): |
| (WebKit::WebProcessProxy::messagePortDisentangled): |
| (WebKit::WebProcessProxy::messagePortClosed): |
| (WebKit::WebProcessProxy::takeAllMessagesForPort): |
| (WebKit::WebProcessProxy::didDeliverMessagePortMessages): |
| (WebKit::WebProcessProxy::postMessageToRemote): |
| (WebKit::WebProcessProxy::checkRemotePortForActivity): |
| (WebKit::WebProcessProxy::checkProcessLocalPortForActivity): |
| (WebKit::WebProcessProxy::didCheckProcessLocalPortForActivity): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp: Added. |
| (WebKit::WebMessagePortChannelProvider::singleton): |
| (WebKit::WebMessagePortChannelProvider::WebMessagePortChannelProvider): |
| (WebKit::WebMessagePortChannelProvider::~WebMessagePortChannelProvider): |
| (WebKit::WebMessagePortChannelProvider::createNewMessagePortChannel): |
| (WebKit::WebMessagePortChannelProvider::entangleLocalPortInThisProcessToRemote): |
| (WebKit::WebMessagePortChannelProvider::messagePortDisentangled): |
| (WebKit::WebMessagePortChannelProvider::messagePortClosed): |
| (WebKit::WebMessagePortChannelProvider::takeAllMessagesForPort): |
| (WebKit::WebMessagePortChannelProvider::didTakeAllMessagesForPort): |
| (WebKit::WebMessagePortChannelProvider::didCheckRemotePortForActivity): |
| (WebKit::WebMessagePortChannelProvider::postMessageToRemote): |
| (WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity): |
| (WebKit::WebMessagePortChannelProvider::checkRemotePortForActivity): |
| * WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h: Added. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeProcess): |
| (WebKit::WebProcess::didTakeAllMessagesForPort): |
| (WebKit::WebProcess::checkProcessLocalPortForActivity): |
| (WebKit::WebProcess::didCheckRemotePortForActivity): |
| (WebKit::WebProcess::messagesAvailableForPort): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-22 Youenn Fablet <youenn@apple.com> |
| |
| Bump default cache storage quota to 50MB |
| https://bugs.webkit.org/show_bug.cgi?id=181924 |
| |
| Reviewed by Chris Dumez. |
| |
| Existing web sites use more than 20 MB. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-01-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix after r227292. Fixing a bad copy-paste that broke |
| the GTK+ debug builds. |
| |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): |
| |
| 2018-01-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Refactor PlatformContextCairo::drawSurfaceToContext() into a Cairo operation |
| https://bugs.webkit.org/show_bug.cgi?id=181930 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Call sites of the PlatformContextCairo::drawSurfaceToContext() method |
| are adjusted to now call Cairo::drawSurface() and properly pass the |
| PlatformContextCairo object to the function. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): |
| |
| 2018-01-21 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix compile warning. |
| |
| Use #include instead of #import in cross-platform code. |
| |
| * Shared/WebPreferencesDefaultValues.cpp: |
| |
| 2018-01-21 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Turning off custom pasteboard data doesn't actually turn it off in WK2 |
| https://bugs.webkit.org/show_bug.cgi?id=181920 |
| <rdar://problem/36686429> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Moved the code to decide when to enable custom pasteboard data from WebCore |
| since we never enable this feature in WebKit1. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (defaultCustomPasteboardDataEnabled): Added. |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-01-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add a new feature flag for EXTRA_ZOOM_MODE and reintroduce AdditionalFeatureDefines.h |
| https://bugs.webkit.org/show_bug.cgi?id=181918 |
| |
| Reviewed by Tim Horton. |
| |
| Add EXTRA_ZOOM_MODE to FeatureDefines.xconfig (off by default). |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-01-21 Eric Carlson <eric.carlson@apple.com> |
| |
| Resign NowPlaying status when no media element is eligible |
| https://bugs.webkit.org/show_bug.cgi?id=181914 |
| <rdar://problem/35294116> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _requestActiveNowPlayingSessionInfo:]): Return registeredAsNowPlayingApplication |
| status. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::nowPlayingInfoCallback): Ditto. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::requestActiveNowPlayingSessionInfo): Ditto. |
| |
| 2018-01-20 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Stop eagerly loading PassKit.framework |
| https://bugs.webkit.org/show_bug.cgi?id=181911 |
| <rdar://problem/36555369> |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| Removed availablePaymentNetworks from WebPageCreationParameters. |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetApplePayEnabled): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| Stopped calling WebPaymentCoordinatorProxy::platformSupportsPayments(). |
| |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks): |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in: |
| |
| Added message AvailablePaymentNetworks, which synchronously returns a Vector of payment |
| networks. |
| |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePayments): |
| |
| Returned false if PassKitLibrary() fails. |
| |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): |
| (WebKit::WebPaymentCoordinatorProxy::platformOpenPaymentSetup): |
| |
| Called completionHandler with false if PassKitLibrary() fails. |
| |
| (WebKit::WebPaymentCoordinatorProxy::platformAvailablePaymentNetworks): |
| (WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks): |
| |
| Renamed availablePaymentNetworks to platformAvailablePaymentNetworks |
| |
| (WebKit::WebPaymentCoordinatorProxy::platformSupportsPayments): Deleted. |
| |
| * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| |
| Called completionHandler with false if PassKitLibrary() fails. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| |
| Stopped calling WebPaymentCoordinatorProxy::availablePaymentNetworks(). |
| |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::availablePaymentNetworks): |
| (WebKit::WebPaymentCoordinator::validatedPaymentNetwork): |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: |
| |
| Implemented PaymentCoordinatorClient::validatedPaymentNetwork(). m_availablePaymentNetworks |
| starts off as std::nullopt, but is initialized by sending the AvailablePaymentNetworks sync |
| message the first time it's accessed. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::WebPage): |
| |
| Stopped setting PageConfiguration::availablePaymentNetworks. |
| |
| 2018-01-20 Jer Noble <jer.noble@apple.com> |
| |
| Release ASSERT when reloading Vimeo page @ WebCore: WebCore::Document::updateLayout |
| https://bugs.webkit.org/show_bug.cgi?id=181840 |
| <rdar://problem/36186214> |
| |
| Reviewed by Simon Fraser. |
| |
| Updating layout while the document is suspended or stopped is unsafe. |
| |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::inlineVideoFrame): |
| |
| 2018-01-20 Chris Dumez <cdumez@apple.com> |
| |
| DOMCache data sometimes not properly removed when clearing data for a given origin |
| https://bugs.webkit.org/show_bug.cgi?id=181887 |
| <rdar://problem/36671239> |
| |
| Reviewed by Youenn Fablet. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| This code was iterating through folders on disk, then reading the folder's origin |
| from the origin file on disk. Then, if the origin would match the one we want to |
| delete, it would regenerate the folder path using cachesRootPath(*folderOrigin). |
| I don't know how but on my machine, I was ended up in a state where the path |
| generated by cachesRootPath(*folderOrigin) differed from the actual folder path |
| we read the origin from (Likely a different salt?). To make the code more robust, |
| I updated the code to delete "folderPath", which is the path we read the origin |
| from. |
| |
| 2018-01-19 Zach Li <zacharyli323@gmail.com> |
| |
| Expose Safe Browsing SPI |
| https://bugs.webkit.org/show_bug.cgi?id=181804 |
| <rdar://problem/36626946> |
| |
| Reviewed by Dan Bernstein. |
| |
| If client is using Apple internal SDK, then we can just import the header; if not, |
| then we declare necessary symbols that client will need. |
| |
| * Configurations/WebKit.xcconfig: |
| Only link against SafariSafeBrowsing framework on macOS High Sierra |
| and iOS 11 and above. Weak link against SafariSafeBrowsing framework |
| because it is not present on the Base system. |
| |
| * Platform/spi/Cocoa/SafeBrowsingSPI.h: Added. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Added SafeBrowsingSPI.h. |
| |
| * WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/11/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: |
| Added. |
| |
| 2018-01-19 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed build fix, removed unused lambda capture. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| |
| 2018-01-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Remove unused calls to WebResourceLoadStatisticsStore:logTestingEvent() to fix API test |
| https://bugs.webkit.org/show_bug.cgi?id=181890 |
| <rdar://problem/36674772> |
| |
| Unreviewed API test fix. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| |
| 2018-01-19 Youenn Fablet <youenn@apple.com> |
| |
| Do not go to the storage process when registering a service worker client if there is no service worker registered |
| https://bugs.webkit.org/show_bug.cgi?id=181740 |
| <rdar://problem/36650400> |
| |
| Reviewed by Chris Dumez. |
| |
| UIProcess notifies all web processes to register their service worker clients when spinning the service worker process. |
| Add private API to set the number of web processes for testing purposes. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _setMaximumNumberOfProcesses:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::registerServiceWorkerClients): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-19 Dean Jackson <dino@apple.com> |
| |
| REGRESSION (r221092): Swipe actions are hard to perform in FastMail app |
| https://bugs.webkit.org/show_bug.cgi?id=181817 |
| <rdar://problem/35274055> |
| |
| Reviewed by Simon Fraser. |
| |
| Add a linked-on-or-after check to set passive touch listeners on document in WebCore. |
| |
| * CMakeLists.txt: |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: Copied from Source/WebKit/UIProcess/Cocoa/VersionChecks.h. |
| (defaultPassiveTouchListenersAsDefaultOnDocument): |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/Cocoa/VersionChecks.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [Cocoa] _WKNSWindowExtras.h: Add missing availability annotation |
| https://bugs.webkit.org/show_bug.cgi?id=181868 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/API/Cocoa/_WKNSWindowExtras.h: |
| |
| 2018-01-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add void to argument list to fix build with -Wstrict-prototypes |
| https://bugs.webkit.org/show_bug.cgi?id=181870 |
| <rdar://problem/36666750> |
| |
| Unreviewed build fix. |
| |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| |
| 2018-01-19 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r227211. |
| |
| Breaks iOS Simulator tests. |
| |
| Reverted changeset: |
| |
| "Expose Safe Browsing SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=181804 |
| https://trac.webkit.org/changeset/227211 |
| |
| 2018-01-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Implement callback support for removal of WebsiteDataType::ResourceLoadStatistics |
| https://bugs.webkit.org/show_bug.cgi?id=181822 |
| https://bugs.webkit.org/show_bug.cgi?id=175263 |
| https://bugs.webkit.org/show_bug.cgi?id=178536 |
| https://bugs.webkit.org/show_bug.cgi?id=181223 |
| https://bugs.webkit.org/show_bug.cgi?id=181482 |
| <rdar://problem/33491222> |
| <rdar://problem/33805293> |
| <rdar://problem/36332683> |
| <rdar://problem/36549026> |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStore): |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore]): |
| Calls the new API with no-op completion handler. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore:]): |
| New API with completion handler. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]): |
| Calls the new API with no-op completion handler. |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:completionHandler:]): |
| New API with completion handler. |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::populateMemoryStoreFromDisk): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::clearResourceLoadStatisticsInWebProcesses): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-01-19 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r223149): Ref WebPageProxy objects before calling their functionality |
| https://bugs.webkit.org/show_bug.cgi?id=181863 |
| <rdar://problem/36662452> |
| |
| Reviewed by Chris Dumez. |
| |
| More fix ups following r223149. When notifying all pages of a process state change we need to |
| take care to ref all the pages before iterating over them and notifying them of the change. |
| Notifying a page of such a state change may ultimately delegate to the embedding client. And |
| the embedding client can do anything, including deallocating one or more pages. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didBecomeUnresponsive): |
| (WebKit::WebProcessProxy::didBecomeResponsive): |
| (WebKit::WebProcessProxy::willChangeIsResponsive): |
| (WebKit::WebProcessProxy::didChangeIsResponsive): |
| (WebKit::WebProcessProxy::requestTermination): |
| |
| 2018-01-19 Chris Dumez <cdumez@apple.com> |
| |
| The WebContent process should not process incoming IPC while waiting for a sync IPC reply |
| https://bugs.webkit.org/show_bug.cgi?id=181560 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| The WebContent process should not process incoming IPC while waiting for a sync IPC reply. |
| This is causing hard-to-debug crashes because developers often assume the state does not |
| change during a sendSync() call. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::waitForSyncReply): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::setShouldProcessIncomingMessagesWhileWaitingForSyncReply): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::NetworkProcessConnection): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::WebToStorageProcessConnection): |
| * WebProcess/WebConnectionToUIProcess.cpp: |
| (WebKit::WebConnectionToUIProcess::WebConnectionToUIProcess): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::testIncomingSyncIPCMessageWhileWaitingForSyncReply): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::undo): |
| (WebKit::WebEditorClient::redo): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::syncIPCMessageWhileWaitingForSyncReplyForTesting): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-19 Keith Miller <keith_miller@apple.com> |
| |
| HaveInternalSDK includes should be "#include?" |
| https://bugs.webkit.org/show_bug.cgi?id=179670 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-01-19 Daniel Bates <dabates@apple.com> |
| |
| Fix misspelling; substitute willDetachRenderer for willDetatchRenderer. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::willDetachRenderer): |
| (WebKit::PDFPlugin::willDetatchRenderer): Deleted. |
| * WebProcess/Plugins/Plugin.h: |
| (WebKit::Plugin::willDetachRenderer): |
| (WebKit::Plugin::willDetatchRenderer): Deleted. |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::willDetachRenderer): |
| (WebKit::PluginView::willDetatchRenderer): Deleted. |
| * WebProcess/Plugins/PluginView.h: |
| |
| 2018-01-19 Zach Li <zacharyli323@gmail.com> |
| |
| Expose Safe Browsing SPI |
| https://bugs.webkit.org/show_bug.cgi?id=181804 |
| <rdar://problem/36626946> |
| |
| Reviewed by Alex Christensen. |
| |
| If client is using Apple internal SDK, then we can just import the header; if not, |
| then we declare necessary symbols that client will need. |
| |
| * Configurations/WebKit.xcconfig: |
| Only link against SafariSafeBrowsing framework on macOS High Sierra |
| and iOS 11 and above. Weak link against SafariSafeBrowsing framework |
| because it is not present on the Base system. |
| |
| * Platform/spi/Cocoa/SafeBrowsingSPI.h: Added. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Added SafeBrowsingSPI.h. |
| |
| * WebKitLibraries/WebKitPrivateFrameworkStubs/iOS/11/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: |
| Added. |
| |
| 2018-01-18 Chris Dumez <cdumez@apple.com> |
| |
| We should be able to terminate service workers that are unresponsive |
| https://bugs.webkit.org/show_bug.cgi?id=181563 |
| <rdar://problem/35280031> |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::terminateWorker): |
| Use a 10 second timeout for forcefully exiting the service worker process when |
| the service worker in question fails to terminate. |
| |
| (WebKit::WebSWContextManagerConnection::syncTerminateWorker): |
| Use a 100ms timeout for forcefully exiting the service worker process when |
| the service worker in question fails to terminate. This method is only called |
| from the layout tests, which is why we use a very short timeout. |
| |
| 2018-01-18 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, suppress deprecation warnings to fix the build with a newer SDK. |
| |
| * UIProcess/ios/WKPDFPageNumberIndicator.mm: |
| (-[WKPDFPageNumberIndicator _makeRoundedCorners]): |
| |
| 2018-01-18 Youenn Fablet <youenn@apple.com> |
| |
| Do not go to the storage process when loading a main resource if there is no service worker registered |
| https://bugs.webkit.org/show_bug.cgi?id=181395 |
| |
| Reviewed by Chris Dumez. |
| |
| Add a new web process creation parameter to know whether there is any service worker registered at web process creation time. |
| If there is none, the web process will then start to load HTTP resources from the network. |
| The connection to the storage process is then executed when receiving the first bytes of the main resource. |
| This connection is needed as other web processes may create service workers at any given time. |
| If there is one registered service worker, the web process will wait for its connection to the storage process to be active. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::hasRegisteredServiceWorkers): |
| * UIProcess/ServiceWorkerProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| * WebProcess/Storage/WebServiceWorkerProvider.h: |
| * WebProcess/Storage/WebToStorageProcessConnection.h: |
| (WebKit::WebToStorageProcessConnection::existingServiceWorkerConnectionForSession): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-18 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r223149): WebProcessProxy::didClose() no longer refs WebPageProxy objects |
| https://bugs.webkit.org/show_bug.cgi?id=181771 |
| <rdar://problem/36566237> |
| |
| Reviewed by Brady Eidson. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didClose): |
| Use copyToVectorOf<RefPtr<WebPageProxy>>() to maintain pre-r223149 behavior |
| and ref the pages. |
| |
| 2018-01-18 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions |
| https://bugs.webkit.org/show_bug.cgi?id=181803 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: Updated. |
| * Configurations/DebugRelease.xcconfig: Ditto. |
| * Configurations/FeatureDefines.xcconfig: Adopted macOSTargetConditionals helpers. |
| * Configurations/Version.xcconfig: Updated. |
| * Configurations/macOSTargetConditionals.xcconfig: Added. Defines helper build settings |
| useful for defining settings that depend on the target macOS version. |
| |
| 2018-01-18 Chris Dumez <cdumez@apple.com> |
| |
| Service Workers restored from persistent storage have 'redundant' state |
| https://bugs.webkit.org/show_bug.cgi?id=181749 |
| <rdar://problem/36556486> |
| |
| Reviewed by Youenn Fablet. |
| |
| Allow service workers to intercept custom protocol loads as this is useful for |
| API testing. |
| |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoad): |
| (WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| |
| 2018-01-18 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r225858): Sandbox violations due to blocked access to Spotlight search preferences |
| https://bugs.webkit.org/show_bug.cgi?id=181797 |
| <rdar://problem/36546412> |
| |
| Reviewed by Eric Carlson. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Add the read permission for |
| 'com.apple.lookup.shared' to support DataDetectors. |
| |
| 2018-01-17 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Block cookies for prevalent resources without user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=177394 |
| <rdar://problem/34613960> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| Now has m_hasBeenSetToUseStatelessCookieStorage to handle |
| cookie blocking. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): |
| Returns singleton empty, deny-all cookie storage for cookie blocking. |
| The ugly pragma instructions for clang are because the NSString |
| parameter for _initWithIdentifier was not marked nullable pre-Sierra. |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| Instead of just decision making, this now applies the policy. |
| (WebKit::NetworkDataTaskCocoa::applyCookiePartitioningPolicy): |
| New method. |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::shouldChangePartition): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| |
| |
| 2018-01-17 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [Curl] Use ResourceRequest::encodeWithPlatformData() |
| https://bugs.webkit.org/show_bug.cgi?id=181768 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/curl/WebCoreArgumentCodersCurl.cpp: |
| (IPC::ArgumentCoder<ResourceRequest>::encodePlatformData): |
| (IPC::ArgumentCoder<ResourceRequest>::decodePlatformData): |
| |
| 2018-01-17 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r227076. |
| |
| This breaks internal builds |
| |
| Reverted changeset: |
| |
| "Resource Load Statistics: Block cookies for prevalent |
| resources without user interaction" |
| https://bugs.webkit.org/show_bug.cgi?id=177394 |
| https://trac.webkit.org/changeset/227076 |
| |
| 2018-01-17 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| WEBKIT_FRAMEWORK should not modify file-global include directories |
| https://bugs.webkit.org/show_bug.cgi?id=181656 |
| |
| Reviewed by Konstantin Tokarev. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| |
| 2018-01-17 Youenn Fablet <youenn@apple.com> |
| |
| Put fetch request keepAlive behind a runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=181592 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetFetchAPIKeepAliveEnabled): |
| (WKPreferencesGetFetchAPIKeepAliveEnabled): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-01-17 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Block cookies for prevalent resources without user interaction |
| https://bugs.webkit.org/show_bug.cgi?id=177394 |
| <rdar://problem/34613960> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| Now has m_hasBeenSetToUseStatelessCookieStorage to handle |
| cookie blocking. |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): |
| Returns singleton empty, deny-all cookie storage for cookie blocking. |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| Instead of just decision making, this now applies the policy. |
| (WebKit::NetworkDataTaskCocoa::applyCookiePartitioningPolicy): |
| New method. |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| Now blocks cookies for domains where cookies will be purged anyway. |
| (WebKit::shouldChangePartition): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| Now downgrades for blocked cookies instead of partitioned cookies. |
| |
| 2018-01-17 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r222795): Cardiogram never signs in |
| https://bugs.webkit.org/show_bug.cgi?id=181693 |
| <rdar://problem/36286293> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Exempt Cardiogram from the XHR header restrictions in r222795. |
| |
| Following r222795 only Dashboard widgets are allowed to set arbitrary XHR headers. |
| However Cardiogram also depends on such functionality. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (shouldAllowSettingAnyXHRHeaderFromFileURLs): |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/Cocoa/VersionChecks.h: |
| |
| 2018-01-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Add injected bundle SPI to replace subresource URLs when dropping or pasting rich content |
| https://bugs.webkit.org/show_bug.cgi?id=181637 |
| <rdar://problem/36508471> |
| |
| Reviewed by Tim Horton. |
| |
| Add new injected bundle SPI, replacementURLForResource, which clients may use to provide a replacement URL to |
| represent an archive resource, given the resource's data and MIME type. |
| |
| * WebProcess/InjectedBundle/API/APIInjectedBundleEditorClient.h: |
| (API::InjectedBundle::EditorClient::replacementURLForResource): |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageEditorClient.h: |
| |
| Add replacementURLForResource, and also bump the current injected bundle editor client version to 2. |
| |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): |
| * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp: |
| (WebKit::InjectedBundlePageEditorClient::replacementURLForResource): |
| * WebProcess/InjectedBundle/InjectedBundlePageEditorClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::replacementURLForResource): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| 2018-01-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Don't mirror global alpha and image interpolation quality state values in PlatformContextCairo |
| https://bugs.webkit.org/show_bug.cgi?id=181725 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| Adjust the PlatformContextCairo::drawSurfaceToContext() invocation. |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): Ditto. |
| |
| 2018-01-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.6 release. |
| |
| * gtk/NEWS: Add release notes for 2.19.6. |
| |
| 2018-01-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds |
| https://bugs.webkit.org/show_bug.cgi?id=179914 |
| |
| Reviewed by Žan Doberšek. |
| |
| Add symbols detected by check-for-global-bss-symbols-in-webkigtk-libs to the version script. |
| |
| * webkitglib-symbols.map: |
| |
| 2018-01-17 Youenn Fablet <youenn@apple.com> |
| |
| Clear Caches volatile storage as a memory optimization. |
| https://bugs.webkit.org/show_bug.cgi?id=181643 |
| |
| Reviewed by Chris Dumez. |
| |
| clearMemoryRepresentation clears m_caches which exposes data potentially stored in m_volatileStorage. |
| Clearing m_volatileStorage allows releasing some memory. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clearMemoryRepresentation): |
| |
| 2018-01-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| [Cairo] Use one-time ShadowBlur objects when performing shadowing |
| https://bugs.webkit.org/show_bug.cgi?id=181720 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * Shared/cairo/ShareableBitmapCairo.cpp: |
| (WebKit::ShareableBitmap::paint): |
| Adjust the PlatformContextCairo::drawSurfaceToContext() invocation. |
| * WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp: |
| (WebKit::convertCairoSurfaceToShareableBitmap): Ditto. |
| |
| 2018-01-16 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [CMake] Remove WebCoreDerivedSources library target |
| https://bugs.webkit.org/show_bug.cgi?id=181664 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * CMakeLists.txt: Do not link WebCoreDerivedSources. |
| * PlatformGTK.cmake: Appended WebCore after WebCorePlatformGTK in WebKit_LIBRARIES. |
| * PlatformWin.cmake: Ditto. |
| |
| 2018-01-16 Alex Christensen <achristensen@webkit.org> |
| |
| Merge sync and async code paths for getting context menus |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| What a mess. We had a code path for asynchronous context menu generation and a different one for synchronous context menu generation. |
| This makes it so there is just one. At the API level we see if there is an asynchronous delegate to call, then synchronous. |
| There is a subtle theoretical change in behaviour because m_page.contextMenuClient().showContextMenu is now called for the asynchronous |
| case and it wasn't before, but the one C API client that uses this has nullptr as it's WKPageShowContextMenuCallback, so we won't break anything! |
| |
| * UIProcess/API/APIContextMenuClient.h: |
| (API::ContextMenuClient::getContextMenuFromProposedMenu): |
| (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): Deleted. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageContextMenuClient): |
| * UIProcess/API/glib/WebKitContextMenuClient.cpp: |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| (WebKit::WebContextMenuProxyGtk::show): |
| (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): |
| * UIProcess/gtk/WebContextMenuProxyGtk.h: |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| * UIProcess/wpe/WebContextMenuProxyWPE.h: |
| |
| 2018-01-16 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Don't link WebKit target directly to JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=181688 |
| |
| Reviewed by Alex Christensen. |
| |
| It's safer if we only link to the next lower-layered lib in the stack, so let's just link |
| directly to WebCore instead. |
| |
| And WPE doesn't need to specify it twice. |
| |
| * CMakeLists.txt: |
| * PlatformMac.cmake: |
| * PlatformWPE.cmake: |
| |
| 2018-01-16 Eric Carlson <eric.carlson@apple.com> |
| |
| AVSampleBufferDisplayLayer should be flushed when application activates |
| https://bugs.webkit.org/show_bug.cgi?id=181623 |
| <rdar://problem/36487738> |
| |
| Reviewed by Darin Adler. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applicationWillResignActive): Call page. |
| (WebKit::WebPage::applicationDidEnterBackground): Ditto, let it call libWebRTCProvider. |
| (WebKit::WebPage::applicationWillEnterForeground): Call page. |
| (WebKit::WebPage::applicationDidBecomeActive): Ditto, let it call libWebRTCProvider. |
| |
| 2018-01-16 Zach Li <zachli@apple.com> |
| |
| Add pop-up policy support in website policies. |
| https://bugs.webkit.org/show_bug.cgi?id=181544. |
| rdar://problem/30521400. |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/WebsitePoliciesData.cpp: Encode and decode |
| pop-up policy. |
| (WebKit::WebsitePoliciesData::encode const): |
| (WebKit::WebsitePoliciesData::decode): |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| Apply the pop-up policy from website policies to the |
| document loader. |
| |
| * Shared/WebsitePoliciesData.h: |
| |
| * Shared/WebsitePopUpPolicy.h: |
| Added for declaring enum WebsitePopUpPolicy. |
| |
| * UIProcess/API/APIWforebsitePolicies.cpp: |
| Include pop-up policy in website policies. |
| (API::WebsitePolicies::WebsitePolicies): |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| |
| * UIProcess/API/C/WKWebsitePolicies.cpp: |
| Added C API to get and set pop-up policy on |
| website policies. |
| (WKWebsitePoliciesGetPopUpPolicy): |
| (WKWebsitePoliciesSetPopUpPolicy): |
| * UIProcess/API/C/WKWebsitePolicies.h: |
| |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| Added Obj-C API to get and set pop-up policy |
| on website policies. |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| (-[_WKWebsitePolicies setPopUpPolicy:]): |
| (-[_WKWebsitePolicies popUpPolicy]): |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Added WebsitePopUpPolicy.h. |
| |
| 2018-01-16 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [CMake][Mac] Fix the build errors |
| https://bugs.webkit.org/show_bug.cgi?id=181665 |
| |
| Reviewed by Alex Christensen. |
| |
| * CMakeLists.txt: Added TouchBarMenuData.cpp and TouchBarMenuItemData.cpp to compile. |
| * PlatformMac.cmake: Added _WKApplicationManifest.mm, WKInspectorWKWebView.mm and WKInspectorWindow.mm to compile. |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _webPageContentProcessCount]): Call WebProcessPool::serviceWorkerProxy() only if ENABLE(SERVICE_WORKER). |
| |
| 2018-01-16 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Provide the `src` of an attachment to the UI delegate when an attachment is inserted |
| https://bugs.webkit.org/show_bug.cgi?id=181638 |
| <rdar://problem/36508702> |
| |
| Reviewed by Dan Bernstein. |
| |
| Add a `source` parameter to the `didInsertAttachment` codepath for notifying WebKit2 clients when attachment |
| elements are inserted into the document. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didInsertAttachment:withSource:]): |
| (-[WKWebView _didInsertAttachment:]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::didInsertAttachment): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::didInsertAttachment): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didInsertAttachment): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::didInsertAttachment): |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| 2018-01-15 Youenn Fablet <youenn@apple.com> |
| |
| ASSERTION FAILED: m_ptr under WebKit::CacheStorage::Caches::writeRecord |
| https://bugs.webkit.org/show_bug.cgi?id=181401 |
| <rdar://problem/36379022> |
| |
| Reviewed by Darin Adler. |
| |
| m_isInitialized is true but m_storage is set to nullptr when calling writeRecord. |
| The only case seems to be if: |
| - We are doing persistent storage |
| - We are traversing the storage to do the initialization. At that point m_storage is set to a correct value. |
| - clearMemoryRepresentation is called, thus setting m_storage to nullptr and m_isInitialized to false. |
| We fix this by making clearMemoryRepresentation a no-op if we are initializing the caches. |
| clearMemoryRepresentation is about cleaning the in-memory information of the caches and the memory representation is empty at init time. |
| Nullifying m_storage is a memory consumption optimization. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clearMemoryRepresentation): |
| |
| 2018-01-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, speculative build fix after r226899. |
| |
| Add an empty implementation for PageClient::startDrag. |
| |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::startDrag): |
| |
| 2018-01-12 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Remove unneeded accessibility-related sandbox rules |
| https://bugs.webkit.org/show_bug.cgi?id=181619 |
| <rdar://problem/36485356> |
| |
| Reviewed by Eric Carlson. |
| |
| Remove a number of sandbox exceptions that were in place for accessibility support. These are |
| not needed in the WebContent process, since Safari (not WebKit) handles the accessibility |
| interactions. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-01-12 Keith Rollin <krollin@apple.com> |
| |
| Logged JSON should escape "'s and \'s in strings. |
| https://bugs.webkit.org/show_bug.cgi?id=181608 |
| |
| Reviewed by Brent Fulgham. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| |
| 2018-01-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Unreviewed, fixing error in UIKitSPI.h. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| 2018-01-12 Megan Gardner <megan_gardner@apple.com> |
| |
| Implement MultiDocument protocol for restoring focus to a WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=181510 |
| |
| Reviewed by Dan Bernstein. |
| |
| Support the UIKit protocol for restoring focus to a what previously had focus. |
| WebKit already knows what node was previously being focused by the DOM, we merely |
| need to be asked to turn the focus on again. |
| Resubmitting https://trac.webkit.org/changeset/226826 as it broke internal builds |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| 2018-01-12 Youenn Fablet <youenn@apple.com> |
| |
| WebProcess should pass the registration identifier and not the worker identifier for fetch events |
| https://bugs.webkit.org/show_bug.cgi?id=181591 |
| |
| Reviewed by Chris Dumez. |
| |
| Use service worker registration identifier to compute the active service worker identifier responsible to handle the fetch event. |
| |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::startFetch): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * StorageProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::start): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::startFetch): |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::shouldHandleFetch): |
| |
| 2018-01-12 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r226826. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Implement MultiDocument protocol for restoring focus to a |
| WKWebView" |
| https://bugs.webkit.org/show_bug.cgi?id=181510 |
| https://trac.webkit.org/changeset/226826 |
| |
| 2018-01-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WK2] Unify macOS and iOS codepaths in the UI process when starting a drag |
| https://bugs.webkit.org/show_bug.cgi?id=181574 |
| |
| Reviewed by Tim Horton. |
| |
| Rearrange some macOS drag start logic in the UI process so that it uses the same codepaths in WebPageProxy as |
| iOS. Namely, startDrag should just forward the DragItem and drag image handle along to the appropriate views on |
| each platform (WKContentView and WebViewImpl). |
| |
| There should be no change in behavior. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| |
| Both macOS and iOS now funnel through this method. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::startDrag): |
| (WebKit::WebViewImpl::dragImageForView): Deleted. |
| |
| Rename dragImageForView to startDrag. Move the call to didStartDrag() here, and call dragCancelled() in the |
| case where we bailed from starting the drag (due to failing to create a drag image). |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::setDragImage): Deleted. |
| |
| Rename setDragImage to startDrag. |
| |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::startDrag): |
| (WebKit::PageClientImpl::setDragImage): Deleted. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::startDrag): Deleted. |
| |
| 2018-01-12 Antoine Quint <graouts@apple.com> |
| |
| Add support for the frames() timing function |
| https://bugs.webkit.org/show_bug.cgi?id=181585 |
| <rdar://problem/36463317> |
| |
| Reviewed by Dean. |
| |
| Add the ability to endode and decode the frames() timing function. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<FramesTimingFunction>::encode): |
| (IPC::ArgumentCoder<FramesTimingFunction>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (WebKit::PlatformCAAnimationRemote::Properties::encode const): |
| (WebKit::PlatformCAAnimationRemote::Properties::decode): |
| |
| 2018-01-11 Keith Miller <keith_miller@apple.com> |
| |
| Rename ENABLE_ASYNC_ITERATION to ENABLE_JS_ASYNC_ITERATION |
| https://bugs.webkit.org/show_bug.cgi?id=181573 |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-01-11 Brent Fulgham <bfulgham@apple.com> |
| |
| REGRESSION(r219530): ResourceLoadStatisticsPersistentStorage should be read-only in ephemeral sessions |
| https://bugs.webkit.org/show_bug.cgi?id=181136 |
| <rdar://problem/36116604> |
| |
| Reviewed by Chris Dumez. |
| |
| Some uses of WebKit involve running a UIProcess as an ephemeral session for the life of the process. In this |
| case, we do not initialize the data path for the set of load statistics triggering an assertion. |
| |
| We actually intended ephemeral sessions to consume the existing resource load data (presumably captured during |
| non-ephemeral browsing). This would be a read-only mode, where it would not add new entries to the load |
| statistics, but would take advantage of existing observations. Currently that does not happen (for this type |
| of WebKit embed), which forces each run as an ephemeral session to build up in-memory browsing data until it has |
| enough observations to begin modifying loads. |
| |
| We need to set the ResourceLoadStatisticsPersistentStorage object to a "read only" mode in this case, so |
| that it read (but does not write) from this database. |
| |
| Tested by ephemeral website data TestWebKitAPI tests. |
| |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::create): Added to allow creation of the right style of |
| Persistent Storage. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::ResourceLoadStatisticsPersistentStorage): Initialize the |
| new data member. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::asyncWriteTimerFired): RELEASE_ASSERT that we never run |
| this method when in "read only" mode. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::writeMemoryStoreToDisk): Ditto. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::scheduleOrWriteMemoryStore): Return early if asked to |
| schedule a write operation for a "read only" persistent store. |
| (WebKit::ResourceLoadStatisticsPersistentStorage::finishAllPendingWorkSynchronously): RELEASE_ASSERT if we |
| ever shut down in "read only" mode with an active write timer. |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): Pass a flag indicating whether the |
| storage session is ephemeral or not. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| |
| 2018-01-11 Keith Rollin <krollin@apple.com> |
| |
| Add optional logging of ITP-related user interaction information |
| https://bugs.webkit.org/show_bug.cgi?id=181556 |
| |
| Reviewed by Brent Fulgham. |
| |
| In order to support the tracking of the efficacy of Intelligent |
| Tracking Protection, add some logging indicating when the user |
| interacts with a page in a way that affects cookie partitioning. This |
| logging is off by default, and is enabled with `defaults write -g |
| WebKitLogCookieInformation -bool true`. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-11 Megan Gardner <megan_gardner@apple.com> |
| |
| Implement MultiDocument protocol for restoring focus to a WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=181510 |
| |
| Reviewed by Dan Bernstein. |
| |
| Support the UIKit protocol for restoring focus to a what previously had focus. |
| WebKit already has a method to silently remove and replace focus, without telling the |
| web process about the unfocus and refocusing, so we're just using that. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _restoreFocusWithToken:]): |
| (-[WKContentView _preserveFocusWithToken:destructively:]): |
| |
| |
| 2018-01-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Don't load inline data when requesting info for an attachment element backed by a file path |
| https://bugs.webkit.org/show_bug.cgi?id=181550 |
| |
| Reviewed by Tim Horton |
| |
| See WebCore/ChangeLog for more information. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentInfo initWithInfo:]): |
| (-[_WKAttachmentInfo fileLoadingError]): |
| (-[_WKAttachment requestInfo:]): |
| |
| 2018-01-11 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r226789 and r226794. |
| https://bugs.webkit.org/show_bug.cgi?id=181564 |
| |
| broke API tests (Requested by alexchristensen on #webkit). |
| |
| Reverted changesets: |
| |
| "Merge sync and async code paths for getting context menus" |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| https://trac.webkit.org/changeset/226789 |
| |
| "Revert changes accidentally committed with r226789." |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| https://trac.webkit.org/changeset/226794 |
| |
| 2018-01-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Send PromisedBlobInfo to the client through DragItem instead of DragClient::prepareToDragPromisedBlob |
| https://bugs.webkit.org/show_bug.cgi?id=181497 |
| |
| Reviewed by Tim Horton. |
| |
| Refactor drag and drop support for promised blob data, so that blob info is shipped across to the client layer |
| via DragItem in the DragClient::startDrag codepath, rather than via a separate prepareToDragPromisedBlob client |
| codepath that stages promised blob info. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startDrag:item:]): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): Deleted. |
| * WebProcess/WebCoreSupport/WebDragClient.cpp: |
| (WebKit::WebDragClient::prepareToDragPromisedBlob): Deleted. |
| * WebProcess/WebCoreSupport/WebDragClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::prepareToDragPromisedBlob): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-09 Per Arne Vollan <pvollan@apple.com> |
| |
| VoiceOver does not work when the WebContent process is using NSRunLoop. |
| https://bugs.webkit.org/show_bug.cgi?id=181331 |
| <rdar://problem/36408004> |
| |
| Reviewed by Brent Fulgham. |
| |
| When the WebContent process is using NSRunLoop instead of the NSApplication run loop, |
| accessibility must be initialized for VoiceOver to work. This patch also switches to |
| using NSRunLoop in the WebContent process. |
| |
| * Configurations/WebContentService.xcconfig: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::AccessibilityProcessSuspendedNotification): Remove unneccessary workaround. |
| * WebProcess/EntryPoint/mac/XPCService/WebContentService/Info-OSX.plist: Switch to NSRunLoop. |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeProcess): Initialize accessibility. |
| |
| 2018-01-11 Don Olmstead <don.olmstead@sony.com> |
| |
| WebContextMenuListenerProxy.cpp not including config on first line |
| https://bugs.webkit.org/show_bug.cgi?id=181552 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/WebContextMenuListenerProxy.cpp: |
| |
| 2018-01-11 Youenn Fablet <youenn@apple.com> |
| |
| Redirected iframe loading with Request.redirect=follow should fail |
| https://bugs.webkit.org/show_bug.cgi?id=181491 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::validateResponse): |
| |
| 2018-01-11 Youenn Fablet <youenn@apple.com> |
| |
| Replace WebRTCLegacyAPIDisabled by WebRTCLegacyAPIEnabled and switch off WebRTC legacy flag by default |
| https://bugs.webkit.org/show_bug.cgi?id=181480 |
| |
| Reviewed by Eric Carlson. |
| |
| Renaming preference to WebRTCLegacyAPIEnabled for simplification and removing it from experimental feature. |
| Set it to off by default. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebRTCLegacyAPIEnabled): |
| (WKPreferencesGetWebRTCLegacyAPIEnabled): |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _webRTCLegacyAPIEnabled]): |
| (-[WKPreferences _setWebRTCLegacyAPIEnabled:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| |
| 2018-01-11 Alex Christensen <achristensen@webkit.org> |
| |
| Merge sync and async code paths for getting context menus |
| https://bugs.webkit.org/show_bug.cgi?id=181423 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| What a mess. We had a code path for asynchronous context menu generation and a different one for synchronous context menu generation. |
| This makes it so there is just one. At the API level we see if there is an asynchronous delegate to call, then synchronous. |
| There is a subtle theoretical change in behaviour because m_page.contextMenuClient().showContextMenu is now called for the asynchronous |
| case and it wasn't before, but the one C API client that uses this has nullptr as it's WKPageShowContextMenuCallback, so we won't break anything! |
| |
| * UIProcess/API/APIContextMenuClient.h: |
| (API::ContextMenuClient::getContextMenuFromProposedMenu): |
| (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): Deleted. |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageContextMenuClient): |
| * UIProcess/API/glib/WebKitContextMenuClient.cpp: |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| (WebKit::WebContextMenuProxyGtk::show): |
| (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): |
| * UIProcess/gtk/WebContextMenuProxyGtk.h: |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| * UIProcess/wpe/WebContextMenuProxyWPE.h: |
| |
| 2018-01-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Support dragging attachment elements out as files on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=181199 |
| <rdar://problem/36299316> |
| |
| Reviewed by Tim Horton, Andy Estes and Joseph Pecoraro. |
| |
| Implement support for registering and beginning a drag with promised blob info. See below for more detail. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKDragSessionContext addTemporaryDirectory:]): |
| (-[WKDragSessionContext cleanUpTemporaryDirectories]): |
| |
| Introduce WKDragSessionContext, which represents the localContext of a UIDragSession initiated in WebKit. The |
| blob promise dragging codepath uses this to register temporary directories when saving blob data to a location |
| on disk; when all data transfers are finished, or if the drag interaction is being reset, we then use |
| -cleanUpTemporaryDirectories to remove each temporary directory. |
| |
| (existingLocalDragSessionContext): |
| (ensureLocalDragSessionContext): |
| |
| Helper methods to set the UIDragSession's localContext to a WKDragSessionContext and query for any existing |
| context. |
| |
| (-[WKContentView cleanupInteraction]): |
| |
| Before the content view's UIDragInteraction goes away, clean up any temporary directories added to the |
| UIDragSession. |
| |
| (-[WKContentView _prepareToDragPromisedBlob:]): |
| |
| When dragging with a promised blob, register a new item provider on the pasteboard representing the blob data, |
| along with any additional metadata associated with the blob. For the promise callback, call out to the network |
| process to write the blob data to a temporary path; when done, call the NSItemProvider's completion handler with |
| the temporary blob data location. |
| |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): |
| (-[WKContentView dragInteraction:sessionDidTransferItems:]): |
| |
| Use this delegate hook as an opportunity to remove any temporary directories created when promised blob data is |
| requested upon drop. Since we know the drag session that has finished transferring data, we simply ask its local |
| context (a WKDragSessionContext) to remove any temporary filepaths it has created. |
| |
| 2018-01-10 Jeff Miller <jeffm@apple.com> |
| |
| -[WKWebView _web_gestureEventWasNotHandledByWebCore:] should call -_gestureEventWasNotHandledByWebCore: |
| https://bugs.webkit.org/show_bug.cgi?id=181498 |
| |
| Reviewed by Alex Christensen. |
| |
| WKView's API contract allows clients to override -_gestureEventWasNotHandledByWebCore:, and -[WKView |
| _web_gestureEventWasNotHandledByWebCore:] calls -_gestureEventWasNotHandledByWebCore: instead of |
| invoking WebViewImpl::gestureEventWasNotHandledByWebCoreFromViewOnly() directly. WKWebView should do |
| the same thing. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _web_gestureEventWasNotHandledByWebCore:]): |
| Call -_gestureEventWasNotHandledByWebCore:, which will call gestureEventWasNotHandledByWebCoreFromViewOnly(). |
| |
| 2018-01-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION(r222507): Composition highlight doesn't render when using IME |
| https://bugs.webkit.org/show_bug.cgi?id=181485 |
| <rdar://problem/35896516> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add plumbing for a `suppressUnderline` argument when setting marked text. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageSetComposition): |
| * WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setCompositionForTesting): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-10 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r213590): Swipe from edge to go to previous page is significantly slower than tapping back button on Twitter |
| https://bugs.webkit.org/show_bug.cgi?id=181269 |
| <rdar://problem/35110344> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processDidExit]): |
| (-[WKWebView _didCommitLayerTree:]): |
| When swiping to a page that set history.scrollRestoration = "manual", |
| we will never restore the scroll position. We will still restore |
| "state", but won't have a location. Currently, the code assumes that |
| it should wait to remove the swipe snapshot until the scroll position |
| is restored. Instead, wait until the "state" is restored, whether |
| or not that includes a scroll position/center point restoration. |
| |
| Do this by making _firstTransactionIDAfterPageRestore an optional, |
| and reset it after it fires, so that we only run the restoration code |
| in _didCommitLayerTree for the first commit after state restoration, |
| not all subsequent commits. Then, tell ViewGestureController that |
| the scroll position has been restored even if the page opted out. |
| |
| The reason that this is specific to pushState is that normal, |
| non-same-document loads bail from waiting for the scroll position |
| restoration in VGC::didReachMainFrameLoadTerminalState() (see the long |
| comment there for an explanation). |
| |
| (-[WKWebView _beginBackSwipeForTesting]): |
| (-[WKWebView _completeBackSwipeForTesting]): |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (-[WKSwipeTransitionController transitionForDirection:]): |
| (WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting): |
| (WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::beginSimulatedSwipeInDirectionForTesting): |
| (WebKit::ViewGestureController::completeSimulatedSwipeInDirectionForTesting): |
| Add a mechanism to forcefully test swipe back. Instead of simulating |
| events like on Mac, we just talk to the UIKit internals and force |
| the interaction to start, pause, and then complete when we want. |
| |
| 2018-01-10 Brent Fulgham <bfulgham@apple.com> |
| |
| Use protectedThis for the 'updatePrevalentDomainsToPartitionOrBlockCookies' lambda |
| https://bugs.webkit.org/show_bug.cgi?id=181452 |
| <rdar://problem/36416912> |
| |
| Reviewed by Chris Dumez. |
| |
| We forgot to use a 'protectedThis' back in r225006 for one of the lambdas used by |
| the WebsiteDataStore for processing. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| |
| 2018-01-09 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Turn feature on by default in WebPreferences.yaml |
| https://bugs.webkit.org/show_bug.cgi?id=181458 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-01-09 Alex Christensen <achristensen@webkit.org> |
| |
| WKOpenPanelParameters SPI should return autoreleased objects |
| https://bugs.webkit.org/show_bug.cgi?id=181457 |
| <rdar://problem/35884960> |
| |
| Reviewed by Tim Horton. |
| |
| In r226607 I made a mistake by returning an object that has been released. |
| I instead follow a pattern of leaking and autoreleasing that we use elsewhere in the ObjC API. |
| |
| * UIProcess/API/Cocoa/WKOpenPanelParameters.mm: |
| (-[WKOpenPanelParameters _acceptedMIMETypes]): |
| (-[WKOpenPanelParameters _acceptedFileExtensions]): |
| |
| 2018-01-09 Dan Bernstein <mitz@apple.com> |
| |
| Removed some empty directories that were left behind |
| |
| * WebProcess/Cookies/cf: Removed. |
| * WebProcess/ios: Removed. |
| |
| 2018-01-09 Paul Knight <pknight@apple.com> |
| |
| Don't record dynamic spelling corrections while in an ephemeral browsing session |
| https://bugs.webkit.org/show_bug.cgi?id=181417 |
| <rdar://problem/33309104> |
| |
| Dynamic spelling correction responses are kept on disk. Avoid recording |
| these responses when in an ephemeral session. |
| |
| Reviewed by Tim Horton and Wenson Hsieh. |
| |
| * UIProcess/mac/CorrectionPanel.h: |
| * UIProcess/mac/CorrectionPanel.mm: |
| (WebKit::CorrectionPanel::recordAutocorrectionResponse): |
| Add a WebViewImpl parameter so we can query the current session. |
| Return early before recording the response if the session is |
| ephemeral. |
| (WebKit::CorrectionPanel::handleAcceptedReplacement): |
| Update a caller to include the new parameter. |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::recordAutocorrectionResponse): |
| Ditto. |
| |
| 2018-01-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.5 release. |
| |
| * gtk/NEWS: Add release notes for 2.19.5. |
| |
| 2018-01-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Missing symbols exported in 2.19.4 |
| https://bugs.webkit.org/show_bug.cgi?id=181433 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add missing WEBKIT_API to webkit_dom_dom_window_webkit_message_handlers_post_message(). |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h: |
| * webkitglib-symbols.map: Remove webkit_media_player_debug from local. |
| |
| 2018-01-09 Youenn Fablet <youenn@apple.com> |
| |
| SWClientConnection should not keep references to service worker jobs |
| https://bugs.webkit.org/show_bug.cgi?id=181381 |
| |
| Reviewed by Chris Dumez. |
| |
| Updated IPC handling based on WebCore refactoring. |
| |
| * Scripts/webkit/messages.py: |
| (forward_declarations_and_headers): |
| (headers_for_type): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::rejectJobInClient): |
| (WebKit::WebSWServerConnection::resolveRegistrationJobInClient): |
| (WebKit::WebSWServerConnection::resolveUnregistrationJobInClient): |
| (WebKit::WebSWServerConnection::startScriptFetchInClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| |
| 2018-01-09 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.19.4 release. |
| |
| * gtk/NEWS: Add release notes for 2.19.4. |
| |
| 2018-01-09 Ali Juma <ajuma@chromium.org> |
| |
| Implement VisualViewport API events |
| https://bugs.webkit.org/show_bug.cgi?id=179386 |
| |
| Reviewed by Frédéric Wang. |
| |
| Change the default value of the VisualViewportAPI experimental feature flag to |
| DEFAULT_EXPERIMENTAL_FEATURES_ENABLED. This patch completes the implementation |
| of this feature as specified by https://wicg.github.io/visual-viewport/, so this |
| feature is now ready for wider testing. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKNavigationDelegate SPI exposing WebProcess crash reason |
| https://bugs.webkit.org/show_bug.cgi?id=181410 |
| <rdar://problem/36167199> |
| |
| Reviewed by Wenson Hsieh. |
| |
| We exposed it in the C SPI. |
| |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::toWKProcessTerminationReason): |
| (WebKit::NavigationState::NavigationClient::processDidTerminate): |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Make ObjC SPI equivalent to WKPageNavigationClient.decidePolicyForPluginLoad |
| https://bugs.webkit.org/show_bug.cgi?id=181413 |
| <rdar://problem/36169005> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::decidePolicyForPluginLoad): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::toPluginModuleLoadPolicy): |
| (WebKit::toWKPluginModuleLoadPolicy): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::findPlugin): |
| |
| 2018-01-08 Ryosuke Niwa <rniwa@webkit.org> |
| |
| iOS build fix attempt after r226602. |
| |
| * UIProcess/API/C/WKContextMenuListener.cpp: |
| (WKContextMenuListenerUseContextMenuItems): |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI for WKOpenPanelParameters._acceptedMIMETypes and _acceptedFileExtensions |
| https://bugs.webkit.org/show_bug.cgi?id=181408 |
| <rdar://problem/35884960> |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKOpenPanelParameters.mm: |
| (-[WKOpenPanelParameters _acceptedMIMETypes]): |
| (-[WKOpenPanelParameters _acceptedFileExtensions]): |
| * UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h: |
| * UIProcess/API/Cocoa/WKOpenPanelParametersPrivate.h: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-01-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r226532 and r226540. |
| https://bugs.webkit.org/show_bug.cgi?id=181422 |
| |
| jessie says basic browsing does not seem to work (Requested by |
| alexchristensen on #webkit). |
| |
| Reverted changesets: |
| |
| "Add CSP support to service workers" |
| https://bugs.webkit.org/show_bug.cgi?id=181385 |
| https://trac.webkit.org/changeset/226532 |
| |
| "SWClientConnection should not keep references to service |
| worker jobs" |
| https://bugs.webkit.org/show_bug.cgi?id=181381 |
| https://trac.webkit.org/changeset/226540 |
| |
| 2018-01-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Expose file name and content type of WKAttachment |
| https://bugs.webkit.org/show_bug.cgi?id=181390 |
| <rdar://problem/36336837> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for -[_WKAttachment requestInfo:], which fetches a snapshot of the attachment's state. This API is |
| meant to be a replacement for -requestData: that provides additional metadata about the attachment. |
| |
| * Scripts/webkit/messages.py: |
| (headers_for_type): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<AttachmentInfo>::encode): |
| (IPC::ArgumentCoder<AttachmentInfo>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| Add IPC support for AttachmentInfo. Note that instead of using (encode|decode)SharedBuffer, we send and receive |
| data references to the shared buffer. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::requestInfo): |
| (API::Attachment::requestData): Deleted. |
| * UIProcess/API/APIAttachment.h: |
| |
| Change requestData to requestInfo. |
| |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| (-[_WKAttachmentInfo initWithInfo:]): |
| (-[_WKAttachmentInfo data]): |
| (-[_WKAttachmentInfo name]): |
| (-[_WKAttachmentInfo filePath]): |
| (-[_WKAttachmentInfo contentType]): |
| (-[_WKAttachment requestInfo:]): |
| (-[_WKAttachment requestData:]): |
| |
| Implement -requestInfo: by calling into APIAttachment, and reimplement -requestData: in terms of -requestInfo:. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::attachmentInfoCallback): |
| (WebKit::WebPageProxy::requestAttachmentInfo): |
| (WebKit::WebPageProxy::sharedBufferCallback): Deleted. |
| (WebKit::WebPageProxy::requestAttachmentData): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| |
| Rename the SharedBufferCallback IPC message to AttachmentInfoCallback, and make it conditional on |
| ATTACHMENT_ELEMENT. Rename requestAttachmentData to requestAttachmentInfo. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::requestAttachmentInfo): |
| (WebKit::WebPage::invokeSharedBufferCallback): Deleted. |
| (WebKit::WebPage::requestAttachmentData): Deleted. |
| |
| Rename requestAttachmentData to requestAttachmentInfo and adopt HTMLAttachmentElement::requestInfo. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-01-08 Alex Christensen <achristensen@webkit.org> |
| |
| Pass around Vector<Ref<WebContextMenuItem>> instead of WKArrayRef or Vector<WebContextMenuItemData> |
| https://bugs.webkit.org/show_bug.cgi?id=181419 |
| |
| Reviewed by Tim Horton. |
| |
| Passing a WKArrayRef to an API object is messy and was preventing me from moving things around and making ObjC SPI. |
| No change in behavior. Just using different layering abstractions for the same data. |
| |
| * UIProcess/API/C/WKContextMenuListener.cpp: |
| (WKContextMenuListenerUseContextMenuItems): |
| * UIProcess/WebContextMenuListenerProxy.cpp: |
| (WebKit::WebContextMenuListenerProxy::useContextMenuItems): |
| * UIProcess/WebContextMenuListenerProxy.h: |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| |
| 2018-01-08 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Remove access for all frames under a page when the page is closed |
| https://bugs.webkit.org/show_bug.cgi?id=181398 |
| <rdar://problem/36357879> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| SWClientConnection should not keep references to service worker jobs |
| https://bugs.webkit.org/show_bug.cgi?id=181381 |
| |
| Reviewed by Chris Dumez. |
| |
| Updated IPC handling based on WebCore refactoring. |
| |
| * Scripts/webkit/messages.py: |
| (forward_declarations_and_headers): |
| (headers_for_type): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::rejectJobInClient): |
| (WebKit::WebSWServerConnection::resolveRegistrationJobInClient): |
| (WebKit::WebSWServerConnection::resolveUnregistrationJobInClient): |
| (WebKit::WebSWServerConnection::startScriptFetchInClient): |
| * StorageProcess/ServiceWorker/WebSWServerConnection.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| |
| 2018-01-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [Cocoa] Web Inspector: Provide a way for clients to check if an NSWindow is a Web Inspector window |
| https://bugs.webkit.org/show_bug.cgi?id=181361 |
| <rdar://problem/36332865> |
| |
| Reviewed by Darin Adler. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| New files. |
| |
| * Shared/API/Cocoa/_WKNSWindowExtras.h: Added. |
| * Shared/API/Cocoa/_WKNSWindowExtras.mm: Added. |
| (-[NSWindow _web_isWebInspectorWindow]): |
| Method to determing if a window is being used for Web Inspector content. |
| |
| * UIProcess/mac/WKInspectorWindow.h: Added. |
| * UIProcess/mac/WKInspectorWindow.mm: Added. |
| Named subclass so we can use isKindOfClass. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::createFrontendWindow): |
| Use the named subclass. |
| |
| 2018-01-08 Tim Horton <timothy_horton@apple.com> |
| |
| Build fix for WKPDFView |
| https://bugs.webkit.org/show_bug.cgi?id=181399 |
| <rdar://problem/36311915> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| Disable deprecation warnings in this whole file. |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| Caches::writeCachesToDisk should assert that it is initialized |
| https://bugs.webkit.org/show_bug.cgi?id=181383 |
| |
| Reviewed by Alex Christensen. |
| |
| Add assertion to ensure caches is initialized |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::writeCachesToDisk): |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| WebProcessPool::terminateServiceWorkerProcess should protect itself in debug builds |
| https://bugs.webkit.org/show_bug.cgi?id=181384 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::terminateServiceWorkerProcess): |
| |
| 2018-01-08 Frederic Wang <fwang@igalia.com> |
| |
| Unreviewed build fix after r226211. |
| |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Use WK_IOS_TBA for iOS. |
| |
| 2018-01-08 Youenn Fablet <youenn@apple.com> |
| |
| navigator.onLine does not work inside service workers |
| https://bugs.webkit.org/show_bug.cgi?id=181079 |
| <rdar://problem/36178606> |
| |
| Reviewed by Darin Adler. |
| |
| Added support for a callback called for each service worker proxy creation. |
| Callback is used by WTR to inject a self.internals object used for testing. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleSetServiceWorkerProxyCreationCallback): |
| * WebProcess/InjectedBundle/API/c/WKBundle.h: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::setServiceWorkerProxyCreationCallback): |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| |
| 2018-01-07 David Kilzer <ddkilzer@apple.com> |
| |
| Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects |
| <https://webkit.org/b/181256> |
| <rdar://problem/36281730> |
| |
| Reviewed by Darin Adler. |
| |
| * Configurations/Base.xcconfig: |
| (WARNING_CFLAGS): Add -Wcast-qual. |
| * NetworkProcess/cache/NetworkCacheCodersCocoa.cpp: |
| (WTF::Persistence::encodeCertificateChain): Include |
| TypeCastsCF.h from WTF, and use |
| checked_cf_cast<SecCertificateRef>() to fix warning. |
| * Platform/cocoa/WKCrashReporter.mm: |
| (WebKit::setCrashReportApplicationSpecificInformation): |
| - Move `oldMessage` check above nullptr check to fix a leak when |
| passing in nullptr after previously setting the crash string. |
| - Change C-style cast to const_cast<char*>() to fix warning. |
| * PluginProcess/mac/PluginProcessShim.mm: |
| (WebKit::shim_shmat): Change C-style cast to |
| const_cast<void*>() to fix warning. |
| * Shared/Authentication/mac/AuthenticationManager.mac.mm: |
| (WebKit::leafCertificate): Include TypeCastsCF.h from |
| WTF, and use checked_cf_cast<SecCertificateRef>() to fix |
| warning. |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): Use static_cast<>(const_cast<void*>() to |
| fix warnings since the CFTypeID has already been |
| checked. |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::decodeNSError): Use an `auto` variable to hold the |
| CFMutableDictionaryRef, then WTFMove() to assign it back to |
| `userInfo`. |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::takeWindowSnapshot): Include TypeCastsCF.h from |
| WTF, and use checked_cf_cast<CGImageRef>() to fix |
| warning. |
| |
| 2018-01-07 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] Unset CMAKE_REQUIRED_LIBRARIES after check_function_exists test |
| https://bugs.webkit.org/show_bug.cgi?id=181371 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This variable is used by check_function_exists internally, its value |
| should be never used for anything else. |
| |
| * CMakeLists.txt: |
| |
| 2018-01-05 Dan Bernstein <mitz@apple.com> |
| |
| REGRESSION (r226218): iOS-only assets are installed on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=181362 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/WebKit.xcconfig: Exclude everything under Resources/ios when not targeting |
| iOS. |
| |
| * Resources/ios: Added. |
| * Resources/ios/iOS.xcassets: Moved from Source/WebKit/WebKit.xcassets. |
| * Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@2x.pdf: Set the |
| svn:mime-type property. |
| * Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@3x.pdf: Ditto. |
| |
| * Resources/mac: Added. |
| * Resources/mac/mediaIcon.pdf: Moved here… |
| * Resources/mediaIcon.pdf: …from here. |
| |
| * WebKit.xcassets: Moved under Resources/ios. |
| |
| * WebKit.xcodeproj/project.pbxproj: Created an ios group under the Resources group, and |
| cleaned up the mac group. Removed the Recovered References group. |
| |
| 2018-01-05 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Refactor to make naming accurate and explicit, simplify access table, and prepare for access removal for page |
| https://bugs.webkit.org/show_bug.cgi?id=181357 |
| <rdar://problem/36331031> |
| |
| Reviewed by Alex Christensen. |
| |
| This change does the following: |
| - Changes function and message names to reflect how this feature |
| was eventually implemented, i.e. access per frame. |
| - Makes it explicit that the UI process is only involved in |
| granting storage access and not removing storage access. |
| The latter is done directly by the web process. |
| - Simplifies the network process' entry map since only needs to |
| be able to give access to one domain in one frame at a time. |
| Access goes away on frame navigation so there can only be one |
| domain at a time per frame. Also, the map now uses pageIDs as |
| main keys to prepare for efficient access removal for all |
| frames under a page. |
| - Fixes a bug in so that a cross-origin iframe with the same |
| partition as the top frame correctly is handled as already |
| having access. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccess): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::hasStorageAccessForFrame): |
| (WebKit::NetworkProcess::grantStorageAccessForFrame): |
| (WebKit::NetworkProcess::hasStorageAccessForPrevalentDomains): Deleted. |
| (WebKit::NetworkProcess::updateStorageAccessForPrevalentDomains): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::hasStorageAccessForFrame): |
| (WebKit::NetworkProcessProxy::grantStorageAccessForFrame): |
| (WebKit::NetworkProcessProxy::hasStorageAccessForPrevalentDomains): Deleted. |
| (WebKit::NetworkProcessProxy::updateStorageAccessForPrevalentDomains): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): |
| (WebKit::WebResourceLoadStatisticsStore::hasStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccess): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::hasStorageAccessForFrameHandler): |
| (WebKit::WebsiteDataStore::grantStorageAccessForFrameHandler): |
| (WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback): |
| (WebKit::WebsiteDataStore::hasStorageAccessForPrevalentDomainsHandler): Deleted. |
| (WebKit::WebsiteDataStore::updateStorageAccessForPrevalentDomainsHandler): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::detachedFromParent2): |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| |
| 2018-01-05 Youenn Fablet <youenn@apple.com> |
| |
| Implement Cache API partitioning based on ClientOrigin |
| https://bugs.webkit.org/show_bug.cgi?id=181240 |
| |
| Reviewed by Alex Christensen. |
| |
| open and retrieveCaches now take a ClientOrigin instead of a String. |
| Updated cache filesystem path computation to take both client origin and top origin. |
| |
| When clearing an origin, caches whose client origin or top origin matches the origin are cleared. |
| Caches are added to the web site data of their client origin with their corresponding cache size. |
| Caches are added to the web site data of their top origin with a size equal to 0. |
| |
| Updated memory representation dumping used for test to include both top and client origins. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::cachesRootPath): |
| (WebKit::CacheStorage::Engine::open): |
| (WebKit::CacheStorage::Engine::remove): |
| (WebKit::CacheStorage::Engine::retrieveCaches): |
| (WebKit::CacheStorage::Engine::readCachesFromDisk): |
| (WebKit::CacheStorage::Engine::removeCaches): |
| (WebKit::CacheStorage::Engine::fetchEntries): |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| (WebKit::CacheStorage::Engine::clearMemoryRepresentation): |
| (WebKit::CacheStorage::Engine::representation): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::Cache): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::retrieveOriginFromDirectory): |
| (WebKit::CacheStorage::Caches::Caches): |
| (WebKit::CacheStorage::Caches::storeOrigin): |
| (WebKit::CacheStorage::Caches::readOrigin): |
| (WebKit::CacheStorage::Caches::open): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| (WebKit::CacheStorage::Caches::create): |
| (WebKit::CacheStorage::Caches::origin const): |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::clearMemoryRepresentation): |
| * NetworkProcess/cache/CacheStorageEngineConnection.h: |
| * NetworkProcess/cache/CacheStorageEngineConnection.messages.in: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| (WebKit::WebCacheStorageConnection::doOpen): |
| (WebKit::WebCacheStorageConnection::doRetrieveCaches): |
| (WebKit::WebCacheStorageConnection::clearMemoryRepresentation): |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| |
| 2018-01-05 Megan Gardner <megan_gardner@apple.com> |
| |
| Show Keyboard when re-launching WKWebView with a previously focused element |
| https://bugs.webkit.org/show_bug.cgi?id=181353 |
| |
| Reviewed by Tim Horton. |
| |
| When relaunching an app with a WKWebView, restore the keyboard if there was a previously |
| focused element that was being assisted. The element was already being tracked, we just |
| needed to not bail on showing the keyboard for instances where it was a state change that |
| caused the element to be refocused. |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::startAssistingNode): |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::startAutoscrollAtPosition): |
| (WebKit::WebPageProxy::startAssistingNode): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setActivityState): |
| (WebKit::WebPage::elementDidFocus): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-05 Alex Christensen <achristensen@webkit.org> |
| |
| Restrict navigation-time WKWebsiteDataStore swapping to main frame navigations |
| https://bugs.webkit.org/show_bug.cgi?id=181217 |
| |
| Reviewed by Tim Horton. |
| |
| If we swap during an iframe navigation, then we get a page in a strange state. |
| The intent of the main frame navigation WKWebsiteDataStore swap is that |
| that is a time when we can change storages without a page in an inconsistent state. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| 2018-01-05 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKBundleFrameCreateFrameHandle |
| https://bugs.webkit.org/show_bug.cgi?id=181232 |
| <rdar://problem/35926696> |
| |
| Reviewed by Tim Horton. |
| |
| InjectedBundle clients wanting to sent a _WKFrameHandle cannot without this function. |
| Before, they would just send the WKBundleFrameRef which would be changed into a WKFrameRef |
| in the UIProcess by WebProcessProxy::transformHandlesToObjects, but there is no ObjC equivalent |
| of WKFrameRef, so we were just getting a WKObject when we wanted a _WKFrameHandle. |
| We can't change WebProcessProxy::transformHandlesToObjects without being incompatible with the |
| existing C API, so let's add a way for clients to say "I want a _WKFrameHandle". |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundleFrameCreateFrameHandle): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| |
| 2018-01-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Add a way to write blob data to a file URL from the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=181236 |
| |
| Reviewed by Brady Eidson. |
| |
| Add support for writing a blob to a designated file path. In WebKit, this is mainly plumbing writeBlobToFilePath |
| through WebPageProxy to the network process. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| (WebKit::NetworkBlobRegistry::writeBlobToFilePath): |
| |
| Call out to the BlobRegistryImpl to write blobs to the file path. Additionally grant sandbox extensions for any |
| file-backed blob parts corresponding to the given blob URL. |
| |
| (WebKit::NetworkBlobRegistry::filesInBlob): |
| |
| Introduce a version of filesInBlob that doesn't check against the NetworkConnectionToWebProcess. This is used |
| when the UI process is the driver for writing a blob. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::writeBlobToFilePath): |
| |
| Temporarily grant sandbox access to the given file path. |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PromisedBlobInfo>::encode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::decode): |
| (IPC::ArgumentCoder<PromisedBlobData>::encode): Deleted. |
| (IPC::ArgumentCoder<PromisedBlobData>::decode): Deleted. |
| |
| Remove PromisedBlobData (see WebCore/ChangeLog for more information). |
| |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didClose): |
| |
| If the network process is terminated, flush any pending callbacks in m_writeBlobToFilePathCallbackMap, passing |
| in a failure result (success := false) and clearing the callback map. |
| |
| (WebKit::NetworkProcessProxy::writeBlobToFilePath): |
| (WebKit::NetworkProcessProxy::didWriteBlobToFilePath): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::writeBlobToFilePath): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-01-05 Dan Bernstein <mitz@apple.com> |
| |
| Add injected bundle equivalents of DOMHTMLDocument (DOMHTMLDocumentExtensions) |
| https://bugs.webkit.org/show_bug.cgi?id=181345 |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: Declared new methods. |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm: |
| (-[WKDOMDocument createDocumentFragmentWithMarkupString:baseURL:]): Added. Calls WebCore’s |
| createFragmentFromMarkup. |
| (-[WKDOMDocument createDocumentFragmentWithText:]): Added. Calls WebCore’s |
| createFragmentFromText. |
| |
| 2018-01-05 Don Olmstead <don.olmstead@sony.com> |
| |
| [Curl] Add implementation stubs for Network Cache |
| https://bugs.webkit.org/show_bug.cgi?id=181343 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cache/NetworkCacheCodersCurl.cpp: Added. |
| (WTF::Persistence::Coder<WebCore::CertificateInfo>::encode): |
| (WTF::Persistence::Coder<WebCore::CertificateInfo>::decode): |
| * NetworkProcess/cache/NetworkCacheDataCurl.cpp: Added. |
| (WebKit::NetworkCache::Data::Data): |
| (WebKit::NetworkCache::Data::empty): |
| (WebKit::NetworkCache::Data::data const): |
| (WebKit::NetworkCache::Data::isNull const): |
| (WebKit::NetworkCache::Data::apply const): |
| (WebKit::NetworkCache::Data::subrange const): |
| (WebKit::NetworkCache::concatenate): |
| (WebKit::NetworkCache::Data::adoptMap): |
| * NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp: Added. |
| (WebKit::NetworkCache::IOChannel::IOChannel): |
| (WebKit::NetworkCache::IOChannel::~IOChannel): |
| (WebKit::NetworkCache::IOChannel::open): |
| (WebKit::NetworkCache::IOChannel::read): |
| (WebKit::NetworkCache::IOChannel::write): |
| * PlatformWin.cmake: |
| |
| 2018-01-05 Don Olmstead <don.olmstead@sony.com> |
| |
| [Curl] Update method declarations in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=181342 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/Downloads/curl/DownloadCurl.cpp: |
| (WebKit::Download::resume): |
| * NetworkProcess/curl/RemoteNetworkingContextCurl.cpp: |
| (WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Deleted. |
| (WebKit::RemoteNetworkingContext::blockedError const): Deleted. |
| |
| 2018-01-05 Don Olmstead <don.olmstead@sony.com> |
| |
| WebFullScreenManager should compile when ENABLE(VIDEO) is off |
| https://bugs.webkit.org/show_bug.cgi?id=181338 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::didEnterFullScreen): |
| (WebKit::WebFullScreenManager::willExitFullScreen): |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| |
| 2018-01-05 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Disable Apple Pay on platforms that don't have PassKit.framework |
| https://bugs.webkit.org/show_bug.cgi?id=181335 |
| <rdar://problem/36311296> |
| |
| Reviewed by Brady Eidson. |
| |
| When Safari is running in the macOS Base System, PassKit.framework is not available. |
| If we fail to dlopen PassKit, we should disable Apple Pay. |
| |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetApplePayEnabled): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks): |
| (WebKit::WebPaymentCoordinatorProxy::platformSupportsPayments): |
| |
| 2018-01-05 Dan Bernstein <mitz@apple.com> |
| |
| Fixed the build following AppKit API deprecations in a recent SDKs |
| |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController enterFullScreen:]): Suppressed deprecation warnings. |
| (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Ditto. |
| (-[WKFullScreenWindowController exitFullScreen]): Ditto. |
| (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Ditto. |
| (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): Ditto. |
| (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): Ditto. |
| (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): Ditto. |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView _setAutodisplay:]): Ditto. |
| |
| 2018-01-05 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r226401. |
| |
| This caused timeouts on multiple platforms. |
| |
| Reverted changeset: |
| |
| "Implement Cache API partitioning based on ClientOrigin" |
| https://bugs.webkit.org/show_bug.cgi?id=181240 |
| https://trac.webkit.org/changeset/226401 |
| |
| 2018-01-05 Joseph Pecoraro <pecoraro@apple.com> |
| |
| ServiceWorkers: Enable UserTiming / ResourceTiming |
| https://bugs.webkit.org/show_bug.cgi?id=181297 |
| <rdar://problem/36307306> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::updatePreferencesStore): |
| Enable Resource Timing / User Timing for the ServiceWorker process. |
| |
| 2018-01-04 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed GTK+ build fix. |
| |
| * UIProcess/API/glib/WebKitUserMediaPermissionRequest.cpp: |
| (webkit_user_media_permission_is_for_audio_device): |
| Call UserMediaPermissionRequestProxy::requiresAudioCapture(). |
| (webkit_user_media_permission_is_for_video_device): |
| Call UserMediaPermissionRequestProxy::requiresVideoCapture(). |
| |
| 2018-01-04 Don Olmstead <don.olmstead@sony.com> |
| |
| [Curl] Fix compilation error in WebFrameNetworkingContext |
| https://bugs.webkit.org/show_bug.cgi?id=181312 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| |
| 2018-01-04 Tim Horton <timothy_horton@apple.com> |
| |
| WKWebView loses minimum layout size overrides that happen while the process is terminated |
| https://bugs.webkit.org/show_bug.cgi?id=181306 |
| <rdar://problem/34398288> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didRelaunchProcess]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::didRelaunchProcess): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize): |
| (WebKit::WebPageProxy::setForceAlwaysUserScalable): |
| (WebKit::WebPageProxy::setMaximumUnobscuredSize): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::WebPage): |
| Pass the current viewport minimum layout size and maximum unobscured size |
| in the WebPageCreationParameters instead of re-sending them in _didRelaunchProcess. |
| |
| The previous approach was problematic when _dispatchSetMinimumLayoutSize: |
| was changed to not re-send identical updates, because if the client calls |
| _overrideLayoutParametersWithMinimumLayoutSize before the Web Content process |
| is re-launched (after terminating), we would cache the size, attempt to send it, |
| fail silently (because the process is not launched), and then in _didRelaunchProcess |
| we would choose not to re-send (after the process is successfully relaunched) |
| because we think we already sent the new value. |
| |
| Add isValid() checks to our message sends. Ideally send() would assert |
| if the process is not alive to avoid problems like this, but it doesn't (yet). |
| |
| Get rid of WKWebView's _didRelaunchProcess, because it does nothing now. |
| |
| 2018-01-04 Stephan Szabo <stephan.szabo@sony.com> |
| |
| NetworkProcess cache files use functions from unistd.h without explicitly including it |
| https://bugs.webkit.org/show_bug.cgi?id=181261 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cache/NetworkCacheBlobStorage.cpp: |
| * NetworkProcess/cache/NetworkCacheData.cpp: |
| |
| 2018-01-04 Keith Rollin <krollin@apple.com> |
| |
| Add commas |
| https://bugs.webkit.org/show_bug.cgi?id=181295 |
| <rdar://problem/35802295> |
| |
| Reviewed by Brent Fulgham. |
| |
| Fix a problem introduced in r226226 where the emitted JSON didn't |
| include some required commas. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| |
| 2018-01-04 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Add Mock screen capture source |
| https://bugs.webkit.org/show_bug.cgi?id=181291 |
| <rdar://problem/36298164> |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<MediaConstraints>::decode): |
| (IPC::ArgumentCoder<CaptureDevice>::encode): Deleted, moved to CaptureDevice.h |
| (IPC::ArgumentCoder<CaptureDevice>::decode): Ditto. |
| * Shared/WebCoreArgumentCoders.h: |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add _WKCaptureDeviceDisplay. |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::requestUserMediaAuthorizationForDevices): Deal with display capture. |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Ditto. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied): requiresAudio -> requiresAudioCapture. |
| (WebKit::UserMediaPermissionRequestManagerProxy::searchForGrantedRequest const): Never reuse |
| a previously granted display capture request. |
| |
| * UIProcess/UserMediaPermissionRequestProxy.cpp: |
| (WebKit::UserMediaPermissionRequestProxy::allow): Search the eligible devices instead of asking |
| the source center to find devices. |
| * UIProcess/UserMediaPermissionRequestProxy.h: |
| (WebKit::UserMediaPermissionRequestProxy::requiresAudioCapture const): Renamed. |
| (WebKit::UserMediaPermissionRequestProxy::requiresVideoCapture const): Ditto. |
| (WebKit::UserMediaPermissionRequestProxy::requiresDisplayCapture const): New. |
| (WebKit::UserMediaPermissionRequestProxy::requiresAudio const): Deleted. |
| (WebKit::UserMediaPermissionRequestProxy::requiresVideo const): Deleted. |
| |
| 2018-01-04 Youenn Fablet <youenn@apple.com> |
| |
| FetchResponse should set its internal response text encoding name |
| https://bugs.webkit.org/show_bug.cgi?id=181284 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): Set default encoding to UTF-8. |
| |
| 2018-01-04 Youenn Fablet <youenn@apple.com> |
| |
| Implement Cache API partitioning based on ClientOrigin |
| https://bugs.webkit.org/show_bug.cgi?id=181240 |
| |
| Reviewed by Alex Christensen. |
| |
| open and retrieveCaches now take a ClientOrigin instead of a String. |
| Updated cache filesystem path computation to take both client origin and top origin. |
| |
| When clearing an origin, caches whose client origin or top origin matches the origin are cleared. |
| Caches are added to the web site data of their client origin with their corresponding cache size. |
| Caches are added to the web site data of their top origin with a size equal to 0. |
| |
| Updated memory representation dumping used for test to include both top and client origins. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::cachesRootPath): |
| (WebKit::CacheStorage::Engine::open): |
| (WebKit::CacheStorage::Engine::remove): |
| (WebKit::CacheStorage::Engine::retrieveCaches): |
| (WebKit::CacheStorage::Engine::readCachesFromDisk): |
| (WebKit::CacheStorage::Engine::removeCaches): |
| (WebKit::CacheStorage::Engine::fetchEntries): |
| (WebKit::CacheStorage::Engine::clearCachesForOrigin): |
| (WebKit::CacheStorage::Engine::clearMemoryRepresentation): |
| (WebKit::CacheStorage::Engine::representation): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCache.cpp: |
| (WebKit::CacheStorage::Cache::Cache): |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::retrieveOriginFromDirectory): |
| (WebKit::CacheStorage::Caches::Caches): |
| (WebKit::CacheStorage::Caches::storeOrigin): |
| (WebKit::CacheStorage::Caches::readOrigin): |
| (WebKit::CacheStorage::Caches::open): |
| * NetworkProcess/cache/CacheStorageEngineCaches.h: |
| (WebKit::CacheStorage::Caches::create): |
| (WebKit::CacheStorage::Caches::origin const): |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::open): |
| (WebKit::CacheStorageEngineConnection::caches): |
| (WebKit::CacheStorageEngineConnection::clearMemoryRepresentation): |
| * NetworkProcess/cache/CacheStorageEngineConnection.h: |
| * NetworkProcess/cache/CacheStorageEngineConnection.messages.in: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| (WebKit::WebCacheStorageConnection::doOpen): |
| (WebKit::WebCacheStorageConnection::doRetrieveCaches): |
| (WebKit::WebCacheStorageConnection::clearMemoryRepresentation): |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| |
| 2018-01-04 Youenn Fablet <youenn@apple.com> |
| |
| Service Worker should expose redirect mode for navigation loads as manual |
| https://bugs.webkit.org/show_bug.cgi?id=181067 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Storage/ServiceWorkerClientFetch.cpp: |
| (WebKit::ServiceWorkerClientFetch::didReceiveResponse): |
| |
| 2018-01-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Create attachment elements when dropping files on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=181192 |
| <rdar://problem/36280945> |
| |
| Reviewed by Tim Horton. |
| |
| Make some minor adjustments for changes to the pasteboard in WebCore. See WebCore/ChangeLog for more detail. |
| Teaches WebPasteboardProxy et. al. to plumb PasteboardItemInfo from the UI process to the web process via the |
| new `InformationForItemAtIndex` codepath. |
| |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| (WebKit::WebPasteboardProxy::informationForItemAtIndex): |
| (WebKit::WebPasteboardProxy::getFilenamesForDataInteraction): Deleted. |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::informationForItemAtIndex): |
| (WebKit::WebPlatformStrategies::getFilenamesForDataInteraction): Deleted. |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-01-03 Ting-Wei Lan <lantw44@gmail.com> |
| |
| Replace hard-coded paths in shebangs with #!/usr/bin/env |
| https://bugs.webkit.org/show_bug.cgi?id=181040 |
| |
| Reviewed by Alex Christensen. |
| |
| * Scripts/generate-forwarding-headers.pl: |
| |
| 2018-01-03 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Add plumbing for starting a drag with promised blob data |
| https://bugs.webkit.org/show_bug.cgi?id=181201 |
| |
| Reviewed by Tim Horton. |
| |
| Add boilerplate plumbing for PrepareToDragPromisedBlob, which delivers blob promises to the UI process when |
| dragging, respectively. |
| |
| * Scripts/webkit/messages.py: |
| (headers_for_type): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::encodeTypesAndData): |
| (IPC::decodeTypesAndData): |
| (IPC::ArgumentCoder<PasteboardWebContent>::encode): |
| (IPC::ArgumentCoder<PasteboardWebContent>::decode): |
| (IPC::ArgumentCoder<PasteboardImage>::encode): |
| (IPC::ArgumentCoder<PasteboardImage>::decode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::encode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::decode): |
| |
| Add IPC support PromisedBlobInfo's additionalTypes and additionalData. |
| |
| (IPC::encodeClientTypesAndData): Deleted. |
| (IPC::decodeClientTypesAndData): Deleted. |
| |
| Rename these helper functions and move them to the top of the file. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::prepareToDragPromisedBlob): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::prepareToDragPromisedBlob): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::prepareToDragPromisedBlob): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _prepareToDragPromisedBlob:]): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::prepareToDragPromisedBlob): |
| * WebProcess/WebCoreSupport/WebDragClient.cpp: |
| (WebKit::WebDragClient::prepareToDragPromisedBlob): |
| * WebProcess/WebCoreSupport/WebDragClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::prepareToDragPromisedBlob): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-01-03 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r212929): WKSnapshotConfiguration may leak an NSNumber when deallocated |
| <https://webkit.org/b/181274> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UIProcess/API/Cocoa/WKSnapshotConfiguration.mm: |
| (-[WKSnapshotConfiguration dealloc]): Implement method and |
| release _snapshotWidth. |
| |
| 2018-01-03 John Wilander <wilander@apple.com> |
| |
| Storage Access API: Refactor XPC for access removal to go straight from the web process to the network process |
| https://bugs.webkit.org/show_bug.cgi?id=181270 |
| <rdar://problem/36289544> |
| |
| Reviewed by Alex Christensen. |
| |
| This change refactors how the web process tells the network process |
| to remove storage access. Previously, this was done over the UI process |
| just like requests for storage access. But since no further reasoning |
| is needed, the message should go straight from the web process to the |
| network process for performance reasons and to minimize the risk of a |
| race. |
| |
| As a consequence, the XPC code for storage access removal in the UI |
| process is deleted. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccess): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::removeStorageAccess): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::removeStorageAccess): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::requestStorageAccess): |
| (WebKit::WebPageProxy::removeStorageAccess): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::requestStorageAccess): |
| (WebKit::WebsiteDataStore::removeStorageAccess): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::detachedFromParent2): |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| |
| 2018-01-03 David Kilzer <ddkilzer@apple.com> |
| |
| com.apple.WebKit.Networking crash in com.apple.Foundation: -[__NSOperationInternal _start:] |
| <https://webkit.org/b/181272> |
| <rdar://problem/35657310> |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (downgradeRequest): Remove unnecessary -autorelease. |
| |
| 2018-01-03 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS] Constant frame dropping during Flash video playback |
| https://bugs.webkit.org/show_bug.cgi?id=181249 |
| <rdar://problem/34843448> |
| |
| Reviewed by Eric Carlson. |
| |
| Review of logs during jerky flash video playback shows a few IOKit properties are being blocked by the sandbox, |
| which prevents some high-efficiency codecs from being used. Add 'AppleGVAKeyDoesNotExist', 'IODVDBundleName', and |
| 'IOGVA*Encode' to the whitelist. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| |
| 2018-01-03 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK] Add web process API to detect when form is submitted via JavaScript |
| https://bugs.webkit.org/show_bug.cgi?id=173915 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Epiphany relies on the DOM submit event to detect when a form has been submitted. However, |
| for historical reasons, the submit event is not emitted when a form is submitted by |
| JavaScript. It is therefore not currently possible for a web browser to reliably detect form |
| submission and not possible to implement a robust password storage feature. In order to |
| avoid this problem, this patch adds a new WebKitWebPage signal, will-submit-form, that |
| browsers can use in preference to a DOM event listener. |
| |
| Unfortunately, this signal is not available for WPE because it depends on the DOM API. |
| |
| There are two submission events, WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT and |
| WEBKIT_FORM_SUBMISSION_WILL_COMPLETE. WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT |
| occurs earlier than WEBKIT_FORM_SUBMISSION_WILL_COMPLETE and can be used to retrieve form |
| values before websites receive the DOM submit event. This is useful as some websites like |
| to delete form values right before a submit would normally happen in order to attempt to |
| defeat browser password managers. There are two tricks to note: JavaScript can cancel form |
| submission immediately after this event occurs (by returning false in an onsubmit handler), |
| and, for historical reasons, this event will not occur at all when form submission is |
| triggered by JavaScript. WEBKIT_FORM_SUBMISSION_WILL_COMPLETE occurs next, and is more |
| straightforward: it is always emitted when a form is about to be submitted, when it is too |
| late to cancel. |
| |
| The recommended way to reliably retrieve password form values would be to watch for both |
| events, use the form value detected in WEBKIT_FORM_SUBMISSION_WILL_SEND_DOM_EVENT |
| if that event is emitted, and use the value detected later in |
| WEBKIT_FORM_SUBMISSION_WILL_COMPLETE otherwise. |
| |
| Since one of the signal arguments is an enum, we now have to run glib-mkenums for the web |
| process API. And that has resulted in this patch also adding GType goo for |
| WebKitConsoleMessageLevel and WebKitConsoleMessageSource that was previously missing. Any |
| applications that for some unlikely reason want to use these enums in properties or signals |
| will be happy. |
| |
| * PlatformGTK.cmake: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebPage.h: |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebProcessEnumTypes.cpp.template: Added. |
| * WebProcess/InjectedBundle/API/gtk/WebKitWebProcessEnumTypes.h.template: Added. |
| |
| 2018-01-03 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Really fix plugin process after r226327. |
| |
| * PluginProcess/unix/PluginProcessMainUnix.cpp: |
| |
| 2018-01-02 Brent Fulgham <bfulgham@apple.com> |
| |
| [macOS, iOS] Adopt new secure coding APIs in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=181085 |
| <rdar://problem/34837397> |
| |
| Reviewed by Tim Horton. |
| |
| Update WebKit code to use NSSecureCoding when the underlying operating system supports it. Use new |
| wrapper functions so the same code can be built on all supported OS releases, while enabling |
| seure coding when possible. |
| |
| Note that NSView-based classes cannot be migrated at present due to AppKit not supporting NSSecureCoding |
| in its class hierarchy. |
| |
| Tested by exising TestWebKitAPI tests for Coding and data transfer. |
| |
| * Platform/ios/AccessibilityIOS.mm: |
| (WebKit::newAccessibilityRemoteToken): Encode using NSSecureCoding. |
| * UIProcess/API/Cocoa/WKPreferences.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (+[WKPreferences supportsSecureCoding]): Added to enable NSSecureCoding. |
| * UIProcess/API/Cocoa/WKProcessPool.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (+[WKProcessPool supportsSecureCoding]): Ditto. |
| * UIProcess/API/Cocoa/WKUserContentController.h: |
| * UIProcess/API/Cocoa/WKUserContentController.mm: |
| (+[WKUserContentController supportsSecureCoding]): Ditto. |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView initWithCoder:]): Use coding initialization that supports secure coding if |
| it is available in the supplied class. |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.h: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (+[WKWebViewConfiguration supportsSecureCoding]): Added to enable NSSecureCoding. |
| (-[WKWebViewConfiguration initWithCoder:]): Use secure coding when possible. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (+[WKWebsiteDataStore supportsSecureCoding]): Added to enable NSSecureCoding. |
| * UIProcess/API/Cocoa/_WKApplicationManifest.h: |
| * UIProcess/API/Cocoa/_WKApplicationManifest.mm: |
| (+[_WKApplicationManifest supportsSecureCoding]): Added to enable NSSecureCoding. |
| (-[_WKApplicationManifest initWithCoder:]): Use secure coding when possible. |
| |
| 2017-12-28 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Remove std::chrono completely |
| https://bugs.webkit.org/show_bug.cgi?id=181186 |
| |
| Reviewed by Alex Christensen. |
| |
| Use MonotonicTime, WallTime, and Seconds instead. |
| Changes are mechanical ones. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::clear): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::responseHasExpired): |
| (WebKit::NetworkCache::responseNeedsRevalidation): |
| (WebKit::NetworkCache::makeStoreDecision): |
| (WebKit::NetworkCache::Cache::clear): |
| (WebKit::NetworkCache::Cache::storeData): |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::Entry): |
| (WebKit::NetworkCache::Entry::asJSON const): |
| * NetworkProcess/cache/NetworkCacheEntry.h: |
| (WebKit::NetworkCache::Entry::timeStamp const): |
| * NetworkProcess/cache/NetworkCacheFileSystem.cpp: |
| (WebKit::NetworkCache::fileTimes): |
| (WebKit::NetworkCache::updateFileModificationTimeIfNeeded): |
| * NetworkProcess/cache/NetworkCacheFileSystem.h: |
| * NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp: |
| (WebKit::NetworkCache::IOChannel::IOChannel): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: |
| (WebKit::NetworkCache::responseNeedsRevalidation): |
| (WebKit::NetworkCache::canRevalidate): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::readRecord): |
| (WebKit::NetworkCache::Storage::clear): |
| (WebKit::NetworkCache::computeRecordWorth): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| Bump the cache version. We now change the data in persistent cache. |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: |
| (WebKit::NetworkCache::SubresourceInfo::SubresourceInfo): |
| (WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| (WebKit::NetworkCache::SubresourceInfo::lastSeen const): |
| (WebKit::NetworkCache::SubresourceInfo::firstSeen const): |
| (WebKit::NetworkCache::SubresourcesEntry::timeStamp const): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::clearHSTSCache): |
| (WebKit::clearNSURLCache): |
| (WebKit::NetworkProcess::clearDiskCache): |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| (WebKit::NetworkProcess::clearDiskCache): |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::clearCacheForAllOrigins): |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::NetworkProcess::clearCacheForAllOrigins): |
| (WebKit::NetworkProcess::clearDiskCache): |
| * Platform/IPC/ArgumentCoders.cpp: |
| (IPC::ArgumentCoder<WallTime>::encode): |
| (IPC::ArgumentCoder<WallTime>::decode): |
| (IPC::ArgumentCoder<std::chrono::system_clock::time_point>::encode): Deleted. |
| (IPC::ArgumentCoder<std::chrono::system_clock::time_point>::decode): Deleted. |
| * Platform/IPC/ArgumentCoders.h: |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::PluginProcess::deleteWebsiteData): |
| * PluginProcess/PluginProcess.h: |
| * PluginProcess/PluginProcess.messages.in: |
| * Scripts/webkit/messages.py: |
| (headers_for_type): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.h: |
| (WebKit::RemoteLayerBackingStore::lastDisplayTime const): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::RemoteLayerBackingStore): |
| (WebKit::RemoteLayerBackingStore::display): |
| * Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h: |
| * Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm: |
| (WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile): |
| (WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired): |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<RecentSearch>::decode): |
| (IPC::ArgumentCoder<WallTime>::encode): Deleted. |
| (IPC::ArgumentCoder<WallTime>::decode): Deleted. |
| * Shared/WebCoreArgumentCoders.h: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::deleteWebsiteData): |
| * StorageProcess/StorageProcess.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerDeleteAllEntries): |
| * UIProcess/API/C/WKCookieManager.cpp: |
| (WKCookieManagerDeleteAllCookiesModifiedAfterDate): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerDeleteAllEntries): |
| * UIProcess/API/C/WKResourceCacheManager.cpp: |
| (WKResourceCacheManagerClearCacheForAllOrigins): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours): |
| (WKWebsiteDataStoreStatisticsClearThroughWebsiteDataRemoval): |
| (WKWebsiteDataStoreRemoveAllFetchCaches): |
| (WKWebsiteDataStoreRemoveAllIndexedDatabases): |
| (WKWebsiteDataStoreRemoveAllServiceWorkerRegistrations): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (toSystemClockTime): |
| (-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_clear_cache): |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (webkit_website_data_manager_clear): |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::deleteWebsiteData): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| (WebKit::PluginProcessManager::deleteWebsiteData): |
| * UIProcess/Plugins/PluginProcessManager.h: |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::deleteWebsiteData): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::deleteWebsiteData): |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebCookieManagerProxy.cpp: |
| (WebKit::WebCookieManagerProxy::deleteAllCookiesModifiedSince): |
| * UIProcess/WebCookieManagerProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::deleteWebsiteData): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince): |
| * UIProcess/WebStorage/StorageManager.h: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::platformRemoveRecentSearches): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::removeMediaKeys): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| (WebKit::WebsiteDataStore::platformRemoveRecentSearches): |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| (WebKit::WebsiteDataStore::platformRemoveRecentSearches): |
| * WebProcess/Cookies/WebCookieManager.cpp: |
| (WebKit::WebCookieManager::deleteAllCookiesModifiedSince): |
| * WebProcess/Cookies/WebCookieManager.h: |
| * WebProcess/Cookies/WebCookieManager.messages.in: |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::lastModifiedDateMS): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::deleteWebsiteData): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-01-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Attachment Support] Introduce data structures and IPC support for writing promised blobs |
| https://bugs.webkit.org/show_bug.cgi?id=181189 |
| |
| Reviewed by Tim Horton. |
| |
| Add IPC support for PromisedBlobInfo and PromisedBlobData. See WebCore/ChangeLog for more detail. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<PromisedBlobData>::encode): |
| (IPC::ArgumentCoder<PromisedBlobData>::decode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::encode): |
| (IPC::ArgumentCoder<PromisedBlobInfo>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| 2018-01-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r223253): Broke ResourceLoadStatistics layout tests for non-Cocoa ports |
| https://bugs.webkit.org/show_bug.cgi?id=181231 |
| |
| Reviewed by Alex Christensen. |
| |
| Add new C API for use by WebKitTestRunner. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-01-02 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Add a WebAuthentication runtime feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=181220 |
| <rdar://problem/36055305> |
| |
| Reviewed by Brent Fulgham. |
| |
| Renames the CredentialManagement runtime feature flag into WebAuthentication. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebAuthenticationEnabled): |
| (WKPreferencesGetWebAuthenticationEnabled): |
| (WKPreferencesSetCredentialManagementEnabled): Deleted. |
| (WKPreferencesGetCredentialManagementEnabled): Deleted. |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| |
| 2018-01-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r226327): [GTK] Plugin process is broken |
| https://bugs.webkit.org/show_bug.cgi?id=181187 |
| |
| Unreviewed, fix PluginProcessMainUnix after r226327. |
| |
| * PluginProcess/unix/PluginProcessMainUnix.cpp: |
| |
| 2018-01-02 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the build on platforms where UICurrentUserInterfaceIdiomIsPad is defined to false |
| https://bugs.webkit.org/show_bug.cgi?id=181218 |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| (currentUserInterfaceIdiomIsPad): |
| * UIProcess/ios/SmartMagnificationController.mm: |
| (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession setAccessoryViewCustomButtonTitle:]): |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView _updateAccessory]): |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| (-[WKAirPlayRoutePicker show:fromRect:]): |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]): |
| (-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]): |
| * UIProcess/ios/forms/WKFormInputControl.mm: |
| (-[WKDateTimePicker initWithView:datePickerMode:]): |
| (-[WKFormInputControl initWithView:]): |
| * UIProcess/ios/forms/WKFormSelectControl.mm: |
| (-[WKFormSelectControl initWithView:]): |
| On platforms where UICurrentUserInterfaceIdiomIsPad is defined to false, |
| blocks that conditionally execute based on its value are unreachable. |
| This causes the compiler to complain. Hide it away inside an inline function |
| and make use of that everywhere we used to use the macro. |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Remove SVN file accidentally added in r226160 |
| https://bugs.webkit.org/show_bug.cgi?id=180934 |
| |
| * UIProcess/WebPageProxy.cpp.orig: Removed. |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Use BlockPtrs and lambdas instead of new/delete to pass parameters to blocks in WebViewImpl::performDragOperation |
| https://bugs.webkit.org/show_bug.cgi?id=180795 |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::performDragOperation): |
| |
| 2018-01-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Implement the assignment of ProcessIdentifiers to child processes |
| https://bugs.webkit.org/show_bug.cgi?id=181187 |
| |
| Reviewed by Brady Eidson. |
| |
| * Shared/ChildProcess.cpp: Make the ProcessIdentifier mandatory. |
| (WebKit::ChildProcess::initialize): |
| * Shared/unix/ChildProcessMain.cpp: Initialize ChildProcessInitializationParameters with the |
| ProcessIdentifier. |
| (WebKit::ChildProcessMainBase::parseCommandLine): |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: Copy the ProcessIdentifier from |
| LaunchOptions into argv. |
| (WebKit::ProcessLauncher::launchProcess): |
| * WebProcess/wpe/WebProcessMainWPE.cpp: Expect the WPE socket ID later in the command line. |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Use new WebsiteDataStore passed in through decidePolicyForNavigation SPI |
| https://bugs.webkit.org/show_bug.cgi?id=180897 |
| <rdar://problem/35535328> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::changeWebsiteDataStore): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::pageEndUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::pageAddedToProcess): Deleted. |
| (WebKit::WebProcessPool::pageRemovedFromProcess): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::addExistingWebPage): |
| (WebKit::WebProcessProxy::removeWebPage): |
| * WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm: |
| (WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession): |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Only use CookieStorageShim when we aren't using NetworkSession |
| https://bugs.webkit.org/show_bug.cgi?id=180766 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/mac/CookieStorageShim.h: |
| * Shared/mac/CookieStorageShim.mm: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-01-02 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up context menu code |
| https://bugs.webkit.org/show_bug.cgi?id=181074 |
| |
| Reviewed by Brent Fulgham. |
| |
| Use Ref instead of RefPtr where possible. |
| Use move semantics instead of copying from const references when possible. |
| Remove dead iOS code. Reduce allocations. Add stub for WPE. |
| |
| * UIProcess/API/APIContextMenuClient.h: |
| (API::ContextMenuClient::getContextMenuFromProposedMenu): |
| (API::ContextMenuClient::getContextMenuFromProposedMenuAsync): |
| (API::ContextMenuClient::showContextMenu): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageContextMenuClient): |
| * UIProcess/API/gtk/PageClientImpl.cpp: |
| (WebKit::PageClientImpl::createContextMenuProxy): |
| * UIProcess/API/gtk/PageClientImpl.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/WebContextMenuListenerProxy.cpp: |
| (WebKit::WebContextMenuListenerProxy::useContextMenuItems): |
| * UIProcess/WebContextMenuProxy.cpp: |
| (WebKit::WebContextMenuProxy::WebContextMenuProxy): |
| * UIProcess/WebContextMenuProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::showContextMenu): |
| (WebKit::WebPageProxy::internalShowContextMenu): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/gtk/WebContextMenuProxyGtk.cpp: |
| (WebKit::WebContextMenuProxyGtk::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk): |
| * UIProcess/gtk/WebContextMenuProxyGtk.h: |
| (WebKit::WebContextMenuProxyGtk::create): |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::createContextMenuProxy): Deleted. |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::createContextMenuProxy): |
| * UIProcess/mac/WebContextMenuProxyMac.h: |
| (WebKit::WebContextMenuProxyMac::create): |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac): |
| (WebKit::WebContextMenuProxyMac::showContextMenuWithItems): |
| (WebKit::WebContextMenuProxyMac::showContextMenu): |
| |
| == Rolled over to ChangeLog-2018-01-01 == |