| 2018-12-19 Chris Dumez <cdumez@apple.com> |
| |
| wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from |
| https://bugs.webkit.org/show_bug.cgi?id=192728 |
| <rdar://problem/46746779> |
| |
| Reviewed by Geoff Garen. |
| |
| * NetworkProcess/*: |
| * Platform/*: |
| * Scripts/*: |
| * Shared/*: |
| * UIProcess/*: |
| * WebProcess/*: |
| |
| 2018-12-19 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, silence -Wpragmas warning |
| |
| * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: |
| |
| 2018-12-19 Vivek Seth <v_seth@apple.com> |
| |
| HTTPS Upgrade: Use full sqlite upgrade list |
| https://bugs.webkit.org/show_bug.cgi?id=192736 |
| <rdar://problem/45851427> |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.cpp: Added. |
| (WebKit::NetworkHTTPSUpgradeCheckerDatabasePath): |
| (WebKit::NetworkHTTPSUpgradeChecker::NetworkHTTPSUpgradeChecker): |
| (WebKit::NetworkHTTPSUpgradeChecker::~NetworkHTTPSUpgradeChecker): |
| (WebKit::NetworkHTTPSUpgradeChecker::query): |
| (WebKit::NetworkHTTPSUpgradeChecker::isAlwaysOnLoggingAllowed const): |
| * NetworkProcess/NetworkHTTPSUpgradeChecker.h: Added. |
| (WebKit::NetworkHTTPSUpgradeChecker::didSetupCompleteSuccessfully const): |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const): |
| (WebKit::NetworkLoadChecker::checkRequest): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::networkHTTPSUpgradeChecker): |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-12-19 Tim Horton <timothy_horton@apple.com> |
| |
| Use delegate instead of drawingDelegate in WKDrawingView |
| https://bugs.webkit.org/show_bug.cgi?id=192899 |
| <rdar://problem/46733339> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]): |
| Do the dance. |
| |
| 2018-12-19 Alex Christensen <achristensen@webkit.org> |
| |
| Navigations away from the SafeBrowsing interstitial show a flash of old content |
| https://bugs.webkit.org/show_bug.cgi?id=192676 |
| |
| Reviewed by Chris Dumez. |
| |
| When a user clicks through a safe browsing warning, do not remove the warning until content is drawn for the destination. |
| Otherwise, the user will confusingly see the page before the warning while the navigation happens. |
| We can only do this for warnings caused by main frame navigations, though. Other warnings (such as those caused by iframes) |
| need to be cleared immediately, and we still need to clear the warning immediately if the user has said to go back. |
| |
| This change is reflected in an updated API test. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _showSafeBrowsingWarning:completionHandler:]): |
| * UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm: |
| (WebKit::SafeBrowsingWarning::SafeBrowsingWarning): |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.h: |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (-[WKSafeBrowsingWarning forMainFrameNavigation]): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::showSafeBrowsingWarning): |
| (WebKit::WebViewImpl::clearSafeBrowsingWarningIfForMainFrameNavigation): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::clearSafeBrowsingWarningIfForMainFrameNavigation): |
| * UIProcess/SafeBrowsingWarning.h: |
| (WebKit::SafeBrowsingWarning::create): |
| (WebKit::SafeBrowsingWarning::forMainFrameNavigation const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReachLayoutMilestone): |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::clearSafeBrowsingWarningIfForMainFrameNavigation): |
| |
| 2018-12-19 Tim Horton <timothy_horton@apple.com> |
| |
| UI process crash when focusing an editable image |
| https://bugs.webkit.org/show_bug.cgi?id=192839 |
| <rdar://problem/46786670> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView inputView]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView _installInkPickerForDrawingViewWithID:]): |
| (-[WKContentView _uninstallInkPicker]): |
| * UIProcess/ios/WKInkPickerView.h: Renamed from Source/WebKit/UIProcess/ios/WKInkPickerControl.h. |
| * UIProcess/ios/WKInkPickerView.mm: Renamed from Source/WebKit/UIProcess/ios/WKInkPickerControl.mm. |
| (-[WKInkPickerView initWithDrawingView:]): |
| (-[WKInkPickerView didPickInk]): |
| (-[WKInkPickerView inlineInkPickerDidToggleRuler:]): |
| (-[WKInkPickerView inlineInkPicker:didSelectTool:]): |
| (-[WKInkPickerView inlineInkPicker:didSelectColor:]): |
| (-[WKInkPickerView inkPickerSize]): |
| (-[WKInkPickerView layoutSubviews]): |
| (-[WKInkPickerView sizeThatFits:]): |
| (-[WKInkPickerView viewControllerForPopoverPresentationFromInlineInkPicker:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| Make WKInkPickerView a WKWebView subview instead of an inputView. |
| Also, don't force the keyboard to be visible when an editable image is focused. |
| |
| 2018-12-19 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Force system camera/microphone TCC prompt if necessary |
| https://bugs.webkit.org/show_bug.cgi?id=192820 |
| <rdar://problem/42680098> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Enable TCC check |
| and prompt on Mojave. |
| |
| 2018-12-19 Megan Gardner <megan_gardner@apple.com> |
| |
| Allow clients to set the navigator platform |
| https://bugs.webkit.org/show_bug.cgi?id=192735 |
| |
| Reviewed by Tim Horton. |
| |
| Add private API to allow clients to override the default navigator |
| platform. Some websites check for the platform, which |
| interfears with our request desktop site feature. This should |
| help more sites function as expected. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::encode const): |
| (WebKit::WebsitePoliciesData::decode): |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * Shared/WebsitePoliciesData.h: |
| * UIProcess/API/APIWebsitePolicies.cpp: |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| (-[_WKWebsitePolicies setCustomNavigatorPlatform:]): |
| (-[_WKWebsitePolicies customNavigatorPlatform]): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| 2018-12-19 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r239358. |
| |
| Revision caused imported/w3c/web-platform-tests/IndexedDB/ to |
| crash on Debug bots |
| |
| Reverted changeset: |
| |
| "Clean up IndexedDB files between tests" |
| https://bugs.webkit.org/show_bug.cgi?id=192796 |
| https://trac.webkit.org/changeset/239358 |
| |
| 2018-12-18 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r239134) iOS safe browsing warning unable to show details |
| https://bugs.webkit.org/show_bug.cgi?id=192837 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (-[WKSafeBrowsingWarning addContent]): |
| I had a fragile design that relied on the internal view heirarchy structure of UIScrollView, |
| which I changed in r239134 by introducing a layout which changed where its scrollbars were in the view heirarchy. |
| I now have a more robust design that saves a WeakObjCPtr to the view I need to traverse to. |
| Testing is problematic because this had to do with scrollbars and UIScrollView internals which seem to behave |
| differently in TestWebKitAPI, but I verified manually that this fixes the issue. |
| |
| 2018-12-18 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][Clang] Fix compilation warnings under Source/WebKit directory |
| https://bugs.webkit.org/show_bug.cgi?id=192695 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cache/NetworkCacheData.cpp: |
| (makeSalt): Enclosed by #if !OS(WINDOWS). |
| * NetworkProcess/cache/NetworkCacheFileSystem.cpp: |
| (WebKit::NetworkCache::directoryEntryType): Ditto. |
| * Platform/win/ModuleWin.cpp: |
| (WebKit::Module::platformFunctionPointer const): Cast a function pointer with reinterpret_cast<void*>(). |
| * UIProcess/DrawingAreaProxyImpl.cpp: |
| (WebKit::DrawingAreaProxyImpl::DrawingMonitor::DrawingMonitor): |
| Moved the initializer of m_webPage in order to be encluded by #if PLATFORM(GTK). |
| * UIProcess/DrawingAreaProxyImpl.h: Ditto. |
| * UIProcess/Launcher/win/ProcessLauncherWin.cpp: |
| (WebKit::processName): Removed the duplicated 'const' type qualifier. |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| (WebKit::WebInspectorProxy::platformAttach): Removed an unused variable. |
| (WebKit::WebInspectorProxy::platformDetach): Ditto. |
| * UIProcess/win/WebPopupMenuProxyWin.cpp: Ditto. |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::paint): Ditto. |
| (WebKit::WebPopupMenu::setUpPlatformData): Ditto. |
| * UIProcess/win/WebPopupMenuProxyWin.h: Marked override methods with 'override'. |
| * WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.h: Ditto. |
| * WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp: Removed an unused variable. |
| |
| 2018-12-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] fast/forms/datalist/datalist-textinput-suggestions-order.html sometimes crashes after r239337 |
| https://bugs.webkit.org/show_bug.cgi?id=192836 |
| <rdar://problem/45321184> |
| |
| Reviewed by Tim Horton. |
| |
| r239337 exposed a subtle issue in the implementation of `-[WKDataListSuggestionsView updateWithInformation:]`, |
| wherein we might end up recomputing information for table view cells at rows that no longer exist. This currently |
| happens because we first set the datalist's `_suggestions`, then change the table view's frame, and then finally |
| reload the table view; however, in the case where the number of suggestions decreased and the frame changed |
| (which prompts AppKit to ask us again for table cell views), we'll attempt to access an out-of-bounds index in |
| the `_suggestions` vector. |
| |
| To address this, we change our suggestions and immediately reload the table view before updating `NSTableView`'s |
| frame, so that we only provide table view cells for rows that actually correspond to items in `_suggestions`. |
| |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (-[WKDataListSuggestionsView updateWithInformation:]): |
| |
| 2018-12-18 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky |
| https://bugs.webkit.org/show_bug.cgi?id=192061 |
| |
| Reviewed by Dewei Zhu. |
| |
| Part 4. |
| |
| Add some additional temporary logging info to determine if the time out value passed to the timer is right. |
| Once the bug is determined and fixed, we should remove all logging added in this patch. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::initTimeOutTimer): |
| |
| 2018-12-18 Sihui Liu <sihui_liu@apple.com> |
| |
| Clean up IndexedDB files between tests |
| https://bugs.webkit.org/show_bug.cgi?id=192796 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreRemoveAllIndexedDatabasesSync): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-12-18 Vivek Seth <v_seth@apple.com> |
| |
| HTTPS Upgrade: Scripts / preprocessing necessary to create new database in future |
| https://bugs.webkit.org/show_bug.cgi?id=192612 |
| <rdar://problem/46651207> |
| |
| Reviewed by Andy Estes. |
| |
| * Configurations/WebKit.xcconfig: |
| * DerivedSources.make: |
| * Scripts/generate-https-upgrade-database.sh: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-12-18 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the 32-bit watchOS build after r239314 |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| |
| 2018-12-18 Alex Christensen <achristensen@webkit.org> |
| |
| WKWebView has old URL while displaying SafeBrowsing interstitial, for link-click navigations |
| https://bugs.webkit.org/show_bug.cgi?id=192675 |
| |
| Reviewed by Geoffrey Garen. |
| |
| When a safe browsing warning is being shown, WKWebView.URL should be the unsafe website, not the safe website before it. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]): |
| (-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm: |
| (WebKit::SafeBrowsingWarning::SafeBrowsingWarning): |
| * UIProcess/SafeBrowsingWarning.h: |
| (WebKit::SafeBrowsingWarning::create): |
| (WebKit::SafeBrowsingWarning::url const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-12-18 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r239182) SuspendedPage's process reuse for link navigation optimization sometimes broken |
| https://bugs.webkit.org/show_bug.cgi?id=192772 |
| |
| Reviewed by Antti Koivisto. |
| |
| With r239182, if the page in the previous process would fail to enter PageCache, we would destroy |
| the corresponding SuspendedPageProxy, which would potentially terminate the process. This would |
| regress performance when trying to navigate back in history to that page. This would also regress |
| performance when link-navigating to the same domain as we would have previously reused the suspended |
| page's process for such navigation. |
| |
| Address the issue by keeping the SuspendedPageProxy alive even if the WebPage fails to suspend. |
| When trying to reuse a SuspendedPageProxy, if the page failed to suspend, reuse its process but |
| not the suspended page itself. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::waitUntilReadyToUnsuspend): |
| (WebKit::SuspendedPageProxy::unsuspend): |
| (WebKit::SuspendedPageProxy::didSuspend): |
| (WebKit::SuspendedPageProxy::didFailToSuspend): |
| (WebKit::SuspendedPageProxy::loggingString const): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::swapToWebProcess): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| 2018-12-17 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky |
| https://bugs.webkit.org/show_bug.cgi?id=192061 |
| |
| Reviewed by Dewei Zhu. |
| |
| Part 3. |
| |
| Add some additional temporary logging info to determine if the timer is working as expected. |
| Once the bug is determined and fixed, we should remove all logging added in this patch. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::initTimeOutTimer): |
| (WebKit::AuthenticatorManager::timeOutTimerFired): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::respondReceivedInternal): |
| |
| 2018-12-17 Saam barati <sbarati@apple.com> |
| |
| Enable HTTP and HTTPS proxies on iOS and make it a property of the NSURLSession |
| https://bugs.webkit.org/show_bug.cgi?id=192374 |
| <rdar://problem/46506286> |
| |
| Reviewed by Alex Christensen. |
| |
| This patch makes it so that we can use HTTP/HTTPS proxies on iOS as well. |
| To enable on iOS, you can do something like: |
| $ defaults write -g WebKit2HTTPProxy -string "http://localhost:8080" |
| $ defaults write -g WebKit2HTTPSProxy -string "http://localhost:8080" |
| |
| This patch also changes the Proxy to be enabled on a per NSURLSession |
| basis instead of a per process basis. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::privateSessionParameters): |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::proxyDictionary): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcess): |
| (WebKit::overrideSystemProxies): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration httpProxy]): |
| (-[_WKWebsiteDataStoreConfiguration setHTTPProxy:]): |
| (-[_WKWebsiteDataStoreConfiguration httpsProxy]): |
| (-[_WKWebsiteDataStoreConfiguration setHTTPSProxy:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::httpProxy const): |
| (WebKit::WebsiteDataStoreConfiguration::setHTTPProxy): |
| (WebKit::WebsiteDataStoreConfiguration::httpsProxy const): |
| (WebKit::WebsiteDataStoreConfiguration::setHTTPSProxy): |
| |
| 2018-12-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Tap highlights should not be shown on iOSMac |
| https://bugs.webkit.org/show_bug.cgi?id=192797 |
| <rdar://problem/46793995> |
| |
| Reviewed by Tim Horton. |
| |
| WKWebViews in iOSMac should avoid painting tap highlights, since tap highlights are not present in the rest of |
| the macOS platform. Simply disable this functionality by bailing in `-[WKContentView _showTapHighlight]`. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showTapHighlight]): |
| |
| 2018-12-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the iOSMac engineering build again |
| |
| After r239311, `WebProcessProxy::fullKeyboardAccessEnabled` in `WebProcessProxyIOS.mm` attempts to use |
| `WKFullKeyboardAccessWatcher`, which is guarded by `ENABLE(FULL_KEYBOARD_ACCESS)`. However, on iOSMac, |
| `ENABLE(FULL_KEYBOARD_ACCESS)` is 0. Fix the build by putting access to `WKFullKeyboardAccessWatcher` behind |
| `ENABLE(FULL_KEYBOARD_ACCESS)`. |
| |
| * UIProcess/ios/WebProcessProxyIOS.mm: |
| (WebKit::WebProcessProxy::fullKeyboardAccessEnabled): |
| |
| 2018-12-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the iOSMac engineering build |
| |
| `generateRequestID()` is only invoked from code under `ENABLE(MEDIA_STREAM)`; move it under this guard to avoid |
| an unused function warning. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| |
| 2018-12-17 David Kilzer <ddkilzer@apple.com> |
| |
| clang-tidy: Fix unnecessary object copy in CPUMonitor::setCPULimit() |
| <https://webkit.org/b/192707> |
| <rdar://problem/46734926> |
| |
| Reviewed by Daniel Bates. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::updateCPUMonitorState): |
| - Pass m_cpuLimit directly since getting its value causes an |
| identical std::optional<double> to be created unnecessarily. |
| |
| 2018-12-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Focusing a large editable element always scrolls to the top of the element |
| https://bugs.webkit.org/show_bug.cgi?id=192745 |
| <rdar://problem/46758445> |
| |
| Reviewed by Tim Horton. |
| |
| Currently, when focusing form controls or editable elements, we try to scroll such that the focused element rect |
| is centered within the visible area. In the case of very large focusable elements whose dimensions exceed the |
| width or height of the visible area, we instead scroll such that the top left point of the element is at the top |
| left corner of the visible area. |
| |
| However, this results in unnecessary scrolling if the top of the element is already near the top of the visible |
| area. For WebKit2-based rich text editors that have an editable body element with a top content inset that |
| contains additional content, this means we will always scroll the additional content away when focusing the |
| editable body. |
| |
| To avoid this behavior, adjust focused element zooming logic for editable elements that are too large to be |
| centered in the visible area, such that we only scroll the top left position of the focused element to the top |
| half or top right of the visible area, respectively. This reduces the amount of scrolling when focusing large |
| editable elements, while still making it clear which element is being focused. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): |
| |
| Make some small adjustments to improve the readability of this method by using `clampTo` instead of clamping |
| values by comparing and setting values. |
| |
| Also, fix an existing bug wherein focusable elements that are meant to be centered within the visible area are |
| currently offset by half the difference between the bottom inset amount and the top inset amount, in the case |
| where the `_obscuredInsets` SPI is used to specify content insets for the web view (i.e., MobileSafari). |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| |
| Make a couple of arguments `const FloatRect&` instead of just `FloatRect`. |
| |
| 2018-12-17 Ryosuke Niwa <rniwa@webkit.org> |
| |
| offsetLeft and offsetParent should adjust across shadow boundaries |
| https://bugs.webkit.org/show_bug.cgi?id=157437 |
| <rdar://problem/26154021> |
| |
| Reviewed by Simon Fraser. |
| |
| Use *forBindings variants of offsetLeft, offsetTop, and offsetParent. |
| |
| * WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp: |
| (webkit_dom_element_get_offset_left): |
| (webkit_dom_element_get_offset_top): |
| (webkit_dom_element_get_offset_parent): |
| |
| 2018-12-17 Chris Fleizach <cfleizach@apple.com> |
| |
| Some builds are broken after r239262 |
| https://bugs.webkit.org/show_bug.cgi?id=192777 |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/AccessibilitySupportSPI.h: |
| * UIProcess/Cocoa/WKFullKeyboardAccessWatcher.h: |
| * UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm: |
| (platformIsFullKeyboardAccessEnabled): |
| (-[WKFullKeyboardAccessWatcher init]): |
| Fix the build by being more clear about when it's OK to use AccessibilitySupport. |
| |
| 2018-12-17 Chris Dumez <cdumez@apple.com> |
| |
| Allow passing nil as session state to [WKWebView _restoreSessionState:] |
| https://bugs.webkit.org/show_bug.cgi?id=192789 |
| <rdar://problem/46755277> |
| |
| Reviewed by Alex Christensen. |
| |
| Allow passing nil as session state to [WKWebView _restoreSessionState:] instead of crashing. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _restoreSessionState:andNavigate:]): |
| |
| 2018-12-17 Alex Christensen <achristensen@webkit.org> |
| |
| Fix occasional null-dereference crash in WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame |
| https://bugs.webkit.org/show_bug.cgi?id=192744 |
| <rdar://problem/45842668> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| Things happen. Navigations can be null. If they are, we shouldn't dereference pointers to them. |
| |
| 2018-12-17 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, revert recent CrashReporterClient build fixes as they are no longer needed. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| |
| 2018-12-17 Suresh Koppisetty <skoppisettyt@apple.com> |
| |
| Rollout r235411 |
| https://bugs.webkit.org/show_bug.cgi?id=192778 |
| <rdar://46789485> |
| |
| Disabling access to CoreServices is causing a performance |
| regression in process launch time. See <rdar://46141878> |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-12-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed WPE build fix after r239277. |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextClearCurrentModifierStateForTesting): |
| Use the WebKit:: namespace specifier as it is used across this file. |
| |
| 2018-12-17 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r239265 and r239274. |
| https://bugs.webkit.org/show_bug.cgi?id=192765 |
| |
| unorm_normalize is deprecated, and broke an internal build |
| (Requested by Truitt on #webkit). |
| |
| Reverted changesets: |
| |
| "[GTK][WPE] Need a function to convert internal URI to display |
| ("pretty") URI" |
| https://bugs.webkit.org/show_bug.cgi?id=174816 |
| https://trac.webkit.org/changeset/239265 |
| |
| "Fix the Apple Internal Mac build with a newer SDK" |
| https://trac.webkit.org/changeset/239274 |
| |
| 2018-12-17 Daniel Bates <dabates@apple.com> |
| |
| Implement UIScriptController::toggleCapsLock() for iOS |
| https://bugs.webkit.org/show_bug.cgi?id=191815 |
| |
| Reviewed by Andy Estes. |
| |
| Add test infrastructure to clear the current modifier state. We will use this to ensure that |
| the caps lock state does not persist between tests. |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextClearCurrentModifierStateForTesting): Added. |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::clearCurrentModifierStateForTesting): Added. |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::clearCurrentModifierStateForTesting): Added. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-12-17 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r239262): Fix broken builds prior to Mojave |
| <https://bugs.webkit.org/show_bug.cgi?id=192373> |
| <rdar://problem/46462670> |
| |
| * UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm: |
| Wrap header in ENABLE(ACCESSIBILITY_EVENTS) to fix the build. |
| |
| 2018-12-17 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Remove -[WebEvent initWithKeyEventType:...:characterSet:] |
| https://bugs.webkit.org/show_bug.cgi?id=192633 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Update code to use the modern initializer. |
| |
| * UIProcess/ios/WKWebEvent.mm: |
| (-[WKWebEvent initWithEvent:]): |
| |
| 2018-12-17 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r239254. |
| |
| This broke the Windows 10 Debug build |
| |
| Reverted changeset: |
| |
| "Replace many uses of String::format with more type-safe |
| alternatives" |
| https://bugs.webkit.org/show_bug.cgi?id=192742 |
| https://trac.webkit.org/changeset/239254 |
| |
| 2018-12-17 David Kilzer <ddkilzer@apple.com> |
| |
| clang-tidy: loop variable is copied but only used as const reference in WebCore, WebKit, Tools |
| <https://webkit.org/b/192751> |
| <rdar://problem/46771623> |
| |
| Reviewed by Daniel Bates. |
| |
| Change loop variables to const references to avoid unnecessary |
| copies. |
| |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| (WebKit::WebSWServerConnection::~WebSWServerConnection): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::encode const): |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::toNSErrors): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::setFilesToSelectForFileUpload): |
| (WebKit::WebAutomationSession::performKeyboardInteractions): |
| (WebKit::WebAutomationSession::performInteractionSequence): |
| * UIProcess/Plugins/PluginProcessManager.cpp: |
| (WebKit::PluginProcessManager::getPluginProcess): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::removeDataRecords): |
| (WebKit::ResourceLoadStatisticsMemoryStore::shouldRemoveDataRecords const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::serializedAttachmentDataForIdentifiers): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::deleteAllDatabases): |
| (WebKit::LocalStorageDatabaseTracker::origins const): |
| (WebKit::LocalStorageDatabaseTracker::originDetails): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_shouldAttachDrawingAreaOnPageTransition): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::didUpdateActivityStateTimerFired): |
| |
| 2018-12-17 Ms2ger <Ms2ger@igalia.com> |
| |
| [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI |
| https://bugs.webkit.org/show_bug.cgi?id=174816 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add webkit_uri_for_display for GTK and WPE. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/glib/WebKitURIUtilities.cpp: Added. |
| (webkit_uri_for_display): |
| * UIProcess/API/gtk/WebKitURIUtilities.h: Added. |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| * UIProcess/API/gtk/webkit2.h: |
| * UIProcess/API/wpe/WebKitURIUtilities.h: Added. |
| * UIProcess/API/wpe/docs/wpe-0.1-sections.txt: |
| * UIProcess/API/wpe/docs/wpe-docs.sgml: |
| * UIProcess/API/wpe/webkit.h: |
| |
| 2018-12-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Add API to notify about frame displayed view backend callback |
| https://bugs.webkit.org/show_bug.cgi?id=192224 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add API to add a callback to the view to be called when the view backend notifies that a frame has been |
| displayed. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (FrameDisplayedCallback::FrameDisplayedCallback): |
| (FrameDisplayedCallback::~FrameDisplayedCallback): |
| (webkit_web_view_add_frame_displayed_callback): |
| (webkit_web_view_remove_frame_displayed_callback): |
| * UIProcess/API/wpe/WebKitWebView.h: |
| * UIProcess/API/wpe/docs/wpe-0.1-sections.txt: |
| |
| 2018-12-16 Chris Fleizach <cfleizach@apple.com> |
| |
| AX: Support keyboard access preference for iOS in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=192373 |
| <rdar://problem/46462670> |
| |
| Reviewed by Tim Horton. |
| |
| * Platform/spi/ios/AccessibilitySupportSPI.h: |
| * PlatformMac.cmake: |
| * SourcesCocoa.txt: |
| * UIProcess/Cocoa/WKFullKeyboardAccessWatcher.h: Added. |
| * UIProcess/Cocoa/WKFullKeyboardAccessWatcher.mm: Added. |
| (platformIsFullKeyboardAccessEnabled): |
| (-[WKFullKeyboardAccessWatcher notifyAllProcessPools]): |
| (-[WKFullKeyboardAccessWatcher retrieveKeyboardUIModeFromPreferences:]): |
| (-[WKFullKeyboardAccessWatcher init]): |
| (+[WKFullKeyboardAccessWatcher fullKeyboardAccessEnabled]): |
| * UIProcess/ios/WebProcessProxyIOS.mm: |
| (WebKit::WebProcessProxy::fullKeyboardAccessEnabled): |
| * UIProcess/mac/WKFullKeyboardAccessWatcher.h: Removed. |
| * UIProcess/mac/WKFullKeyboardAccessWatcher.mm: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-12-16 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unreviewed follow up after r239260 |
| https://bugs.webkit.org/show_bug.cgi?id=192714 |
| <rdar://problem/46762407> |
| |
| * Platform/win/SharedMemoryWin.cpp: |
| (WebKit::SharedMemory::allocate): Use PAGE_READWRITE directly instead |
| of going through the protectAttribute() function, which is removed |
| because it is now unused. |
| |
| 2018-12-16 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Unify SharedMemory factory functions |
| https://bugs.webkit.org/show_bug.cgi?id=192714 |
| |
| Reviewed by Darin Adler. |
| |
| This unifies SharedMemory so in the following way, across platforms: |
| |
| - SharedMemory::create() is removed, to avoid ambiguity. |
| - SharedMemory::allocate() always allocates a new block of shared memory. |
| - SharedMemory::wrapMap() always creates a SharedMemory object which refers to an |
| existing region of memory resulting from memory-mapping a file. |
| |
| * NetworkProcess/cache/NetworkCacheDataCocoa.mm: |
| (WebKit::NetworkCache::Data::tryCreateSharedMemory const): Use SharedMemory::wrapMap(). |
| * Platform/SharedMemory.h: Remove the definition of SharedMemory::create(), and make |
| SharedMemory::wrapMap() available on OS(DARWIN) as well. |
| * Platform/cocoa/SharedMemoryCocoa.cpp: |
| (WebKit::SharedMemory::wrapMap): Renamed from ::create(). |
| * Platform/unix/SharedMemoryUnix.cpp: |
| (WebKit::SharedMemory::allocate): Renamed from ::create(). |
| * Platform/win/SharedMemoryWin.cpp: |
| (WebKit::SharedMemory::allocate): Renamed from ::create() |
| * UIProcess/API/APIContentRuleListStore.cpp: |
| (API::createExtension): Use NetworkCache::Data::tryCreateSharedMemory() instead of |
| SharedMemory::create(). |
| |
| 2018-12-15 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Darin Adler. |
| |
| Part 7: Files in UIProcess/API |
| |
| * UIProcess/API/APIContentRuleListStore.cpp: |
| * UIProcess/API/APIHitTestResult.cpp: |
| * UIProcess/API/APINavigation.cpp: |
| * UIProcess/API/APIOpenPanelParameters.cpp: |
| * UIProcess/API/APIPageConfiguration.cpp: |
| * UIProcess/API/C/WKApplicationCacheManager.cpp: |
| (WKApplicationCacheManagerGetTypeID): |
| (WKApplicationCacheManagerGetApplicationCacheOrigins): |
| (WKApplicationCacheManagerDeleteEntriesForOrigin): |
| (WKApplicationCacheManagerDeleteAllEntries): |
| * UIProcess/API/C/WKAuthenticationDecisionListener.cpp: |
| (WKAuthenticationDecisionListenerGetTypeID): |
| (WKAuthenticationDecisionListenerUseCredential): |
| (WKAuthenticationDecisionListenerCancel): |
| (WKAuthenticationDecisionListenerRejectProtectionSpaceAndContinue): |
| * UIProcess/API/C/WKBackForwardListItemRef.cpp: |
| (WKBackForwardListItemGetTypeID): |
| (WKBackForwardListItemCopyURL): |
| (WKBackForwardListItemCopyTitle): |
| (WKBackForwardListItemCopyOriginalURL): |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextGetTypeID): |
| (WKContextCreate): |
| (WKContextCreateWithInjectedBundlePath): |
| (WKContextCreateWithConfiguration): |
| (WKContextSetClient): |
| (WKContextSetInjectedBundleClient): |
| (WKContextSetHistoryClient): |
| (WKContextSetDownloadClient): |
| (WKContextSetConnectionClient): |
| (WKContextDownloadURLRequest): |
| (WKContextResumeDownload): |
| (WKContextSetInitializationUserDataForInjectedBundle): |
| (WKContextPostMessageToInjectedBundle): |
| (WKContextGetGlobalStatistics): |
| (WKContextAddVisitedLink): |
| (WKContextClearVisitedLinks): |
| (WKContextSetCacheModel): |
| (WKContextGetCacheModel): |
| (WKContextSetMaximumNumberOfProcesses): |
| (WKContextGetMaximumNumberOfProcesses): |
| (WKContextSetAlwaysUsesComplexTextCodePath): |
| (WKContextSetShouldUseFontSmoothing): |
| (WKContextSetAdditionalPluginsDirectory): |
| (WKContextRefreshPlugIns): |
| (WKContextRegisterURLSchemeAsEmptyDocument): |
| (WKContextRegisterURLSchemeAsSecure): |
| (WKContextRegisterURLSchemeAsBypassingContentSecurityPolicy): |
| (WKContextRegisterURLSchemeAsCachePartitioned): |
| (WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequest): |
| (WKContextSetDomainRelaxationForbiddenForURLScheme): |
| (WKContextSetCanHandleHTTPSServerTrustEvaluation): |
| (WKContextSetPrewarmsProcessesAutomatically): |
| (WKContextSetCustomWebContentServiceBundleIdentifier): |
| (WKContextSetDiskCacheSpeculativeValidationEnabled): |
| (WKContextPreconnectToServer): |
| (WKContextGetCookieManager): |
| (WKContextGetWebsiteDataStore): |
| (WKContextGetGeolocationManager): |
| (WKContextGetMediaSessionFocusManager): |
| (WKContextGetNotificationManager): |
| (WKContextStartMemorySampler): |
| (WKContextStopMemorySampler): |
| (WKContextAllowSpecificHTTPSCertificateForHost): |
| (WKContextDisableProcessTermination): |
| (WKContextEnableProcessTermination): |
| (WKContextSetHTTPPipeliningEnabled): |
| (WKContextWarmInitialProcess): |
| (WKContextGetStatistics): |
| (WKContextGetStatisticsWithOptions): |
| (WKContextJavaScriptConfigurationFileEnabled): |
| (WKContextSetJavaScriptConfigurationFileEnabled): |
| (WKContextGarbageCollectJavaScriptObjects): |
| (WKContextSetJavaScriptGarbageCollectorTimerEnabled): |
| (WKContextUseTestingNetworkSession): |
| (WKContextSetAllowsAnySSLCertificateForWebSocketTesting): |
| (WKContextSetAllowsAnySSLCertificateForServiceWorkerTesting): |
| (WKContextClearCachedCredentials): |
| (WKContextCopyPlugInAutoStartOriginHashes): |
| (WKContextSetPlugInAutoStartOriginHashes): |
| (WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime): |
| (WKContextSetPlugInAutoStartOrigins): |
| (WKContextSetInvalidMessageFunction): |
| (WKContextSetMemoryCacheDisabled): |
| (WKContextSetFontWhitelist): |
| (WKContextTerminateNetworkProcess): |
| (WKContextTerminateServiceWorkerProcess): |
| (WKContextGetNetworkProcessIdentifier): |
| (WKContextAddSupportedPlugin): |
| (WKContextClearSupportedPlugins): |
| (WKContextSetIDBPerOriginQuota): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageLoadURLWithShouldOpenExternalURLsPolicy): |
| (WKPageLoadURLWithUserData): |
| (WKPageLoadURLRequestWithUserData): |
| (WKPageSetPaginationMode): |
| (WKPageGetPaginationMode): |
| (WKPageSetPageLoaderClient): |
| (WKPageSetPagePolicyClient): |
| * UIProcess/API/C/cg/WKIconDatabaseCG.cpp: |
| |
| 2018-12-15 Darin Adler <darin@apple.com> |
| |
| Use warning-ignoring macros more consistently and simply |
| https://bugs.webkit.org/show_bug.cgi?id=192743 |
| |
| Reviewed by Mark Lam. |
| |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]): |
| Use ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END. |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): Ditto. |
| |
| * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: Use |
| IGNORE_WARNINGS_BEGIN/END instead of IGNORE_CLANG_WARNINGS_BEGIN/END |
| because there is no need to accomodate non-clang compilers here. |
| Also use #pragma once, add a missing "explicit", and fix conditionals. |
| |
| 2018-12-15 Darin Adler <darin@apple.com> |
| |
| Replace many uses of String::format with more type-safe alternatives |
| https://bugs.webkit.org/show_bug.cgi?id=192742 |
| |
| Reviewed by Mark Lam. |
| |
| * Shared/WebMemorySampler.cpp: |
| (WebKit::WebMemorySampler::writeHeaders): Use makeString. |
| |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticator::makeCredential): Use string concatentation. |
| |
| * UIProcess/WebInspectorUtilities.cpp: |
| (WebKit::inspectorPageGroupIdentifierForPage): Use makeString. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processDidFinishLaunching): Ditto. |
| (WebKit::WebProcessPool::startMemorySampler): Ditto. |
| |
| 2018-12-14 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, fix the build with recent SDKs. |
| |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]): |
| |
| 2018-12-14 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky |
| https://bugs.webkit.org/show_bug.cgi?id=192061 |
| |
| Reviewed by Dewei Zhu. |
| |
| Part 2. |
| |
| Add some additional temporary logging info. Since the failure cannot be reproduced easily by human, we have to |
| rely on the test infrastructure to reporoduce it. Once the bug is determined and fixed, we should remove all |
| logging added in this patch. |
| |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: |
| (WebKit::HidService::deviceAdded): |
| * UIProcess/WebAuthentication/fido/CtapHidAuthenticator.cpp: |
| (WebKit::CtapHidAuthenticator::makeCredential): |
| (WebKit::CtapHidAuthenticator::getAssertion): |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.cpp: |
| (WebKit::CtapHidDriver::Worker::write): |
| (WebKit::CtapHidDriver::Worker::read): |
| (WebKit::CtapHidDriver::Worker::returnMessage): |
| (WebKit::CtapHidDriver::transact): |
| (WebKit::CtapHidDriver::continueAfterChannelAllocated): |
| (WebKit::CtapHidDriver::continueAfterResponseReceived): |
| |
| 2018-12-14 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK] Unreviewed build fix. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: Add missing WebPolicyAction.h include. |
| |
| 2018-12-14 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix assertion failure in API test after r239210. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::createDocumentLoader): |
| |
| 2018-12-14 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [SOUP] Unreviewed build fix after r239219 |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse): Remove |
| handling of PolicyAction::Suspend, which is no longer available. |
| |
| 2018-12-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed, apply post-landing review comments after r239221. |
| |
| * UIProcess/WebPageDebuggable.cpp: |
| (WebKit::WebPageDebuggable::url const): |
| Switch to WTF::blankURL() instead of using "about:blank" directly. |
| |
| 2018-12-14 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Process-swapping on a loadHTMLString causes duplicate decidePolicyForNavigationAction delegate calls |
| https://bugs.webkit.org/show_bug.cgi?id=192704 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Process-swapping on a loadHTMLString causes duplicate decidePolicyForNavigationAction delegate calls. This |
| is because we were failing to pass the ShouldTreatAsContinuingLoad flag to the WebContent process when |
| doing a LoadData. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadData): |
| (WebKit::WebPageProxy::loadDataWithNavigation): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadDataImpl): |
| (WebKit::WebPage::loadData): |
| (WebKit::WebPage::loadAlternateHTML): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-12-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Prefer "about:blank" instead of an empty string for WebPageDebuggable url |
| https://bugs.webkit.org/show_bug.cgi?id=192691 |
| <rdar://problem/46719798> |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/WebPageDebuggable.cpp: |
| (WebKit::WebPageDebuggable::url const): |
| Instead of an empty string, return "about:blank" in bail cases. |
| When inspecting the page that matches the contents. |
| |
| 2018-12-14 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Stop exposing PolicyAction::Suspend to WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=192701 |
| |
| Reviewed by Brady Eidson. |
| |
| Introduce a new WebPolicyAction enum that is used at WebKit2 layer and augments |
| WebCore::PolicyAction with a "Suspend" value. |
| |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (toNSURLSessionResponseDisposition): |
| * Shared/WebPolicyAction.h: Added. |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| (WebKit::WebFramePolicyListenerProxy::download): |
| (WebKit::WebFramePolicyListenerProxy::ignore): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::receivedPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::toPolicyAction): |
| (WebKit::WebFrame::didReceivePolicyDecision): |
| * WebProcess/WebPage/WebFrame.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didReceivePolicyDecision): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-12-14 David Quesada <david_quesada@apple.com> |
| |
| Remove a global 'using namespace WebKit' in WebViewImpl.mm |
| https://bugs.webkit.org/show_bug.cgi?id=192690 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKTextListTouchBarViewController initWithWebViewImpl:]): |
| (-[WKTextListTouchBarViewController _selectList:]): |
| (-[WKTextListTouchBarViewController setCurrentListType:]): |
| (-[WKTextTouchBarItemController initWithWebViewImpl:]): |
| |
| 2018-12-14 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] WebsitePolicies are lost on process-swap |
| https://bugs.webkit.org/show_bug.cgi?id=192694 |
| <rdar://problem/46715748> |
| |
| Reviewed by Brady Eidson. |
| |
| In case of process-swap on navigation, instead of sending the websitePolicies to the old |
| process, send them to the new process as we trigger the navigation. We tell the new process |
| that it is continuing a load and it will therefore not re-trigger a decidePolicyForNavigationAction. |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcessForReload): |
| (WebKit::WebPageProxy::reattachToWebProcessWithItem): |
| (WebKit::WebPageProxy::loadRequestWithNavigation): |
| (WebKit::WebPageProxy::loadDataWithNavigation): |
| (WebKit::WebPageProxy::goToBackForwardItem): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| (WebKit::WebPage::loadDataImpl): |
| (WebKit::WebPage::loadData): |
| (WebKit::WebPage::loadAlternateHTML): |
| (WebKit::WebPage::goToBackForwardItem): |
| (WebKit::WebPage::createDocumentLoader): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-12-14 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Fix forwarding webkit socket to flatpak sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=192622 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This fixes running with the sandbox enabled in Flatpak. |
| |
| * UIProcess/Launcher/glib/FlatpakLauncher.cpp: |
| (WebKit::flatpakSpawn): |
| * UIProcess/Launcher/glib/FlatpakLauncher.h: |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2018-12-14 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Use new view state API from libwpe |
| https://bugs.webkit.org/show_bug.cgi?id=191906 |
| |
| Reviewed by Žan Doberšek. |
| |
| Remove WKViewSetViewState from the C API. |
| |
| * UIProcess/API/C/wpe/WKAPICastWPE.h: |
| * UIProcess/API/C/wpe/WKView.cpp: |
| * UIProcess/API/C/wpe/WKView.h: |
| * UIProcess/API/wpe/WPEView.cpp: |
| (WKWPE::View::View): Add implementation for activity_state_changed vfunc of the view backend client.): |
| (WKWPE::View::setViewState): Remove the default flags. |
| * UIProcess/API/wpe/WPEView.h: |
| (WKWPE::View::setViewState const): Make it private. |
| |
| 2018-12-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [iOS] Web Inspector: Occasional UIProcess crashes under WebPageProxy::showInspectorIndication |
| https://bugs.webkit.org/show_bug.cgi?id=192689 |
| <rdar://problem/46323610> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| * UIProcess/WebPageProxy.h: |
| Don't wait until ~WebPageProxy to destroy the WebPageProxyDebuggable |
| which broadcasts it as a remote inspector target. Terminate this |
| as soon as the WebPageProxy closes and becomes invalid. |
| |
| 2018-12-13 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed build fix for tvOS. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| |
| 2018-12-13 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed build fix for tvOS. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| |
| 2018-12-13 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] We should not need to navigate to 'about:blank' to suspend pages |
| https://bugs.webkit.org/show_bug.cgi?id=192668 |
| <rdar://problem/46701466> |
| |
| Reviewed by Alex Christensen. |
| |
| To support PageCache when process-swap on cross-site navigation is enabled, |
| we've been navigating the previous process to 'about:blank' when swapping. |
| This would trigger PageCaching of the page in the old process. While |
| convenient, this design has led to a lot of bugs because we did not really |
| want a navigation to happen in the old process. |
| |
| To address the issue, when a WebPage is asked to suspend (for process-swap), |
| we now attempt to add it to PageCache and save it on the current HistoryItem, |
| *without* triggering any navigation. Any pending navigation gets cancelled |
| and we just suspend in place. |
| |
| Later on, when we want to go back to this HistoryItem, we simply leverage the |
| existing WebPage::goToBackForwardItem() code path. The only subtlety is that |
| we're actually asking the WebPage to load a HistoryItem that is the current |
| one in the History. I had to tweak a some logic / assertions to support this |
| as this is not something we usually do. However, it actually works with very |
| little changes and successfully restores the PageCache entry on the current |
| HistoryItem. |
| |
| There is no expected overall behavior change and ProcessSwap API tests (which |
| cover PageCache) still pass. This is merely a simpler design because it avoids |
| navigating to about:blank. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::didSuspend): |
| (WebKit::SuspendedPageProxy::didReceiveMessage): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didSuspendAfterProcessSwap): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| * WebProcess/WebPage/WebDocumentLoader.cpp: |
| (WebKit::WebDocumentLoader::setNavigationID): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::didReceivePolicyDecision): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::suspendForProcessSwap): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::origin): |
| |
| 2018-12-13 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Remove with-report from 3 services that are currently needed on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=192593 |
| <rdar://problem/46604752> |
| |
| Reviewed by Brent Fulgham. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-12-13 Youenn Fablet <youenn@apple.com> |
| |
| On page close, WebPage::m_userMediaPermissionRequestManager is nullified too early |
| https://bugs.webkit.org/show_bug.cgi?id=192657 |
| |
| Reviewed by Eric Carlson. |
| |
| Instead of nullifying the manager, make it a UniqueRef and clear it on closing the page. |
| This ensures we revoke the sandbox extensions as early as possible and keep the manager lifetime simple. |
| |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::~UserMediaPermissionRequestManager): |
| (WebKit::UserMediaPermissionRequestManager::clear): |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| * WebProcess/WebPage/WebPage.h: |
| (WebKit::WebPage::userMediaPermissionRequestManager): |
| |
| 2018-12-13 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Darin Adler. |
| |
| Part 6: Files in plugin process and UI process. |
| |
| * PluginProcess/PluginControllerProxy.cpp: |
| * PluginProcess/PluginProcess.cpp: |
| * PluginProcess/WebProcessConnection.cpp: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| * UIProcess/WebStorage/LocalStorageDatabase.cpp: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| |
| 2018-12-13 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Calculate width or height when constraints contain only the other |
| https://bugs.webkit.org/show_bug.cgi?id=192632 |
| <rdar://problem/46665734> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::SourceProxy::remoteVideoSampleAvailable): Deleted, |
| replaced with videoSampleAvailable. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable): Use original frame |
| size if necessary when calculating new frame size. |
| |
| 2018-12-12 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Darin Adler. |
| |
| Part 5: Files in WebProcess folder. |
| |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (mediaTimeToCurrentTime): |
| (-[WKAnimationDelegate initWithLayerID:layerTreeHost:]): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject accessibilityHitTest:]): |
| |
| 2018-12-12 Ross Kirsling <ross.kirsling@sony.com> |
| |
| [MSVC] Unreviewed build fix for r239080. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFailToSuspendAfterProcessSwap): |
| |
| 2018-12-12 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Darin Adler. |
| |
| Part 4: Handling NetworkProcess folder. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| |
| 2018-12-12 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Tim Horton. |
| |
| Fix iosmac build. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _hoverGestureRecognizerChanged:]): |
| |
| 2018-12-12 Alex Christensen <achristensen@webkit.org> |
| |
| Implement safe browsing in WebKit on WatchOS |
| https://bugs.webkit.org/show_bug.cgi?id=192641 |
| <rdar://problem/46376188> |
| |
| Reviewed by Geoff Garen. |
| |
| WatchOS has a few special requirements: |
| 1. The margin size needs to be smaller and the title font smaller to fit on the screen. |
| 2. The exclamation point cannot be beside the title or it won't fit on the screen. I put it above the title. |
| 3. The application must be told when the safe browsing warning has been shown. I added a new delegate callback. |
| 4. The UIScrollView's contentSize must be set even before the details are shown to be able to scroll down to the buttons. |
| This was already an issue on small WKWebViews on iOS, so this fixes both operating systems. |
| |
| * Configurations/WebKit.xcconfig: |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::didShowSafeBrowsingWarning): |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::didShowSafeBrowsingWarning): |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (fontOfSize): |
| (buttonSize): |
| (-[WKSafeBrowsingWarning addContent]): |
| (-[WKSafeBrowsingWarning showDetailsClicked]): |
| (-[WKSafeBrowsingWarning updateContentSize]): |
| (buttonWidth): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-12-12 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r239129 and r239131. |
| https://bugs.webkit.org/show_bug.cgi?id=192646 |
| |
| Casued macOS and iOS Debug testing to fail early (Requested by |
| Truitt on #webkit). |
| |
| Reverted changesets: |
| |
| "Unreviewed build fix for WinCairo Debug after r239080(?)." |
| https://trac.webkit.org/changeset/239129 |
| |
| "Unreviewed fix for Cocoa Debug test instability following |
| r239129." |
| https://trac.webkit.org/changeset/239131 |
| |
| 2018-12-12 Vivek Seth <v_seth@apple.com> |
| |
| HTTPS Upgrade: Figure out if/how to tell clients that the HTTPS upgrade happened |
| https://bugs.webkit.org/show_bug.cgi?id=192375 |
| <rdar://problem/45851159> |
| |
| Reviewed by Chris Dumez. |
| |
| Use simulated redirect to tell clients that HTTPS Upgrade happened. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::NetworkLoadChecker): |
| (WebKit::NetworkLoadChecker::checkRedirection): |
| (WebKit::NetworkLoadChecker::accessControlErrorForValidationHandler): |
| (WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const): |
| (WebKit::NetworkLoadChecker::checkRequest): |
| (WebKit::NetworkLoadChecker::continueCheckingRequestOrDoSyntheticRedirect): |
| (WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight): |
| (WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded): Deleted. |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| * NetworkProcess/PingLoad.cpp: |
| |
| 2018-12-12 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed fix for Cocoa Debug test instability following r239129. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFailToSuspendAfterProcessSwap): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::didFailToSuspendAfterProcessSwap): |
| Move the whole assertion to the declaration site. |
| |
| 2018-12-12 Chris Dumez <cdumez@apple.com> |
| |
| Add a preference to enable / disable devicemotion and deviceorientation events |
| https://bugs.webkit.org/show_bug.cgi?id=192631 |
| <rdar://problem/46646244> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add setting to toggle support for the deviceorientation / devicemotion events: |
| - https://w3c.github.io/deviceorientation/ |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setDeviceOrientationEventEnabled:]): |
| (-[WKPreferences _deviceOrientationEventEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-12-12 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed build fix for WinCairo Debug after r239080(?). |
| |
| MSVC gives a redefinition error if noreturn is specified on the definition instead of the declaration. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFailToSuspendAfterProcessSwap): |
| * UIProcess/WebPageProxy.h: |
| Move NO_RETURN_DUE_TO_ASSERT to the declaration site. |
| |
| 2018-12-12 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Darin Adler. |
| |
| Part 2: UIProcess/Cocoa and UIProcess/ios folders. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| (-[WKContentView initWithFrame:processPool:configuration:webView:]): |
| (-[WKContentView dealloc]): |
| (-[WKContentView page]): |
| (-[WKContentView updateFixedClippingView:]): |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| (-[WKContentView _updateForScreen:]): |
| (-[WKContentView _accessibilityRegisterUIProcessTokens]): |
| (-[WKContentView _createDrawingAreaProxy]): |
| (-[WKContentView _didCommitLayerTree:]): |
| (-[WKContentView _wk_pageCountForPrintFormatter:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): |
| (hasAssistedNode): |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView positionInformation]): |
| (-[WKContentView _webTouchEventsRecognized:]): |
| (inflateQuad): |
| (-[WKContentView _updateTapHighlight]): |
| (-[WKContentView _showTapHighlight]): |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView inputView]): |
| (-[WKContentView _actionForLongPressFromPositionInformation:]): |
| (-[WKContentView currentPositionInformation]): |
| (-[WKContentView doAfterPositionInformationUpdate:forRequest:]): |
| (-[WKContentView _currentPositionInformationIsValidForRequest:]): |
| (-[WKContentView _hasValidOutstandingPositionInformationRequest:]): |
| (-[WKContentView _currentPositionInformationIsApproximatelyValidForRequest:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView webSelectionRectsForSelectionRects:]): |
| (-[WKContentView _twoFingerSingleTapGestureRecognized:]): |
| (-[WKContentView _stylusSingleTapRecognized:]): |
| (-[WKContentView _singleTapCommited:]): |
| (-[WKContentView _attemptClickAtLocation:]): |
| (-[WKContentView _positionInformationDidChange:]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView supportedPasteboardTypesForCurrentSelection]): |
| (-[WKContentView _lookupForWebView:]): |
| (-[WKContentView _shareForWebView:]): |
| (-[WKContentView textStylingAtPosition:inDirection:]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView selectForWebView:]): |
| (-[WKContentView _accessibilityRetrieveRectsEnclosingSelectionOffset:withGranularity:]): |
| (-[WKContentView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): |
| (toGestureType): |
| (toUIWKGestureType): |
| (toSelectionTouch): |
| (toUIWKSelectionTouch): |
| (toGestureRecognizerState): |
| (toUIGestureRecognizerState): |
| (toUIWKSelectionFlags): |
| (toWKTextGranularity): |
| (toWKSelectionDirection): |
| (selectionChangedWithGesture): |
| (selectionChangedWithTouch): |
| (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]): |
| (-[WKContentView autocorrectionData]): |
| (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]): |
| (-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): |
| (-[WKContentView _updateAccessory]): |
| (-[WKContentView selectedTextRange]): |
| (-[WKContentView setMarkedText:selectedRange:]): |
| (coreWritingDirection): |
| (-[WKContentView closestPositionToPoint:]): |
| (-[WKContentView insertText:]): |
| (-[WKContentView textInputTraits]): |
| (-[WKContentView handleKeyWebEvent:]): |
| (-[WKContentView handleKeyWebEvent:withCompletionHandler:]): |
| (-[WKContentView isScrollableForKeyboardScrollViewAnimator:]): |
| (-[WKContentView keyboardScrollViewAnimator:distanceForIncrement:]): |
| (-[WKContentView assistedNodeInformation]): |
| (-[WKContentView assistedNodeSelectOptions]): |
| (isAssistableInputType): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView updateCurrentAssistedNodeInformation:]): |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView actionNameForFocusedFormControlView:]): |
| (-[WKContentView selectWordForReplacement]): |
| (-[WKContentView _updateChangedSelection:]): |
| (-[WKContentView _beginSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _stopSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]): |
| (-[WKContentView _showRunOpenPanel:resultListener:]): |
| (-[WKContentView _showShareSheet:completionHandler:]): |
| (-[WKContentView positionInformationForActionSheetAssistant:]): |
| (-[WKContentView updatePositionInformationForActionSheetAssistant:]): |
| (-[WKContentView _startDrag:item:]): |
| (-[WKContentView _didHandleAdditionalDragItemsRequest:]): |
| (-[WKContentView _didHandleStartDataInteractionRequest:]): |
| (dropOperationForWebCoreDragOperation): |
| (-[WKContentView dragDataForDropSession:dragDestinationAction:]): |
| (-[WKContentView _didConcludeEditDataInteraction:]): |
| (-[WKContentView _didPerformDragOperation:]): |
| (-[WKContentView _prepareToDragPromisedAttachment:]): |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): |
| (-[WKContentView _autofillContext]): |
| (-[WKContentView _dragInteraction:itemsForAddingToSession:withTouchAtPoint:completion:]): |
| (-[WKContentView _dragInteraction:prepareForSession:completion:]): |
| (-[WKContentView dragInteraction:itemsForBeginningSession:]): |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| (-[WKContentView dragInteraction:session:didEndWithOperation:]): |
| (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]): |
| (-[WKContentView dropInteraction:performDrop:]): |
| (-[WKContentView dropInteraction:sessionDidEnd:]): |
| (-[WKContentView allowsLanguageSelectionMenuForListViewController:]): |
| (-[WKContentView shouldDisplayInputContextViewForListViewController:]): |
| (-[WKContentView numericInputModeForListViewController:]): |
| (-[WKContentView textContentTypeForListViewController:]): |
| (-[WKContentView allowsDictationInputForListViewController:]): |
| (-[WKContentView _simulateLongPressActionAtLocation:]): |
| (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): |
| (-[WKContentView _presentationRectsForPreviewItemController:]): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::interface const): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController _manager]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullscreenAnimationController configureInitialAndFinalStatesForTransition:]): |
| (-[WKFullScreenWindowController isFullScreen]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| (-[WKFullScreenWindowController _manager]): |
| |
| 2018-12-12 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Darin Adler. |
| |
| Part 1: Files in Shared folder. |
| |
| * Shared/API/c/WKRenderLayer.cpp: |
| (WKRenderLayerGetFrameContentsLayer): |
| * Shared/API/c/cf/WKErrorCF.cpp: |
| (WKErrorCreateWithCFError): |
| (WKErrorCopyCFError): |
| * Shared/API/c/cg/WKImageCG.cpp: |
| (WKImageCreateCGImage): |
| (WKImageCreateFromCGImage): |
| * Shared/API/c/mac/WKWebArchive.cpp: |
| (WKWebArchiveGetTypeID): |
| (WKWebArchiveCreate): |
| (WKWebArchiveCreateWithData): |
| (WKWebArchiveCreateFromRange): |
| (WKWebArchiveCopyMainResource): |
| (WKWebArchiveCopySubresources): |
| (WKWebArchiveCopySubframeArchives): |
| (WKWebArchiveCopyData): |
| * Shared/API/c/mac/WKWebArchiveResource.cpp: |
| (WKWebArchiveResourceGetTypeID): |
| (WKWebArchiveResourceCreate): |
| (WKWebArchiveResourceCopyData): |
| (WKWebArchiveResourceCopyURL): |
| (WKWebArchiveResourceCopyMIMEType): |
| (WKWebArchiveResourceCopyTextEncoding): |
| * Shared/ChildProcess.cpp: |
| * Shared/ContextMenuContextData.cpp: |
| * Shared/EditorState.cpp: |
| * Shared/Plugins/NPIdentifierData.cpp: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| * Shared/SessionState.cpp: |
| * Shared/SessionTracker.cpp: |
| * Shared/ShareableBitmap.cpp: |
| * Shared/ShareableResource.cpp: |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| * Shared/WebBackForwardListItem.cpp: |
| * Shared/WebContextMenuItemData.cpp: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebHitTestResultData.cpp: |
| * Shared/WebImage.cpp: |
| * Shared/WebMediaSessionMetadata.cpp: |
| * Shared/WebMemorySampler.cpp: |
| * Shared/WebMouseEvent.cpp: |
| * Shared/WebRenderObject.cpp: |
| * Shared/WebSQLiteDatabaseTracker.cpp: |
| * Shared/WebWheelEvent.cpp: |
| * Shared/cf/ArgumentCodersCF.cpp: |
| * Shared/ios/WebPlatformTouchPointIOS.cpp: |
| |
| 2018-12-12 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| <rdar://problem/46595508> |
| |
| Reviewed by Darin Adler. |
| |
| Part 1: Files in NetworkProcess. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| |
| 2018-12-12 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed build with with recent macOS SDKs. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| |
| 2018-12-12 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix GTK build after r239104. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::performDragControllerAction): |
| |
| 2018-12-12 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix build with older SDKs after r239110. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| |
| 2018-12-12 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix build with recent SDKs. |
| |
| * Platform/cocoa/WKCrashReporter.mm: |
| |
| 2018-12-09 Darin Adler <darin@apple.com> |
| |
| [iOS] Zero memory containing the password for PDF documents when a WKPDFView is deallocated |
| https://bugs.webkit.org/show_bug.cgi?id=192536 |
| rdar://problem/41174451 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKPDFView.mm: Took out PLATFORM(IOSMAC) since |
| this class is not compiled on that platform at this time. Can always |
| add it back later. |
| (-[WKPDFView dealloc]): Zero out characters of _passwordForPrinting. |
| (-[WKPDFView pdfHostViewController:documentDidUnlockWithPassword:]): |
| Initialize _passwordForPrinting; use a CString instead of retaining |
| an NSString since we can zero that out easily. |
| (-[WKPDFView _ensureDocumentForPrinting]): Use _passwordForPrinting. |
| |
| 2018-12-12 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r239103. |
| https://bugs.webkit.org/show_bug.cgi?id=192627 |
| |
| It broke the built because it depends on another patch that |
| didn't land yet (Requested by KaL on #webkit). |
| |
| Reverted changeset: |
| |
| "[WPE] Add API to notify about frame displayed view backend |
| callback" |
| https://bugs.webkit.org/show_bug.cgi?id=192224 |
| https://trac.webkit.org/changeset/239103 |
| |
| 2018-12-12 Chris Dumez <cdumez@apple.com> |
| |
| Restore MESSAGE_CHECK_URL() security check on sourceURL in didPerformClientRedirect() |
| https://bugs.webkit.org/show_bug.cgi?id=191982 |
| <rdar://problem/46258054> |
| |
| Reviewed by Alex Christensen. |
| |
| Have the WebPageProxy remember the local paths it previously visited so that the |
| MESSAGE_CHECK_URL() checks still work when process-swap on navigation is enabled. |
| |
| Add back MESSAGE_CHECK_URL() on sourceURL in didPerformClientRedirect(). |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow): |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::createFrontendPage): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadRequestWithNavigation): |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::loadDataWithNavigation): |
| (WebKit::WebPageProxy::loadAlternateHTML): |
| (WebKit::WebPageProxy::reload): |
| (WebKit::WebPageProxy::didPerformClientRedirect): |
| (WebKit::WebPageProxy::backForwardGoToItem): |
| (WebKit::WebPageProxy::checkURLReceivedFromCurrentOrPreviousWebProcess): |
| (WebKit::WebPageProxy::addPreviouslyVisitedPath): |
| (WebKit::WebPageProxy::willAcquireUniversalFileReadSandboxExtension): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::assumeReadAccessToBaseURL): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/mac/WebPageProxyMac.mm: |
| |
| 2018-11-30 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [WPE] Add API to notify about frame displayed view backend callback |
| https://bugs.webkit.org/show_bug.cgi?id=192224 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add API to add a callback to the view to be called when the view backend notifies that a frame has been |
| displayed. |
| |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (FrameDisplayedCallback::FrameDisplayedCallback): |
| (FrameDisplayedCallback::~FrameDisplayedCallback): |
| (webkit_web_view_add_frame_displayed_callback): |
| (webkit_web_view_remove_frame_displayed_callback): |
| * UIProcess/API/wpe/WebKitWebView.h: |
| |
| 2018-12-11 Justin Michaud <justin_michaud@apple.com> |
| |
| Implement feature flag for CSS Typed OM |
| https://bugs.webkit.org/show_bug.cgi?id=192610 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-12-11 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][Clang] Fix warning -Wmissing-field-initializers |
| https://bugs.webkit.org/show_bug.cgi?id=192584 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| Initialize a struct with '{ }' instead of '= {0}'. |
| |
| * UIProcess/Launcher/win/ProcessLauncherWin.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/win/WebPopupMenuProxyWin.cpp: |
| (WebKit::WebPopupMenuProxyWin::showPopupMenu): |
| * UIProcess/win/WebView.cpp: |
| (WebKit::WebView::initializeToolTipWindow): |
| (WebKit::WebView::setToolTip): |
| |
| 2018-12-11 Chris Dumez <cdumez@apple.com> |
| |
| PSON logic gets confused by concurrent decidePolicyForNavigationAction requests |
| https://bugs.webkit.org/show_bug.cgi?id=192482 |
| <rdar://problem/46470145> |
| |
| Reviewed by Antti Koivisto. |
| |
| It is possible to get 2 parallel decidePolicyForNavigationAction() requests from the |
| WebProcess when a new load is started before responding to the existing policy |
| decision. This would lead to several issues with regards to PSON: |
| - We would decide to swap for the first policy decision and tell the WebProcess to |
| suspend. However, because the WebProcess issued a new decidePolicyForNavigationAction |
| since for the same frame, the previous one is invalidated and the WebProcess would |
| ignore our request to suspend. |
| - We would hit assertions later on because the navigation has been destroyed and yet |
| we're getting a didStartProvisionalLoad for it. |
| - swapToWebProcess() was asynchronous so that it would wait for the destination |
| SuspendedPage to finish suspending before asking it to unsuspend. This led to various |
| problems because anything can happen in the UIProcess while we're waiting for the |
| suspension (e.g. another load). Also, we may create the SuspendedPageProxy for |
| the current page too late and start getting IPC from the previous process about |
| the suspension load to about:blank. |
| |
| To address these issues, the following design is now implemented: |
| - swapToWebProcess() is no longer asynchronous |
| - instead, WebProcessPool::processForNavigation() is now asynchronous. This is better |
| because at this point we have not yet told the WebProcess about the policy decision. |
| We already properly deal with the policy decision being made asynchronously. This |
| also allows us to choose another process if the SuspendedPage we'd like to use |
| failed to suspend. |
| - If the WebProcess receives a PolicyAction::Suspend but ignores it, have it send an |
| IPC to the UIProcess so that the SuspendedPageProxy knows about it. We then destroy |
| the SuspendedPageProxy and make sure it is not used. |
| - After the asynchronous process selection, if the navigation has been destroy, abort |
| the process-swap to avoid hitting assertions later on due to doing a load for a |
| destroyed navigation. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| Make sure m_whenReadyToConsume completion handler gets called if necessary if the |
| SuspendedPageProxy gets destroyed. We pass null so that the SuspendedPage is not |
| used. |
| |
| (WebKit::SuspendedPageProxy::whenReadyToConsume): |
| Add whenReadyToConsume() utility method to get a completion handler called when |
| the SuspendedPageProxy is ready to be used. This basically means we have to wait |
| for the page to finish its about:blank suspension load. If the suspension fails |
| then we call the completion handler with null to indicate that the suspended |
| page is not usable. |
| |
| (WebKit::SuspendedPageProxy::unsuspendAndConsume): |
| Rename unsuspend() to unsuspendAndConsume() and make it synchronous. This only gets |
| called after whenReadyToConsume()'s completion handler has been called and if we |
| do decide to use the SuspendedPageProxy. It tells the WebProcess to unsuspend and |
| removes the SuspendedPageProxy from the WebProcessPool. |
| |
| (WebKit::SuspendedPageProxy::didFinishLoad): |
| rename m_finishedSuspendingHandler to m_whenReadyToConsume. |
| |
| (WebKit::SuspendedPageProxy::didFailToSuspend): |
| Add new didFailToSuspend() that gets called when the WebProcess sends us an IPC telling |
| us it ignored our request to suspend. We then call m_whenReadyToConsume completion |
| handler with null and destroy the SuspendedPageProxy. |
| |
| (WebKit::SuspendedPageProxy::didReceiveMessage): |
| * UIProcess/SuspendedPageProxy.h: |
| |
| * UIProcess/WebNavigationState.h: |
| (WebKit::WebNavigationState::hasNavigation const): |
| Add utility function to query if a navigation is still valid. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::swapToWebProcess): |
| Update method so that it is no longer asynchronous. Some of its code was also moved to |
| continueNavigationInNewProcess() for clarity. |
| |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| Deal with WebProcessPool::processForNavigation() now being asynchronous. |
| |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| Update code now that swapToWebProcess() is no longer asynchronous. Some of the swapToWebProcess() |
| code was also moved here for clarity. |
| |
| (WebKit::WebPageProxy::didFailToSuspendAfterProcessSwap): |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| Add new DidFailToSuspendAfterProcessSwap IPC message. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessPool.h: |
| Make asynchronous. If we decide to use a SuspendedPageProxy's process, then call |
| whenReadyToConsume() on it to wait for it to suspend. If the SuspendedPageProxy |
| fails to suspend use a new process instead. |
| |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::didReceivePolicyDecision): |
| If we ignore the policy decision and the decision was "Suspend", send the DidFailToSuspendAfterProcessSwap |
| IPC to the UIProcess so that the SuspendedPageProxy knows about it. |
| |
| 2018-12-11 Andy Estes <aestes@apple.com> |
| |
| Introduce makeBlockPtr for lambdas |
| https://bugs.webkit.org/show_bug.cgi?id=192594 |
| |
| Reviewed by Alex Christensen. |
| |
| Adopted makeBlockPtr. |
| |
| * NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm: |
| (-[WKDownloadProgress initWithDownloadTask:download:URL:sandboxExtension:]): |
| * NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm: |
| (WebKit::NetworkCache::IOChannel::read): |
| (WebKit::NetworkCache::IOChannel::write): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::clearDiskCache): |
| (WebKit::saveCookies): |
| * NetworkProcess/watchos/NetworkProximityAssertion.mm: |
| (WebKit::BluetoothProximityAssertion::suspend): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _setInputDelegate:]): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView maybeInstallIconLoadingClient]): |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): |
| (WebKit::WebPaymentCoordinatorProxy::platformOpenPaymentSetup): |
| * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| * UIProcess/Cocoa/AutomationSessionClient.mm: |
| (WebKit::AutomationSessionClient::requestNewPageWithOptions): |
| (WebKit::AutomationSessionClient::requestSwitchToPage): |
| (WebKit::AutomationSessionClient::requestHideWindowOfPage): |
| (WebKit::AutomationSessionClient::requestRestoreWindowOfPage): |
| (WebKit::AutomationSessionClient::requestMaximizeWindowOfPage): |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didReceiveAuthenticationChallenge): |
| (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): |
| * UIProcess/Cocoa/IconLoadingDelegate.mm: |
| (WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad): |
| (WebKit::NavigationState::NavigationClient::webGLLoadPolicy const): |
| (WebKit::NavigationState::NavigationClient::resolveWebGLLoadPolicy const): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationResponse): |
| (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): |
| (WebKit::UIDelegate::UIClient::createNewPage): |
| (WebKit::UIDelegate::UIClient::runJavaScriptAlert): |
| (WebKit::UIDelegate::UIClient::runJavaScriptConfirm): |
| (WebKit::UIDelegate::UIClient::runJavaScriptPrompt): |
| (WebKit::UIDelegate::UIClient::requestStorageAccessConfirm): |
| (WebKit::UIDelegate::UIClient::decidePolicyForGeolocationPermissionRequest): |
| (WebKit::UIDelegate::UIClient::runBeforeUnloadConfirmPanel): |
| (WebKit::UIDelegate::UIClient::exceededDatabaseQuota): |
| (WebKit::UIDelegate::UIClient::windowFrame): |
| (WebKit::UIDelegate::UIClient::toolbarsAreVisible): |
| (WebKit::UIDelegate::UIClient::decidePolicyForNotificationPermissionRequest): |
| (WebKit::UIDelegate::UIClient::runOpenPanel): |
| (WebKit::requestUserMediaAuthorizationForDevices): |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): |
| (WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin): |
| (WebKit::UIDelegate::UIClient::reachedApplicationCacheOriginQuota): |
| (WebKit::UIDelegate::UIClient::requestPointerLock): |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (-[WKSafeBrowsingWarning clickedOnLink:]): |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.mm: |
| (WebKit::HidConnection::send): |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: |
| (WebKit::LocalConnection::getUserConsent const): |
| (WebKit::LocalConnection::getAttestation const): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::send): |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::requestPasswordForQuickLookDocument): |
| * UIProcess/ios/WKGeolocationProviderIOS.mm: |
| (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]): |
| * UIProcess/mac/ServicesController.mm: |
| (WebKit::hasCompatibleServicesForItems): |
| (WebKit::ServicesController::refreshExistingServices): |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (PageLoaderClient::didStartProvisionalLoadForFrame): |
| |
| 2018-12-11 Alex Christensen <achristensen@webkit.org> |
| |
| Fix an internal build failure after r239014 |
| https://bugs.webkit.org/show_bug.cgi?id=192205 |
| |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (fontOfSize): |
| There's a system that doesn't have safe browsing or UIFontTextStyleLargeTitle. |
| |
| 2018-12-11 Brian Burg <bburg@apple.com> |
| |
| SimulatedInputDispatcher::transitionInputSourceToState() can reuse a moved-from completion handler |
| https://bugs.webkit.org/show_bug.cgi?id=191155 |
| <rdar://problem/45745569> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| Add an ASSERT to guard against unexpected inputs where >1 VirtualKey changes per state. |
| webkitdriver needs to be updated to not produce such states in this scenario, but this will |
| avoid a runtime crash caused by trying to call a moved-out completion handler a second time. |
| |
| 2018-12-11 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r239071. |
| https://bugs.webkit.org/show_bug.cgi?id=192588 |
| |
| Broke WPE build due to undefined references to toAPI() and |
| toImpl() inside the C API (Requested by magomez on #webkit). |
| |
| Reverted changeset: |
| |
| "[meta][WebKit] Remove using namespace WebCore and WebKit in |
| the global scope for unified source builds" |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| https://trac.webkit.org/changeset/239071 |
| |
| 2018-12-10 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| |
| Reviewed by Darin Adler. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| * Platform/spi/ios/AccessibilitySupportSPI.h: |
| * PlatformMac.cmake: |
| * PluginProcess/PluginControllerProxy.cpp: |
| * PluginProcess/PluginProcess.cpp: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb: |
| * Shared/API/c/cf/WKErrorCF.cpp: |
| (WKErrorCreateWithCFError): |
| (WKErrorCopyCFError): |
| * Shared/API/c/cg/WKImageCG.cpp: |
| (WKImageCreateCGImage): |
| (WKImageCreateFromCGImage): |
| * Shared/ChildProcess.cpp: |
| * Shared/ContextMenuContextData.cpp: |
| * Shared/EditorState.cpp: |
| * Shared/Plugins/NPIdentifierData.cpp: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| * Shared/SessionState.cpp: |
| * Shared/SessionTracker.cpp: |
| * Shared/ShareableBitmap.cpp: |
| * Shared/ShareableResource.cpp: |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| * Shared/WebBackForwardListItem.cpp: |
| * Shared/WebContextMenuItemData.cpp: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebHitTestResultData.cpp: |
| * Shared/WebImage.cpp: |
| * Shared/WebMediaSessionMetadata.cpp: |
| * Shared/WebMemorySampler.cpp: |
| * Shared/WebMouseEvent.cpp: |
| * Shared/WebRenderObject.cpp: |
| * Shared/WebSQLiteDatabaseTracker.cpp: |
| * Shared/WebWheelEvent.cpp: |
| * Shared/cf/ArgumentCodersCF.cpp: |
| * Shared/ios/WebPlatformTouchPointIOS.cpp: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIContentRuleListStore.cpp: |
| * UIProcess/API/APIHitTestResult.cpp: |
| * UIProcess/API/APINavigation.cpp: |
| * UIProcess/API/APIOpenPanelParameters.cpp: |
| * UIProcess/API/APIPageConfiguration.cpp: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageLoadURLWithShouldOpenExternalURLsPolicy): |
| (WKPageLoadURLWithUserData): |
| (WKPageLoadURLRequestWithUserData): |
| (WKPageSetPaginationMode): |
| (WKPageGetPaginationMode): |
| (WKPageSetPageLoaderClient): |
| (WKPageSetPagePolicyClient): |
| * UIProcess/API/C/cg/WKIconDatabaseCG.cpp: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| * UIProcess/WebStorage/LocalStorageDatabase.cpp: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| (-[WKContentView initWithFrame:processPool:configuration:webView:]): |
| (-[WKContentView dealloc]): |
| (-[WKContentView page]): |
| (-[WKContentView updateFixedClippingView:]): |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| (-[WKContentView _updateForScreen:]): |
| (-[WKContentView _accessibilityRegisterUIProcessTokens]): |
| (-[WKContentView _createDrawingAreaProxy]): |
| (-[WKContentView _didCommitLayerTree:]): |
| (-[WKContentView _wk_pageCountForPrintFormatter:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): |
| (hasAssistedNode): |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView positionInformation]): |
| (-[WKContentView _webTouchEventsRecognized:]): |
| (inflateQuad): |
| (-[WKContentView _updateTapHighlight]): |
| (-[WKContentView _showTapHighlight]): |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView inputView]): |
| (-[WKContentView _actionForLongPressFromPositionInformation:]): |
| (-[WKContentView currentPositionInformation]): |
| (-[WKContentView doAfterPositionInformationUpdate:forRequest:]): |
| (-[WKContentView _currentPositionInformationIsValidForRequest:]): |
| (-[WKContentView _hasValidOutstandingPositionInformationRequest:]): |
| (-[WKContentView _currentPositionInformationIsApproximatelyValidForRequest:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView webSelectionRectsForSelectionRects:]): |
| (-[WKContentView _twoFingerSingleTapGestureRecognized:]): |
| (-[WKContentView _stylusSingleTapRecognized:]): |
| (-[WKContentView _singleTapCommited:]): |
| (-[WKContentView _attemptClickAtLocation:]): |
| (-[WKContentView _positionInformationDidChange:]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView supportedPasteboardTypesForCurrentSelection]): |
| (-[WKContentView _lookupForWebView:]): |
| (-[WKContentView _shareForWebView:]): |
| (-[WKContentView textStylingAtPosition:inDirection:]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView selectForWebView:]): |
| (-[WKContentView _accessibilityRetrieveRectsEnclosingSelectionOffset:withGranularity:]): |
| (-[WKContentView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): |
| (toGestureType): |
| (toUIWKGestureType): |
| (toSelectionTouch): |
| (toUIWKSelectionTouch): |
| (toGestureRecognizerState): |
| (toUIGestureRecognizerState): |
| (toUIWKSelectionFlags): |
| (toWKTextGranularity): |
| (toWKSelectionDirection): |
| (selectionChangedWithGesture): |
| (selectionChangedWithTouch): |
| (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]): |
| (-[WKContentView autocorrectionData]): |
| (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]): |
| (-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): |
| (-[WKContentView _updateAccessory]): |
| (-[WKContentView selectedTextRange]): |
| (-[WKContentView setMarkedText:selectedRange:]): |
| (coreWritingDirection): |
| (-[WKContentView closestPositionToPoint:]): |
| (-[WKContentView insertText:]): |
| (-[WKContentView textInputTraits]): |
| (-[WKContentView handleKeyWebEvent:]): |
| (-[WKContentView handleKeyWebEvent:withCompletionHandler:]): |
| (-[WKContentView isScrollableForKeyboardScrollViewAnimator:]): |
| (-[WKContentView keyboardScrollViewAnimator:distanceForIncrement:]): |
| (-[WKContentView assistedNodeInformation]): |
| (-[WKContentView assistedNodeSelectOptions]): |
| (isAssistableInputType): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView updateCurrentAssistedNodeInformation:]): |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView actionNameForFocusedFormControlView:]): |
| (-[WKContentView selectWordForReplacement]): |
| (-[WKContentView _updateChangedSelection:]): |
| (-[WKContentView _beginSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _stopSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]): |
| (-[WKContentView _showRunOpenPanel:resultListener:]): |
| (-[WKContentView _showShareSheet:completionHandler:]): |
| (-[WKContentView positionInformationForActionSheetAssistant:]): |
| (-[WKContentView updatePositionInformationForActionSheetAssistant:]): |
| (-[WKContentView _startDrag:item:]): |
| (-[WKContentView _didHandleAdditionalDragItemsRequest:]): |
| (-[WKContentView _didHandleStartDataInteractionRequest:]): |
| (dropOperationForWebCoreDragOperation): |
| (-[WKContentView dragDataForDropSession:dragDestinationAction:]): |
| (-[WKContentView _didConcludeEditDataInteraction:]): |
| (-[WKContentView _didPerformDragOperation:]): |
| (-[WKContentView _prepareToDragPromisedAttachment:]): |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): |
| (-[WKContentView _autofillContext]): |
| (-[WKContentView _dragInteraction:itemsForAddingToSession:withTouchAtPoint:completion:]): |
| (-[WKContentView _dragInteraction:prepareForSession:completion:]): |
| (-[WKContentView dragInteraction:itemsForBeginningSession:]): |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| (-[WKContentView dragInteraction:session:didEndWithOperation:]): |
| (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]): |
| (-[WKContentView dropInteraction:performDrop:]): |
| (-[WKContentView dropInteraction:sessionDidEnd:]): |
| (-[WKContentView allowsLanguageSelectionMenuForListViewController:]): |
| (-[WKContentView shouldDisplayInputContextViewForListViewController:]): |
| (-[WKContentView numericInputModeForListViewController:]): |
| (-[WKContentView textContentTypeForListViewController:]): |
| (-[WKContentView allowsDictationInputForListViewController:]): |
| (-[WKContentView _simulateLongPressActionAtLocation:]): |
| (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): |
| (-[WKContentView _presentationRectsForPreviewItemController:]): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::interface const): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController _manager]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullscreenAnimationController configureInitialAndFinalStatesForTransition:]): |
| (-[WKFullScreenWindowController isFullScreen]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| (-[WKFullScreenWindowController _manager]): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (mediaTimeToCurrentTime): |
| (-[WKAnimationDelegate initWithLayerID:layerTreeHost:]): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| (-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]): |
| |
| 2018-12-10 Don Olmstead <don.olmstead@sony.com> |
| |
| Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig |
| https://bugs.webkit.org/show_bug.cgi?id=192573 |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-12-10 Youenn Fablet <youenn@apple.com> |
| |
| Remove derived classes of RealtimeMediaSourceCenter |
| https://bugs.webkit.org/show_bug.cgi?id=192546 |
| |
| Reviewed by Eric Carlson. |
| |
| pdate code according WebCore changes. |
| |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::~UserMediaCaptureManager): |
| (WebKit::UserMediaCaptureManager::initialize): |
| |
| 2018-12-10 Tim Horton <timothy_horton@apple.com> |
| |
| Animated scrolling on Google Maps scrolls the page in addition to moving the map |
| https://bugs.webkit.org/show_bug.cgi?id=192521 |
| <rdar://problem/46382007> |
| |
| Reviewed by Sam Weinig. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollViewAnimator rubberbandableDirections]): |
| Only do keyboard-based rubber-banding in directions that we can actually |
| scroll, not directions we can only finger-rubber-band in. This effectively |
| means keyboard scrolling will ignore "alwaysBounce{Vertical, Horizontal}". |
| |
| 2018-12-10 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r239023. |
| https://bugs.webkit.org/show_bug.cgi?id=192571 |
| |
| Speculative rollout due to broken perf test (Requested by |
| deanj on #webkit). |
| |
| Reverted changeset: |
| |
| "Enable HTTP and HTTPS proxies on iOS and make it a property |
| of the NSURLSession" |
| https://bugs.webkit.org/show_bug.cgi?id=192374 |
| https://trac.webkit.org/changeset/239023 |
| |
| 2018-12-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the iOS build after r239039. |
| https://bugs.webkit.org/show_bug.cgi?id=192568 |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dropInteraction:sessionDidUpdate:]): |
| |
| 2018-12-10 Alex Christensen <achristensen@webkit.org> |
| |
| Fix WatchOS build. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView actionNameForFocusedFormControlView:]): |
| |
| 2018-12-10 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r239029. |
| |
| This patch caused internal build failures. |
| |
| Reverted changeset: |
| |
| "[meta][WebKit] Remove using namespace WebCore and WebKit in |
| the global scope for unified source builds" |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| https://trac.webkit.org/changeset/239029 |
| |
| 2018-12-10 Chris Dumez <cdumez@apple.com> |
| |
| Add SPI to allow the client to set the user-agent at main frame level, from the UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=192509 |
| <rdar://problem/46500832> |
| |
| Reviewed by Alex Christensen. |
| |
| Add SPI to allow the client to set the user-agent at main frame level, from the UIProcess instead of doing |
| it at resource-level from the injected bundle. |
| |
| The custom user-agent string can now be set on _WKWebsitePolicies during the |
| decidePolicyForNavigationAction for the main feame, and will impact this main resource load as well as its |
| future subresource loads. |
| |
| * Shared/WebsitePoliciesData.cpp: |
| (WebKit::WebsitePoliciesData::encode const): |
| (WebKit::WebsitePoliciesData::decode): |
| (WebKit::WebsitePoliciesData::applyToDocumentLoader): |
| * Shared/WebsitePoliciesData.h: |
| * UIProcess/API/APIWebsitePolicies.cpp: |
| (API::WebsitePolicies::data): |
| * UIProcess/API/APIWebsitePolicies.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.mm: |
| (-[_WKWebsitePolicies setCustomUserAgent:]): |
| (-[_WKWebsitePolicies customUserAgent]): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| |
| 2018-12-10 Alex Christensen <achristensen@webkit.org> |
| |
| Safe browsing warning should layout buttons vertically in narrow WKWebViews |
| https://bugs.webkit.org/show_bug.cgi?id=192535 |
| <rdar://problem/46308364> |
| |
| Reviewed by Tim Horton. |
| |
| They're usually next to each other, but in narrow WKWebViews they currently get clipped. |
| In order to make it more likely that both buttons are completely visible, put one above |
| the other if the WKWebView is too narrow to completely show both. This also helps with |
| languages where the translations of "Go Back" or "Show Details" are rendered wider than English. |
| |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (buttonWidth): |
| (-[WKSafeBrowsingWarning addContent]): |
| |
| 2018-12-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Allow control over child order when adding nodes to the scrolling tree |
| https://bugs.webkit.org/show_bug.cgi?id=176914 |
| <rdar://problem/46542237> |
| |
| Re-land r239010 after over-zealous rollout. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (WebKit::RemoteScrollingCoordinatorTransaction::decode): |
| |
| 2018-12-10 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Caret is obscured by finger when dragging over an editable element |
| https://bugs.webkit.org/show_bug.cgi?id=192499 |
| <rdar://problem/46570101> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for setting the `precise` property of `UIDropProposal` to YES when dragging over an editable area. |
| When enabled, this property shifts the drop location up by a small amount, allowing the user to see the drop |
| caret (currently, this is not the case, and it's difficult to drop text at a precise location on iOS). Changes |
| are covered by adding to existing API tests. |
| |
| * Scripts/webkit/messages.py: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| |
| Add a new version of `-_webView:willUpdateDataInteractionOperationToOperation:forSession:` that receives and |
| returns a UIDropProposal, so that Mail can more easily port over existing logic in its legacy-WebKit-based |
| compose implementation. iOS Safari is currently the only client of this private delegate, so the old version can |
| be easily removed once Safari adopts this new version. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didPerformDragControllerAction): |
| |
| Add plumbing to send the latest drag handling method from WebPage to WebPageProxy. |
| |
| (WebKit::WebPageProxy::resetCurrentDragInformation): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::currentDragHandlingMethod const): |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView dropInteraction:sessionDidUpdate:]): |
| |
| Call the new UI delegate hook when determining the drop proposal to return to UIKit. Additionally set the |
| `precise` bit on the drop proposal in the case where the drop handling method is either "editing rich text" or |
| "editing plain text". |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::performDragControllerAction): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-12-10 Youenn Fablet <youenn@apple.com> |
| |
| Make mock capture happen in the process used for real capture |
| https://bugs.webkit.org/show_bug.cgi?id=192544 |
| |
| Reviewed by Eric Carlson. |
| |
| Make mock capture happen in the right process by only overriding |
| factories by mock factories for source types that UserMediaCaptureManager will not override. |
| That way, UserMediaCaptureManager will be used to go to UIProcess, where mock will be used as if it was the real capture. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::initialize): |
| |
| 2018-12-10 Alexey Proskuryakov <ap@apple.com> |
| |
| Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h |
| https://bugs.webkit.org/show_bug.cgi?id=192428 |
| |
| Reviewed by Tim Horton. |
| |
| * config.h: |
| |
| 2018-12-10 Alexey Proskuryakov <ap@apple.com> |
| |
| Move more macros out of WebKit's config.h |
| https://bugs.webkit.org/show_bug.cgi?id=192430 |
| |
| Reviewed by Tim Horton. |
| |
| * config.h: |
| |
| 2018-12-10 Chris Fleizach <cfleizach@apple.com> |
| |
| [meta][WebKit] Remove using namespace WebCore and WebKit in the global scope for unified source builds |
| https://bugs.webkit.org/show_bug.cgi?id=192449 |
| |
| Reviewed by Darin Adler. |
| |
| * NetworkProcess/Cookies/mac/WebCookieManagerMac.mm: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| * NetworkProcess/mac/RemoteNetworkingContext.mm: |
| * Platform/spi/ios/AccessibilitySupportSPI.h: |
| * PlatformMac.cmake: |
| * PluginProcess/PluginControllerProxy.cpp: |
| * PluginProcess/PluginProcess.cpp: |
| * PluginProcess/WebProcessConnection.cpp: |
| * Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb: |
| * Shared/API/c/cf/WKErrorCF.cpp: |
| (WKErrorCreateWithCFError): |
| (WKErrorCopyCFError): |
| * Shared/API/c/cg/WKImageCG.cpp: |
| (WKImageCreateCGImage): |
| (WKImageCreateFromCGImage): |
| * Shared/ChildProcess.cpp: |
| * Shared/ContextMenuContextData.cpp: |
| * Shared/EditorState.cpp: |
| * Shared/Plugins/NPIdentifierData.cpp: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| * Shared/SessionState.cpp: |
| * Shared/SessionTracker.cpp: |
| * Shared/ShareableBitmap.cpp: |
| * Shared/ShareableResource.cpp: |
| * Shared/VisibleContentRectUpdateInfo.cpp: |
| * Shared/WebBackForwardListItem.cpp: |
| * Shared/WebContextMenuItemData.cpp: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebHitTestResultData.cpp: |
| * Shared/WebImage.cpp: |
| * Shared/WebMediaSessionMetadata.cpp: |
| * Shared/WebMemorySampler.cpp: |
| * Shared/WebMouseEvent.cpp: |
| * Shared/WebRenderObject.cpp: |
| * Shared/WebSQLiteDatabaseTracker.cpp: |
| * Shared/WebWheelEvent.cpp: |
| * Shared/cf/ArgumentCodersCF.cpp: |
| * Shared/ios/WebPlatformTouchPointIOS.cpp: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIContentRuleListStore.cpp: |
| * UIProcess/API/APIHitTestResult.cpp: |
| * UIProcess/API/APINavigation.cpp: |
| * UIProcess/API/APIOpenPanelParameters.cpp: |
| * UIProcess/API/APIPageConfiguration.cpp: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageLoadURLWithShouldOpenExternalURLsPolicy): |
| (WKPageLoadURLWithUserData): |
| (WKPageLoadURLRequestWithUserData): |
| (WKPageSetPaginationMode): |
| (WKPageGetPaginationMode): |
| (WKPageSetPageLoaderClient): |
| (WKPageSetPagePolicyClient): |
| * UIProcess/API/C/cg/WKIconDatabaseCG.cpp: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| * UIProcess/WebStorage/LocalStorageDatabase.cpp: |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| (-[WKContentView initWithFrame:processPool:configuration:webView:]): |
| (-[WKContentView dealloc]): |
| (-[WKContentView page]): |
| (-[WKContentView updateFixedClippingView:]): |
| (-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]): |
| (-[WKContentView _updateForScreen:]): |
| (-[WKContentView _accessibilityRegisterUIProcessTokens]): |
| (-[WKContentView _createDrawingAreaProxy]): |
| (-[WKContentView _didCommitLayerTree:]): |
| (-[WKContentView _wk_pageCountForPrintFormatter:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): |
| (hasAssistedNode): |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView positionInformation]): |
| (-[WKContentView _webTouchEventsRecognized:]): |
| (inflateQuad): |
| (-[WKContentView _updateTapHighlight]): |
| (-[WKContentView _showTapHighlight]): |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView _displayFormNodeInputView]): |
| (-[WKContentView inputView]): |
| (-[WKContentView _actionForLongPressFromPositionInformation:]): |
| (-[WKContentView currentPositionInformation]): |
| (-[WKContentView doAfterPositionInformationUpdate:forRequest:]): |
| (-[WKContentView _currentPositionInformationIsValidForRequest:]): |
| (-[WKContentView _hasValidOutstandingPositionInformationRequest:]): |
| (-[WKContentView _currentPositionInformationIsApproximatelyValidForRequest:]): |
| (-[WKContentView gestureRecognizerShouldBegin:]): |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView webSelectionRectsForSelectionRects:]): |
| (-[WKContentView _twoFingerSingleTapGestureRecognized:]): |
| (-[WKContentView _stylusSingleTapRecognized:]): |
| (-[WKContentView _singleTapCommited:]): |
| (-[WKContentView _attemptClickAtLocation:]): |
| (-[WKContentView _positionInformationDidChange:]): |
| (-[WKContentView requiresAccessoryView]): |
| (-[WKContentView supportedPasteboardTypesForCurrentSelection]): |
| (-[WKContentView _lookupForWebView:]): |
| (-[WKContentView _shareForWebView:]): |
| (-[WKContentView textStylingAtPosition:inDirection:]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView selectForWebView:]): |
| (-[WKContentView _accessibilityRetrieveRectsEnclosingSelectionOffset:withGranularity:]): |
| (-[WKContentView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): |
| (toGestureType): |
| (toUIWKGestureType): |
| (toSelectionTouch): |
| (toUIWKSelectionTouch): |
| (toGestureRecognizerState): |
| (toUIGestureRecognizerState): |
| (toUIWKSelectionFlags): |
| (toWKTextGranularity): |
| (toWKSelectionDirection): |
| (selectionChangedWithGesture): |
| (selectionChangedWithTouch): |
| (-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]): |
| (-[WKContentView autocorrectionData]): |
| (-[WKContentView requestAutocorrectionRectsForString:withCompletionHandler:]): |
| (-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): |
| (-[WKContentView _updateAccessory]): |
| (-[WKContentView selectedTextRange]): |
| (-[WKContentView setMarkedText:selectedRange:]): |
| (coreWritingDirection): |
| (-[WKContentView closestPositionToPoint:]): |
| (-[WKContentView insertText:]): |
| (-[WKContentView textInputTraits]): |
| (-[WKContentView handleKeyWebEvent:]): |
| (-[WKContentView handleKeyWebEvent:withCompletionHandler:]): |
| (-[WKContentView isScrollableForKeyboardScrollViewAnimator:]): |
| (-[WKContentView keyboardScrollViewAnimator:distanceForIncrement:]): |
| (-[WKContentView assistedNodeInformation]): |
| (-[WKContentView assistedNodeSelectOptions]): |
| (isAssistableInputType): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView updateCurrentAssistedNodeInformation:]): |
| (-[WKContentView presentViewControllerForCurrentAssistedNode]): |
| (-[WKContentView actionNameForFocusedFormControlView:]): |
| (-[WKContentView selectWordForReplacement]): |
| (-[WKContentView _updateChangedSelection:]): |
| (-[WKContentView _beginSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _stopSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]): |
| (-[WKContentView _showRunOpenPanel:resultListener:]): |
| (-[WKContentView _showShareSheet:completionHandler:]): |
| (-[WKContentView positionInformationForActionSheetAssistant:]): |
| (-[WKContentView updatePositionInformationForActionSheetAssistant:]): |
| (-[WKContentView _startDrag:item:]): |
| (-[WKContentView _didHandleAdditionalDragItemsRequest:]): |
| (-[WKContentView _didHandleStartDataInteractionRequest:]): |
| (dropOperationForWebCoreDragOperation): |
| (-[WKContentView dragDataForDropSession:dragDestinationAction:]): |
| (-[WKContentView _didConcludeEditDataInteraction:]): |
| (-[WKContentView _didPerformDragOperation:]): |
| (-[WKContentView _prepareToDragPromisedAttachment:]): |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): |
| (-[WKContentView _autofillContext]): |
| (-[WKContentView _dragInteraction:itemsForAddingToSession:withTouchAtPoint:completion:]): |
| (-[WKContentView _dragInteraction:prepareForSession:completion:]): |
| (-[WKContentView dragInteraction:itemsForBeginningSession:]): |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| (-[WKContentView dragInteraction:session:didEndWithOperation:]): |
| (-[WKContentView dragInteraction:item:willAnimateCancelWithAnimator:]): |
| (-[WKContentView dropInteraction:performDrop:]): |
| (-[WKContentView dropInteraction:sessionDidEnd:]): |
| (-[WKContentView allowsLanguageSelectionMenuForListViewController:]): |
| (-[WKContentView shouldDisplayInputContextViewForListViewController:]): |
| (-[WKContentView numericInputModeForListViewController:]): |
| (-[WKContentView textContentTypeForListViewController:]): |
| (-[WKContentView allowsDictationInputForListViewController:]): |
| (-[WKContentView _simulateLongPressActionAtLocation:]): |
| (-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]): |
| (-[WKContentView _presentationRectsForPreviewItemController:]): |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::interface const): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController _manager]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullscreenAnimationController configureInitialAndFinalStatesForTransition:]): |
| (-[WKFullScreenWindowController isFullScreen]): |
| (-[WKFullScreenWindowController enterFullScreen]): |
| (-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController _completedExitFullScreen]): |
| (-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]): |
| (-[WKFullScreenWindowController _exitFullscreenImmediately]): |
| (-[WKFullScreenWindowController _manager]): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (mediaTimeToCurrentTime): |
| (-[WKAnimationDelegate initWithLayerID:layerTreeHost:]): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| (-[WKAccessibilityWebPageObjectBase accessibilityRootObjectWrapper]): |
| |
| 2018-12-10 Tim Horton <timothy_horton@apple.com> |
| |
| WKWebView should support custom tintColor |
| https://bugs.webkit.org/show_bug.cgi?id=192518 |
| <rdar://problem/37243261> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView insertionPointColor]): |
| (-[WKContentView selectionBarColor]): |
| (-[WKContentView selectionHighlightColor]): |
| Grab insertion point and selection colors from UITextInputTraits. |
| |
| (-[WKContentView _updateInteractionTintColor]): |
| Determine our effective tint color: |
| - transparent if interaction is disabled |
| - a CSS-derived color if caret-color style is applied |
| - the _inheritedInteractionTintColor, which climbs up to the tintColor API |
| Apply it to our UITextInputTraits. |
| |
| (-[WKContentView tintColorDidChange]): |
| (-[WKContentView textInputTraits]): |
| Call _updateInteractionTintColor whenever we create a new UITextInputTraits |
| or when the tint color changes. |
| |
| 2018-12-09 Youenn Fablet <youenn@apple.com> |
| |
| Move capture manager from RealtimeMediaSourceCenter to capture factory |
| https://bugs.webkit.org/show_bug.cgi?id=192542 |
| |
| Reviewed by Eric Carlson. |
| |
| Make sure to unregister for video capture as done for other capture types. |
| Implement manager which should be doing nothing as the manager is used for enumeration of devices |
| which should only happen in UIProcess. |
| |
| Given that mock capture is interfering with UserMediaCaptureManager, |
| switching on/off mock capture will require creating a new process. |
| This shortcoming should be fixed once mock capture will be fully happening in |
| the same process as regular capture. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::~UserMediaCaptureManager): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| |
| 2018-12-09 Saam barati <sbarati@apple.com> |
| |
| Enable HTTP and HTTPS proxies on iOS and make it a property of the NSURLSession |
| https://bugs.webkit.org/show_bug.cgi?id=192374 |
| <rdar://problem/46506286> |
| |
| Reviewed by Alex Christensen. |
| |
| This patch makes it so that we can use HTTP/HTTPS proxies on iOS as well. |
| To enable on iOS, you can do something like: |
| $ defaults write -g WebKit2HTTPProxy -string "http://localhost:8080" |
| $ defaults write -g WebKit2HTTPSProxy -string "http://localhost:8080" |
| |
| This patch also changes the Proxy to be enabled on a per NSURLSession |
| basis instead of a per process basis. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: |
| (WebKit::NetworkSessionCreationParameters::privateSessionParameters): |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::proxyDictionary): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcess): |
| (WebKit::overrideSystemProxies): Deleted. |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration httpProxy]): |
| (-[_WKWebsiteDataStoreConfiguration setHTTPProxy:]): |
| (-[_WKWebsiteDataStoreConfiguration httpsProxy]): |
| (-[_WKWebsiteDataStoreConfiguration setHTTPSProxy:]): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: |
| (WebKit::WebsiteDataStoreConfiguration::copy): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: |
| (WebKit::WebsiteDataStoreConfiguration::httpProxy const): |
| (WebKit::WebsiteDataStoreConfiguration::setHTTPProxy): |
| (WebKit::WebsiteDataStoreConfiguration::httpsProxy const): |
| (WebKit::WebsiteDataStoreConfiguration::setHTTPSProxy): |
| |
| 2018-12-09 Adrian Perez de Castro <aperez@igalia.com> |
| |
| Build failure due to missing include of APIWebsiteDataStore.h |
| https://bugs.webkit.org/show_bug.cgi?id=192541 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: Add missing |
| include of APIWebsiteDataStore.h |
| |
| 2018-12-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS device] Crash when attempting to call -[_WKAttachment info] for an editable image |
| https://bugs.webkit.org/show_bug.cgi?id=192538 |
| |
| Reviewed by Tim Horton. |
| |
| Fix the crash by ensuring that the result of `-renderedDrawing` survives long enough to be wrapped by a |
| `RetainPtr` in `-PNGRepresentation`. This isn't currently testable, since this codepath isn't supported on the |
| iOS simulator; instead, I manually verified using MobileAttachments.app. |
| |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView renderedDrawing]): |
| |
| 2018-12-09 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r239010. |
| https://bugs.webkit.org/show_bug.cgi?id=192537 |
| |
| Breaks fast/visual-viewport/tiled-drawing/zoomed-fixed- |
| scrolling-layers-state.html again (Requested by ap on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Allow control over child order when adding nodes to the |
| scrolling tree" |
| https://bugs.webkit.org/show_bug.cgi?id=176914 |
| https://trac.webkit.org/changeset/239010 |
| |
| 2018-12-08 Alex Christensen <achristensen@webkit.org> |
| |
| Don't programmatically capitalize safe browsing warning buttons |
| https://bugs.webkit.org/show_bug.cgi?id=192531 |
| <rdar://problem/46417791> |
| |
| Reviewed by Darin Adler. |
| |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (makeButton): |
| |
| 2018-12-08 Alex Christensen <achristensen@webkit.org> |
| |
| Safe browsing warning should respect text size from settings |
| https://bugs.webkit.org/show_bug.cgi?id=192205 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (fontWithSize): |
| (makeButton): |
| (-[WKSafeBrowsingWarning addContent]): |
| (-[WKSafeBrowsingWarning showDetailsClicked]): |
| |
| 2018-12-08 Frederic Wang <fwang@igalia.com> |
| |
| Allow control over child order when adding nodes to the scrolling tree |
| https://bugs.webkit.org/show_bug.cgi?id=176914 |
| <rdar://problem/46542237> |
| |
| Reviewed by Simon Fraser. |
| |
| Based on an earlier patch by Simon Fraser. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (WebKit::RemoteScrollingCoordinatorTransaction::decode): |
| |
| 2018-12-07 Rob Buis <rbuis@igalia.com> |
| |
| Remove unused API in NetworkProcess |
| https://bugs.webkit.org/show_bug.cgi?id=192415 |
| |
| Reviewed by Alex Christensen. |
| |
| This patch removed some unused API and headers in NetworkProcess. |
| |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::startPreflight): |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkContentRuleListManager.h: |
| * NetworkProcess/NetworkDataTask.cpp: |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| * NetworkProcess/NetworkLoad.cpp: |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkLoadClient.h: |
| * NetworkProcess/NetworkLoadParameters.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveBuffer): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/NetworkSession.cpp: |
| * NetworkProcess/NetworkSession.h: |
| * NetworkProcess/NetworkSocketStream.cpp: |
| * NetworkProcess/NetworkSocketStream.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::PingLoad): |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/PreconnectTask.cpp: |
| (WebKit::PreconnectTask::PreconnectTask): |
| (WebKit::PreconnectTask::frameID const): Deleted. |
| (WebKit::PreconnectTask::pageID const): Deleted. |
| * NetworkProcess/PreconnectTask.h: |
| |
| 2018-12-07 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] 'devicechange' event should not fire in frames that can't access capture devices |
| https://bugs.webkit.org/show_bug.cgi?id=192511 |
| <rdar://problem/46562063> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/UserMediaPermissionCheckProxy.cpp: |
| (WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy): Remove userMediaID parameter. |
| (WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): ID not passed to callback. |
| * UIProcess/UserMediaPermissionCheckProxy.h: |
| (WebKit::UserMediaPermissionCheckProxy::create): |
| (WebKit::UserMediaPermissionCheckProxy::completionHandler): Deleted. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::generateRequestID): New. |
| (WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged): Don't notify if |
| the page does not have a granted request and does not have persistent access. |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Use generateRequestID. |
| (WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): Change variable name. |
| (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Use generateRequestID. |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| 2018-12-07 Saam Barati <sbarati@apple.com> |
| |
| WKWebProcessPlugInLoadDelegate should have API for saying which rendering events it wants to listen for |
| https://bugs.webkit.org/show_bug.cgi?id=192473 |
| |
| Reviewed by Andy Estes. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (PageLoaderClient::layoutMilestones const): |
| |
| 2018-12-07 Youenn Fablet <youenn@apple.com> |
| |
| Update libwebrtc up to 0d007d7c4f |
| https://bugs.webkit.org/show_bug.cgi?id=192316 |
| |
| Reviewed by Eric Carlson. |
| |
| Update code base according new libwebrtc backend |
| In particular, use directly int64_t for packet time. |
| |
| * Configurations/WebKit.xcconfig: |
| * NetworkProcess/webrtc/LibWebRTCSocketClient.cpp: |
| (WebKit::LibWebRTCSocketClient::signalReadPacket): |
| * NetworkProcess/webrtc/LibWebRTCSocketClient.h: |
| * NetworkProcess/webrtc/NetworkRTCProvider.cpp: |
| * NetworkProcess/webrtc/NetworkRTCSocket.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocket.cpp: |
| (WebKit::LibWebRTCSocket::signalReadPacket): |
| |
| 2018-12-07 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r238947. |
| |
| Revision caused fast/visual-viewport/tiled-drawing/zoomed- |
| fixed-scrolling-layers-state.html to constantly fail |
| |
| Reverted changeset: |
| |
| "Allow control over child order when adding nodes to the |
| scrolling tree" |
| https://bugs.webkit.org/show_bug.cgi?id=176914 |
| https://trac.webkit.org/changeset/238947 |
| |
| 2018-12-06 David Kilzer <ddkilzer@apple.com> |
| |
| Injected bundle for WebKitTestRunner leaks WKTypeRef objects |
| <https://webkit.org/b/192481> |
| <rdar://problem/46539059> |
| |
| Reviewed by Simon Fraser. |
| |
| Change function parameter name from `returnData[Ref]` to |
| `returnRetainedData[Ref]` to document that the value returned is |
| a +1 retained WKTypeRef object. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundlePostSynchronousMessage): |
| * WebProcess/InjectedBundle/API/c/WKBundle.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePagePostSynchronousMessageForTesting): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| |
| 2018-12-06 Frederic Wang <fwang@igalia.com> |
| |
| Allow control over child order when adding nodes to the scrolling tree |
| https://bugs.webkit.org/show_bug.cgi?id=176914 |
| |
| Reviewed by Simon Fraser. |
| |
| Based on an earlier patch by Simon Fraser. |
| |
| * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: |
| (WebKit::RemoteScrollingCoordinatorTransaction::decode): Make explicit that we want to append |
| the new node at the end of child list. |
| |
| 2018-12-06 Yongjun Zhang <yongjun_zhang@apple.com> |
| |
| We should ignore minimumEffectiveDeviceWidth if the page specifies device-width in viewport meta-tag. |
| https://bugs.webkit.org/show_bug.cgi?id=192377 |
| <rdar://problem/46364206> |
| |
| Reviewed by Tim Horton. |
| |
| Since we are using page's viewport arguments to decide the default viewport parameters and |
| whether we can use mininum effective device width, we should always call setViewportArguments() |
| regardless of shouldIgnoreMetaViewport settings. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::viewportPropertiesDidChange): Always call setViewportArguments(). |
| (WebKit::WebPage::didCommitLoad): Ditto. |
| |
| 2018-12-06 Tim Horton <timothy_horton@apple.com> |
| |
| Web Share API: share overlay does not stick to the Safari window |
| https://bugs.webkit.org/show_bug.cgi?id=192469 |
| <rdar://problem/46074833> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/Cocoa/WKShareSheet.mm: |
| (-[WKShareSheet sharingServicePicker:didChooseSharingService:]): |
| (-[WKShareSheet sharingServicePicker:delegateForSharingService:]): |
| (-[WKShareSheet sharingService:sourceWindowForShareItems:sharingContentScope:]): |
| (-[WKShareSheet sharingService:didFailToShareItems:error:]): |
| (-[WKShareSheet sharingService:didShareItems:]): |
| Implement another NSSharingServicePickerDelegate method to return |
| an *NSSharingService* delegate when needed. |
| |
| Implement an NSSharingServiceDelegate method to return the window that |
| the service's UI should attach to. |
| |
| Also, instead of notifying the Web Content process when a service is picked |
| (or not) in the NSSharingServicePicker, wait until the share has completed |
| (or failed) to send didComplete. This both makes the return completion |
| value more accurate (matching iOS, if you cancel the share during the |
| recipient choice step, it will now fail), and avoids explicitly tearing |
| down the NSSharingServicePicker too early, which breaks the UI attaching mechanism. |
| |
| 2018-12-06 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] WKWebView should match UITextView behavior when editing text with an RTL keyboard |
| https://bugs.webkit.org/show_bug.cgi?id=187554 |
| <rdar://problem/42075638> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for automatically switching the base writing direction to the default writing direction with respect |
| to the current keyboard in an editable WKWebView by implementing `-setBaseWritingDirection:forRange:`. On iOS 12 |
| and earlier, UIKit invokes this protocol method whenever the keyboard is changed to one with a different writing |
| direction, although in some other versions of iOS, this only happens when first focusing an editable area. |
| |
| Test: editing/input/ios/rtl-keyboard-input-on-focus.html |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| Declare UIKeyboardImpl IPI methods mostly for use in WebKitTestRunner (with the exception of |
| `-setInitialDirection`, which we may invoke when we receive the first post-layout EditorState update after |
| focusing an editable element). |
| |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::increaseListLevel): |
| (WebKit::WebPageProxy::decreaseListLevel): |
| (WebKit::WebPageProxy::changeListType): |
| (WebKit::WebPageProxy::setBaseWritingDirection): |
| |
| Drive-by style fixes: make these bail and return early if `!isValid()`. |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| |
| Reset assisted node state in the UI process upon web process termination. |
| |
| * UIProcess/WebPageProxy.h: |
| |
| Add plumbing for `setBaseWritingDirection`, from `WebPageProxy` to `WebPage` to `Editor`. |
| |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::didReceiveEditorStateUpdateAfterFocus): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView baseWritingDirectionForPosition:inDirection:]): |
| (coreWritingDirection): |
| (-[WKContentView setBaseWritingDirection:forRange:]): |
| |
| Support `-setBaseWritingDirectionForPosition:forRange:`, but only in the case where the given range is the |
| selected range. This is all that's currently needed to fulfill the requirements in <rdar://problem/42075638>, |
| though we could potentially add full support for this in the future by mapping the given text range to a DOM |
| range and moving the selection prior to setting the base writing direction. |
| |
| (-[WKContentView _didReceiveEditorStateUpdateAfterFocus]): |
| |
| Add a hook to notify WKContentView when the first post-layout EditorState has been received in the UI process. |
| When this is invoked, if the web view is editable and the selection is not a range, we call into `UIKeyboardImpl` |
| to change the initial writing direction if necessary. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::startAssistingNode): |
| (WebKit::WebPageProxy::stopAssistingNode): |
| (WebKit::WebPageProxy::editorStateChanged): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setBaseWritingDirection): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-12-06 David Quesada <david_quesada@apple.com> |
| |
| -[WKProcessPool _resumeDownloadFromData:path:] should allow specifying the originating web view |
| https://bugs.webkit.org/show_bug.cgi?id=192411 |
| rdar://problem/46492487 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextResumeDownload): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _resumeDownloadFromData:path:originatingWebView:]): |
| (-[WKProcessPool _resumeDownloadFromData:path:]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::resumeDownload): |
| - Set the originating page of the DownloadProxy. |
| - If the originating page is non-null, use its session ID for the download. |
| - Remove a FIXME. It's possible to do this now by providing the web view whose session |
| should be used for the download. |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-12-06 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a quick fix after r238919 |
| |
| Add an early return such that the error message is actually meaningful. |
| |
| * UIProcess/WebAuthentication/Mock/MockHidService.cpp: |
| (WebKit::MockHidService::platformStartDiscovery): |
| |
| 2018-12-06 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused LoaderStrategy::storeDerivedDataToCache and associated dead code |
| https://bugs.webkit.org/show_bug.cgi?id=192452 |
| |
| Reviewed by Anders Carlsson. |
| |
| This was introduced in r210835 but never used. |
| It's preventing me from making the disk cache associated with a SessionID/NetworkSession. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::storeDerivedDataToCache): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| (WebKit::NetworkResourceLoadParameters::decode): |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| (WebKit::NetworkResourceLoader::continueProcessingCachedEntryAfterDidReceiveResponse): Deleted. |
| * NetworkProcess/NetworkResourceLoader.h: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess): |
| (WebKit::WebLoaderStrategy::storeDerivedDataToCache): Deleted. |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| (WebKit::WebResourceLoader::didRetrieveDerivedData): Deleted. |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| |
| 2018-12-06 Carlos Eduardo Ramalho <cadubentzen@gmail.com> |
| |
| REGRESSION(r231043): [GTK] Undefined references to WebCore::LayerRepresentation::* with -DENABLE_OPENGL=OFF builds |
| https://bugs.webkit.org/show_bug.cgi?id=191997 |
| |
| Reviewed by Philippe Normand. |
| |
| Fix build with -DENABLE_OPENGL=OFF and -DENABLE_VIDEO=OFF. |
| |
| * Shared/WebEventConversion.cpp: |
| (WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent): add required #if ENABLE(ASYNC_SCROLLING) |
| |
| 2018-12-05 Ryosuke Niwa <rniwa@webkit.org> |
| |
| REGRESSION(PSON): Process swapping code doesn't set DisplayID in WebContent process |
| https://bugs.webkit.org/show_bug.cgi?id=192290 |
| |
| Reviewed by Simon Fraser. |
| |
| Fixed the bug by updating the DisplayID upon attaching to a WebContent process |
| after a process swap as well as after the previous WebContent process had crashed. |
| |
| Unfortunately no new tests since WebKitTestRunner / DumpRenderTree should use 0 as DisplayID |
| as they have an off-screen NSWindow. The issue that this results in no fallback for |
| the animation timer is tracked by webkit.org/b/192448. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::didRelaunchProcess): |
| |
| 2018-12-05 Youenn Fablet <youenn@apple.com> |
| |
| Remove a document entry from NetworkMDNSRegister::m_services when document goes away |
| https://bugs.webkit.org/show_bug.cgi?id=192429 |
| |
| Reviewed by Eric Carlson. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::unregisterMDNSNames): |
| We should remove the entry to limit the size of the map. |
| |
| 2018-12-05 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [Mac] Layout Test http/wpt/webauthn/public-key-credential-create-success-hid.https.html and http/wpt/webauthn/public-key-credential-get-success-hid.https.html are flaky |
| https://bugs.webkit.org/show_bug.cgi?id=192061 |
| |
| Reviewed by Dewei Zhu. |
| |
| Part 1. |
| |
| Add some loggings to determine possible causes for the flakiness. |
| |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: |
| (WebKit::HidService::continueAddDeviceAfterGetInfo): |
| * UIProcess/WebAuthentication/Mock/MockHidService.cpp: |
| (WebKit::MockHidService::platformStartDiscovery): |
| |
| 2018-12-05 Chris Dumez <cdumez@apple.com> |
| |
| Simplify logic inside WebPageProxy::continueNavigationInNewProcess() |
| https://bugs.webkit.org/show_bug.cgi?id=192404 |
| |
| Reviewed by Alex Christensen. |
| |
| Simplify get the item state from the current back/forward list item, instead of |
| relying on WebBackForwardList::filteredItemStates(). |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| |
| 2018-12-05 Youenn Fablet <youenn@apple.com> |
| |
| Enable the possibility to do video capture in UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=192394 |
| |
| Reviewed by Eric Carlson. |
| |
| Add two web preferences to toggle audio/video capture in UIProcess or WebProcess. |
| Add mechanism for video capture that was not implemented yet. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetCaptureAudioInUIProcessEnabled): |
| (WKPreferencesGetCaptureAudioInUIProcessEnabled): |
| (WKPreferencesSetCaptureVideoInUIProcessEnabled): |
| (WKPreferencesGetCaptureVideoInUIProcessEnabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * UIProcess/WebPreferences.cpp: |
| (WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::createWebPage): |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::initialize): |
| |
| 2018-12-05 Alex Christensen <achristensen@webkit.org> |
| |
| Make WebsiteDataStoreConfiguration a proper API object |
| https://bugs.webkit.org/show_bug.cgi?id=192380 |
| |
| Reviewed by Youenn Fablet. |
| |
| In the immediate future I'll need to add things to _WKWebsiteDataStoreConfiguration. |
| Instead of making ivars, setting them, copying them to a local object, make this a wrapper of an API::Object |
| like all our other ObjC API objects are. |
| |
| * Shared/API/APIObject.h: |
| (API::Object::wrapper const): |
| (API::Object::wrapper): Deleted. |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::ref const): |
| (API::Object::deref const): |
| (API::Object::newObject): |
| (API::Object::ref): Deleted. |
| (API::Object::deref): Deleted. |
| * Sources.txt: |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::createLegacy): |
| (API::WebsiteDataStore::WebsiteDataStore): |
| (API::WebsiteDataStore::legacyDefaultDataStoreConfiguration): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::defaultDataStoreConfiguration): |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (-[WKWebsiteDataStore _initWithConfiguration:]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm: |
| (-[_WKWebsiteDataStoreConfiguration _webStorageDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setWebStorageDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration _indexedDBDatabaseDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setIndexedDBDatabaseDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration _webSQLDatabaseDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setWebSQLDatabaseDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration _cookieStorageFile]): |
| (-[_WKWebsiteDataStoreConfiguration _setCookieStorageFile:]): |
| (-[_WKWebsiteDataStoreConfiguration _resourceLoadStatisticsDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setResourceLoadStatisticsDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration _cacheStorageDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setCacheStorageDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration _serviceWorkerRegistrationDirectory]): |
| (-[_WKWebsiteDataStoreConfiguration _setServiceWorkerRegistrationDirectory:]): |
| (-[_WKWebsiteDataStoreConfiguration setSourceApplicationBundleIdentifier:]): |
| (-[_WKWebsiteDataStoreConfiguration sourceApplicationBundleIdentifier]): |
| (-[_WKWebsiteDataStoreConfiguration sourceApplicationSecondaryIdentifier]): |
| (-[_WKWebsiteDataStoreConfiguration setSourceApplicationSecondaryIdentifier:]): |
| (-[_WKWebsiteDataStoreConfiguration _apiObject]): |
| * UIProcess/API/Cocoa/_WKWebsiteDataStoreConfigurationInternal.h: Added. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::legacyWebsiteDataStoreConfiguration): |
| (WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::create): |
| (WebKit::WebsiteDataStore::WebsiteDataStore): |
| (WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary): |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::parameters): |
| (WebKit::WebsiteDataStore::Configuration::Configuration): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::cacheStoragePerOriginQuota const): |
| (WebKit::WebsiteDataStore::setCacheStoragePerOriginQuota): |
| (WebKit::WebsiteDataStore::cacheStorageDirectory const): |
| (WebKit::WebsiteDataStore::setCacheStorageDirectory): |
| (WebKit::WebsiteDataStore::serviceWorkerRegistrationDirectory const): |
| (WebKit::WebsiteDataStore::setServiceWorkerRegistrationDirectory): |
| (WebKit::WebsiteDataStore::resolvedApplicationCacheDirectory const): |
| (WebKit::WebsiteDataStore::resolvedMediaCacheDirectory const): |
| (WebKit::WebsiteDataStore::resolvedMediaKeysDirectory const): |
| (WebKit::WebsiteDataStore::resolvedDatabaseDirectory const): |
| (WebKit::WebsiteDataStore::resolvedJavaScriptConfigurationDirectory const): |
| (WebKit::WebsiteDataStore::resolvedCookieStorageFile const): |
| (WebKit::WebsiteDataStore::resolvedIndexedDatabaseDirectory const): |
| (WebKit::WebsiteDataStore::resolvedServiceWorkerRegistrationDirectory const): |
| (WebKit::WebsiteDataStore::resolvedResourceLoadStatisticsDirectory const): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp: Added. |
| (WebKit::WebsiteDataStoreConfiguration::WebsiteDataStoreConfiguration): |
| * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h: Added. |
| (WebKit::WebsiteDataStoreConfiguration::create): |
| (WebKit::WebsiteDataStoreConfiguration::cacheStoragePerOriginQuota): |
| (WebKit::WebsiteDataStoreConfiguration::setCacheStoragePerOriginQuota): |
| (WebKit::WebsiteDataStoreConfiguration::applicationCacheDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setApplicationCacheDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::mediaCacheDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setMediaCacheDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::mediaKeysStorageDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setMediaKeysStorageDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::javaScriptConfigurationDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setJavaScriptConfigurationDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::webStorageDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setWebStorageDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::indexedDBDatabaseDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setIndexedDBDatabaseDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::webSQLDatabaseDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setWebSQLDatabaseDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::localStorageDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setLocalStorageDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::cookieStorageFile const): |
| (WebKit::WebsiteDataStoreConfiguration::setCookieStorageFile): |
| (WebKit::WebsiteDataStoreConfiguration::resourceLoadStatisticsDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setResourceLoadStatisticsDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::networkCacheDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setNetworkCacheDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::cacheStorageDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setCacheStorageDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::applicationCacheFlatFileSubdirectoryName const): |
| (WebKit::WebsiteDataStoreConfiguration::setApplicationCacheFlatFileSubdirectoryName): |
| (WebKit::WebsiteDataStoreConfiguration::serviceWorkerRegistrationDirectory const): |
| (WebKit::WebsiteDataStoreConfiguration::setServiceWorkerRegistrationDirectory): |
| (WebKit::WebsiteDataStoreConfiguration::sourceApplicationBundleIdentifier const): |
| (WebKit::WebsiteDataStoreConfiguration::setSourceApplicationBundleIdentifier): |
| (WebKit::WebsiteDataStoreConfiguration::sourceApplicationSecondaryIdentifier const): |
| (WebKit::WebsiteDataStoreConfiguration::setSourceApplicationSecondaryIdentifier): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-12-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Turn WritingDirection into an enum class |
| https://bugs.webkit.org/show_bug.cgi?id=192401 |
| Work towards <rdar://problem/42075638> |
| |
| Reviewed by Dan Bernstein. |
| |
| Change WritingDirection from an enum to an enum class. No change in behavior. |
| |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::setTextDirection): |
| |
| 2018-12-05 Rob Buis <rbuis@igalia.com> |
| |
| [Mac] HEAD requests changed to GET after 301, 302, and 303 redirections (http/tests/xmlhttprequest/head-redirection.html) |
| https://bugs.webkit.org/show_bug.cgi?id=114965 |
| |
| Reviewed by Frédéric Wang. |
| |
| HEAD requests should not be changed to GET after 303 redirects, see [1]. |
| This was fixed earlier for GTK [2]. |
| |
| Behavior matches Firefox and Chrome. |
| |
| [1] http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-21#section-7.4 |
| [2] https://bugs.webkit.org/show_bug.cgi?id=110127 |
| |
| Tests: web-platform-tests/fetch/api/redirect/redirect-method.html |
| web-platform-tests/fetch/api/redirect/redirect-method-worker.html |
| http/tests/xmlhttprequest/head-redirection.html |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| |
| 2018-12-04 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove using namespace WebCore and WebKit under WebKit/Shared/API |
| https://bugs.webkit.org/show_bug.cgi?id=192352 |
| |
| Reviewed by Alex Christensen. |
| |
| Removed using namespace statements, and use namespace prefix |
| instead. |
| |
| * Shared/API/APIURLRequest.cpp: |
| * Shared/API/APIURLResponse.cpp: |
| * Shared/API/c/WKArray.cpp: |
| * Shared/API/c/WKCertificateInfo.cpp: |
| * Shared/API/c/WKConnectionRef.cpp: |
| * Shared/API/c/WKContextMenuItem.cpp: |
| * Shared/API/c/WKData.cpp: |
| * Shared/API/c/WKDictionary.cpp: |
| * Shared/API/c/WKErrorRef.cpp: |
| * Shared/API/c/WKGeometry.cpp: |
| * Shared/API/c/WKImage.cpp: |
| * Shared/API/c/WKMutableArray.cpp: |
| * Shared/API/c/WKMutableDictionary.cpp: |
| * Shared/API/c/WKNumber.cpp: |
| * Shared/API/c/WKPluginInformation.cpp: |
| * Shared/API/c/WKRenderLayer.cpp: |
| * Shared/API/c/WKRenderObject.cpp: |
| * Shared/API/c/WKSecurityOriginRef.cpp: |
| * Shared/API/c/WKSerializedScriptValue.cpp: |
| * Shared/API/c/WKString.cpp: |
| * Shared/API/c/WKType.cpp: |
| * Shared/API/c/WKURL.cpp: |
| * Shared/API/c/WKURLRequest.cpp: |
| * Shared/API/c/WKURLResponse.cpp: |
| * Shared/API/c/WKUserContentURLPattern.cpp: |
| * Shared/API/c/cairo/WKImageCairo.cpp: |
| * Shared/API/c/curl/WKCertificateInfoCurl.cpp: |
| |
| 2018-12-04 Alex Christensen <achristensen@webkit.org> |
| |
| Remove source application identifiers from NetworkProcessCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=192372 |
| |
| Reviewed by Brady Eidson. |
| |
| The _WKWebProcessPoolConfiguration way of setting these was deprecated in http://trac.webkit.org/r235127 |
| The replacement was adopted in <rdar://problem/46359330> |
| The transition process is done! Time to remove the old code. |
| |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| (WebKit::globalSourceApplicationAuditTokenData): Deleted. |
| (WebKit::globalSourceApplicationBundleIdentifier): Deleted. |
| (WebKit::globalSourceApplicationSecondaryIdentifier): Deleted. |
| (WebKit::NetworkSessionCocoa::setSourceApplicationAuditTokenData): Deleted. |
| (WebKit::NetworkSessionCocoa::setSourceApplicationBundleIdentifier): Deleted. |
| (WebKit::NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier): Deleted. |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration sourceApplicationBundleIdentifier]): |
| (-[_WKProcessPoolConfiguration setSourceApplicationBundleIdentifier:]): |
| (-[_WKProcessPoolConfiguration sourceApplicationSecondaryIdentifier]): |
| (-[_WKProcessPoolConfiguration setSourceApplicationSecondaryIdentifier:]): |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): |
| (WebKit::toPKPaymentRequest): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::configuration): |
| |
| 2018-12-04 Youenn Fablet <youenn@apple.com> |
| |
| Calling getUserMedia in a link that was opened with target="_blank" does not work the second time |
| https://bugs.webkit.org/show_bug.cgi?id=188088 |
| <rdar://problem/42681448> |
| |
| Reviewed by Eric Carlson. |
| |
| On closing a page, we need to make sure to consider that the capture is ended, |
| as otherwise WebPageProxy will not get noticed from WebPage, since WebPageProxy is no longer an IPC receiver. |
| |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::endedCaptureSession): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| |
| 2018-12-04 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r238817) PSON Page Cache API tests are failing |
| https://bugs.webkit.org/show_bug.cgi?id=192348 |
| |
| Reviewed by Alex Christensen. |
| |
| Before suspending a WebProcess on iOS, we normally fake a memory pressure signal |
| so that the suspended process uses as little memory as possible while suspended. |
| Among other things, this will clear the page cache. This is an issue in the case |
| of process-swap on navigation because we keep suspended web processes around to |
| keep Page Cache functional. |
| |
| To address the issue, when a WebProcess is about to get suspended, we check if |
| the process has any suspended WebPage (WebPage used for PSON PageCache support) |
| and we bypass the PageCache clearing if it does. |
| |
| Our API tests did not catch this before r238817 because the NavigationState's |
| assertion was preventing the old WebProcesses from suspending for 3 seconds, |
| which was enough for those tests to complete. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::didFinishLoad): |
| * UIProcess/SuspendedPageProxy.h: |
| Take a background assertion until the suspension load is complete, to make sure |
| the suspension load has a chance to complete before the process gets suspended. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::hasPageRequiringPageCacheWhileSuspended const): |
| (WebKit::WebProcess::actualPrepareToSuspend): |
| * WebProcess/WebProcess.h: |
| |
| 2018-12-04 Youenn Fablet <youenn@apple.com> |
| |
| Device orientation may be wrong on page reload after crash |
| https://bugs.webkit.org/show_bug.cgi?id=192349 |
| <rdar://problem/46359466> |
| |
| Reviewed by Eric Carlson. |
| |
| On page crash, the process is relaunched and the page is reloaded. |
| At that point, the orientation information of the page is not reset until the next device orientation change. |
| To fix that, add the device orientation to the page creation parameters so that we pass it everytime we create a page. |
| Covered by manual testing. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * WebProcess/WebPage/WebPage.cpp: |
| |
| 2018-12-04 Carlos Eduardo Ramalho <cadubentzen@gmail.com> |
| |
| [WPE] Add gtk-doc |
| https://bugs.webkit.org/show_bug.cgi?id=178900 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add gtk-doc to WPE port. This patch tries to reuse as much code from |
| WebKitGTK+ as possible. |
| |
| * PlatformWPE.cmake: Write variables to gtkdoc-wpe.cfg and gtkdoc-webextensions that is used by python script later. |
| * UIProcess/API/wpe/WebKitWebContext.h: Placed sandbox functions in the same location as in the WebKitGTK+ for consistency. |
| * UIProcess/API/wpe/docs/wpe-0.1-sections.txt: Added. |
| * UIProcess/API/wpe/docs/wpe-docs.sgml: Added. |
| * WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h: Placed webkit_web_page_get_dom_document |
| in the same position as in the WebKitGTK+ for consistency. |
| * WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-0.1-sections.txt: Added. |
| * WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-docs.sgml: Added. |
| |
| 2018-12-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [SOUP] Move URLSoup back to WebCore after r238771 |
| https://bugs.webkit.org/show_bug.cgi?id=192306 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Include GUniquePtrSoup from WebCore again and fix several build failures that showed up after removing the soup |
| includes from URL header. |
| |
| * NetworkProcess/soup/NetworkDataTaskSoup.cpp: |
| (WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate): |
| * PluginProcess/PluginProcess.cpp: |
| * Shared/API/glib/WebKitURIRequest.cpp: |
| * Shared/API/glib/WebKitURIResponse.cpp: |
| * UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp: |
| * UIProcess/API/glib/WebKitURISchemeRequest.cpp: |
| (webkit_uri_scheme_request_finish_error): Use soupURIToURL(). |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_load_uri): Use soupURIToURL(). |
| * UIProcess/API/gtk/WebKitAuthenticationDialog.cpp: |
| * UIProcess/Launcher/glib/BubblewrapLauncher.h: |
| * UIProcess/Launcher/glib/FlatpakLauncher.cpp: |
| * UIProcess/Launcher/glib/FlatpakLauncher.h: |
| |
| 2018-12-04 Tim Horton <timothy_horton@apple.com> |
| |
| Fix the watchOS build; stop unnecessarily linking CorePDF |
| https://bugs.webkit.org/show_bug.cgi?id=192356 |
| <rdar://problem/46427844> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Configurations/WebKit.xcconfig: |
| * Platform/spi/ios/CorePDFSPI.h: |
| |
| 2018-12-03 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to disable animated keyboard scrolling behavior |
| https://bugs.webkit.org/show_bug.cgi?id=192331 |
| <rdar://problem/45586859> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollingAnimator invalidate]): |
| (-[WKKeyboardScrollingAnimator beginWithEvent:]): |
| (-[WKKeyboardScrollingAnimator stopAnimatedScroll]): |
| (-[WKKeyboardScrollingAnimator willStartInteractiveScroll]): |
| (-[WKKeyboardScrollingAnimator startRepeatTimerIfNeeded]): |
| (-[WKKeyboardScrollingAnimator stopRepeatTimer]): |
| (-[WKKeyboardScrollingAnimator performDiscreteScroll]): |
| (-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]): |
| (-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-12-03 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove "using namespace WebKit" under Source/WebKit/WebProcess/InjectedBundle/API |
| https://bugs.webkit.org/show_bug.cgi?id=192301 |
| |
| Reviewed by Alex Christensen. |
| |
| Removed "using namespace WebKit" statement, and use "WebKit::" |
| namespace prefix instead. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageBanner.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageGroup.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp: |
| |
| 2018-12-03 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON) Google OAuth is broken in private sessions |
| https://bugs.webkit.org/show_bug.cgi?id=192337 |
| <rdar://problem/46353558> |
| |
| Reviewed by Alex Christensen. |
| |
| In WebPageProxy::swapToWebProcess(), we would call removeWebPage() on the old WebProcessProxy and then |
| addExistingWebPage() on the new WebProcessProxy, as you would expect in case of process swap. |
| |
| The issue is that WebProcessProxy::removeWebPage() calls WebProcessPool::pageEndUsingWebsiteDataStore() |
| which would cause the session to get destroyed assuming this was the last page using it. We would |
| therefore lose session cookies after a process-swap in private session. |
| |
| To address the issue, a parameter to WebProcessPool::pageEndUsingWebsiteDataStore() and |
| WebProcessPool::pageBeginUsingWebsiteDataStore() to control if we want to tell the WebProcessPool |
| about the page beginning / ending its use of the session. In the case of a process-swap, we make |
| sure the process pool is not notified. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::close): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::createWebPage): |
| (WebKit::WebProcessProxy::addExistingWebPage): |
| (WebKit::WebProcessProxy::removeWebPage): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-12-03 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Request by the client to process-swap is ignored if the window has an opener |
| https://bugs.webkit.org/show_bug.cgi?id=192267 |
| <rdar://problem/46386886> |
| |
| Reviewed by Brady Eidson. |
| |
| If the client forces a process-swap, we should process-swap, even if the browsing |
| context has an opener (or openees). Previously, we would only bypass the cross-site |
| check, not the openee / openees checks. |
| |
| The issue when doing so is that the openee still has a opener link to the window |
| in the old process. They would see that the window is still there and navigated |
| to 'about:blank' due to our page suspension logic. To address the issue, we no |
| longer suspend the old WebPage if the process swap was forced by the client and |
| we make sure that the old WebPage gets closed. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| 2018-12-03 Keith Rollin <krollin@apple.com> |
| |
| Add .xcfilelist files |
| https://bugs.webkit.org/show_bug.cgi?id=192082 |
| <rdar://problem/46312533> |
| |
| Reviewed by Brent Fulgham. |
| |
| Add .xcfilelist files for Generate Derived Sources and Generate |
| Unified Sources build phases in Xcode. These are just being staged for |
| now; they'll be added to the Xcode projects later. |
| |
| * DerivedSources-input.xcfilelist: Added. |
| * DerivedSources-output.xcfilelist: Added. |
| * UnifiedSources-input.xcfilelist: Added. |
| * UnifiedSources-output.xcfilelist: Added. |
| |
| 2018-12-03 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS] Unreviewed build fix. |
| |
| * Platform/Logging.h: |
| |
| 2018-12-03 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused NetworkProcessCreationParameters.diskCacheSizeOverride |
| https://bugs.webkit.org/show_bug.cgi?id=192246 |
| |
| Reviewed by Chris Dumez. |
| |
| The last use of this functionality was removed in rdar://problem/46344871 |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::setCacheModel): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationDiskCacheSizeOverride): |
| (WKContextConfigurationSetDiskCacheSizeOverride): |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration diskCacheSizeOverride]): |
| (-[_WKProcessPoolConfiguration setDiskCacheSizeOverride:]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-12-03 Alex Christensen <achristensen@webkit.org> |
| |
| Add WKWebProcessPlugInLoadDelegate SPI willStartProvisionalLoadForFrame with a completion handler |
| https://bugs.webkit.org/show_bug.cgi?id=192272 |
| |
| Reviewed by Brady Eidson. |
| |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: |
| (API::InjectedBundle::PageLoaderClient::didStartProvisionalLoadForFrame): |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h: |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (ResourceLoadClient::ResourceLoadClient): |
| (ResourceLoadClient::loadDelegate const): |
| (ResourceLoadClient::pluginContextController const): |
| (PageLoaderClient::PageLoaderClient): |
| (PageLoaderClient::loadDelegate const): |
| (PageLoaderClient::pluginContextController const): |
| (PageLoaderClient::didStartProvisionalLoadForFrame): |
| (PageLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (PageLoaderClient::didFinishLoadForFrame): |
| (PageLoaderClient::globalObjectIsAvailableForFrame): |
| (PageLoaderClient::didRemoveFrameFromHierarchy): |
| (PageLoaderClient::didCommitLoadForFrame): |
| (PageLoaderClient::didFinishDocumentLoadForFrame): |
| (PageLoaderClient::didFailProvisionalLoadWithErrorForFrame): |
| (PageLoaderClient::didFailLoadWithErrorForFrame): |
| (PageLoaderClient::didSameDocumentNavigationForFrame): |
| (PageLoaderClient::didLayoutForFrame): |
| (PageLoaderClient::didReachLayoutMilestone): |
| (PageLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame): |
| (PageLoaderClient::didHandleOnloadEventsForFrame): |
| (PageLoaderClient::userAgentForURL const): |
| (ResourceLoadClient::willSendRequestForFrame): |
| (ResourceLoadClient::didInitiateLoadForResource): |
| (ResourceLoadClient::didFinishLoadForResource): |
| (ResourceLoadClient::didFailLoadForResource): |
| (-[WKWebProcessPlugInBrowserContextController setLoadDelegate:]): |
| (didStartProvisionalLoadForFrame): Deleted. |
| (didReceiveServerRedirectForProvisionalLoadForFrame): Deleted. |
| (didFinishLoadForFrame): Deleted. |
| (globalObjectIsAvailableForFrame): Deleted. |
| (didRemoveFrameFromHierarchy): Deleted. |
| (didCommitLoadForFrame): Deleted. |
| (didFinishDocumentLoadForFrame): Deleted. |
| (didFailProvisionalLoadWithErrorForFrame): Deleted. |
| (didFailLoadWithErrorForFrame): Deleted. |
| (didSameDocumentNavigationForFrame): Deleted. |
| (didLayoutForFrame): Deleted. |
| (didReachLayoutMilestone): Deleted. |
| (didFirstVisuallyNonEmptyLayoutForFrame): Deleted. |
| (didHandleOnloadEventsForFrame): Deleted. |
| (userAgentForURL): Deleted. |
| (setUpPageLoaderClient): Deleted. |
| (willSendRequestForFrame): Deleted. |
| (didInitiateLoadForResource): Deleted. |
| (didFinishLoadForResource): Deleted. |
| (didFailLoadForResource): Deleted. |
| (setUpResourceLoadClient): Deleted. |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| (WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-12-03 Tim Horton <timothy_horton@apple.com> |
| |
| Swipe snapshot stays up too long swiping around on apple.com (waiting for first paint) |
| https://bugs.webkit.org/show_bug.cgi?id=192319 |
| <rdar://problem/45928708> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame): |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| In r236966, I reverted slightly too much of r232416. |
| We still need to defer requesting a presentation update callback until |
| after the provisional load starts. Otherwise, we could get the callback |
| while we're in the 'paused' state, and drop it on the floor. That would |
| then mean that we time out instead of promptly removing the snapshot. |
| |
| 2018-12-03 Alex Christensen <achristensen@webkit.org> |
| |
| Update process assertions after swapping processes |
| https://bugs.webkit.org/show_bug.cgi?id=192318 |
| <rdar://problem/46377552> |
| |
| Reviewed by Chris Dumez. |
| |
| If the previous WebProcess had a ProcessAssertion to prevent it from being suspended, |
| after navigation and process swapping we need the new WebProcess to update its process assertions. |
| |
| * UIProcess/API/Cocoa/PageLoadStateObserver.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::didSwapWebProcesses): |
| * UIProcess/PageLoadState.cpp: |
| (WebKit::PageLoadState::didSwapWebProcesses): |
| * UIProcess/PageLoadState.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| |
| 2018-12-03 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Do not handle key events that are key commands |
| https://bugs.webkit.org/show_bug.cgi?id=191608 |
| <rdar://problem/46046013> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| A key down event may be associated with a key command. If it is then we want to execute the |
| key command instead of inserting or deleting text. We need to ask UIKit to handle the current |
| event as a key command to find out. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): Ask UIKit to handle the current event |
| as a key command. If it handles it then we're done. Otherwise, do what we do now. |
| |
| 2018-12-03 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS] Add logging channel for hover related content observation |
| https://bugs.webkit.org/show_bug.cgi?id=192312 |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| (WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver): |
| |
| 2018-12-03 Tim Horton <timothy_horton@apple.com> |
| |
| Enable swipe snapshot removal logging in release builds |
| https://bugs.webkit.org/show_bug.cgi?id=192313 |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::log const): |
| This is super-low-traffic and super-helpful logging. |
| Turn it on all the time. |
| |
| 2018-12-03 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| Use WallTime for file time |
| https://bugs.webkit.org/show_bug.cgi?id=192287 |
| |
| Reviewed by Darin Adler. |
| |
| * Shared/SessionState.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<DatabaseDetails>::decode): |
| * UIProcess/API/C/WKKeyValueStorageManager.cpp: |
| (WKKeyValueStorageManagerGetStorageDetailsByOrigin): |
| * UIProcess/API/glib/WebKitWebViewSessionState.cpp: |
| (decodeHTTPBody): |
| * UIProcess/Plugins/gtk/PluginInfoCache.cpp: |
| (WebKit::PluginInfoCache::getPluginInfo): |
| (WebKit::PluginInfoCache::updatePluginInfo): |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::hasFileChangedSince): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::databasesModifiedSince): |
| (WebKit::LocalStorageDatabaseTracker::originDetails): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * UIProcess/mac/LegacySessionStateCoding.cpp: |
| (WebKit::encodeFormDataElement): |
| (WebKit::decodeFormDataElement): |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: |
| (WebKit::removeAllMediaKeyStorageForOriginPath): |
| (WebKit::WebMediaKeyStorageManager::deleteMediaKeyEntriesForOrigin): |
| (WebKit::WebMediaKeyStorageManager::deleteMediaKeyEntriesModifiedBetweenDates): |
| (WebKit::WebMediaKeyStorageManager::deleteAllMediaKeyEntries): |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.h: |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toHTTPBody): |
| (WebKit::toFormData): |
| |
| 2018-12-03 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Check message IDs when decoding Mach messages in IPC::Connection |
| https://bugs.webkit.org/show_bug.cgi?id=192300 |
| rdar://problem/46215523 |
| |
| Reviewed by Chris Dumez. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::sendOutgoingMessage): Use message IDs other than 0 and 1 for |
| the messages, as suggested by an expert at Apple. |
| (IPC::createMessageDecoder): Update for the new message IDs. |
| (IPC::Connection::receiveSourceEventHandler): Ignore messages with unexpected |
| message IDs. |
| |
| 2018-12-03 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Check descriptor types in createMessageDecoder |
| https://bugs.webkit.org/show_bug.cgi?id=192302 |
| |
| Reviewed by Chris Dumez. |
| |
| Not sure how to construct a test case for Connection, so not adding any |
| tests at this time. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::createMessageDecoder): Check descriptor types and return nullptr if they |
| are incorrect. Retained the assertions to help with debugging. |
| (IPC::Connection::receiveSourceEventHandler): Ignore the message if no decoder |
| is created, which means the message is invalid. |
| |
| 2018-12-03 Darin Adler <darin@apple.com> |
| |
| Alignment padding needs to be zeroed out in IPC::Encoder |
| https://bugs.webkit.org/show_bug.cgi?id=192304 |
| |
| Reviewed by Chris Dumez. |
| |
| Might be useful to make a regression test for this, but I couldn't find any |
| other tests for this code. |
| |
| * Platform/IPC/Encoder.cpp: |
| (IPC::Encoder::grow): Use std::memset to zero-fill padding bytes. |
| |
| * UIProcess/mac/LegacySessionStateCoding.cpp: |
| (WebKit::HistoryEntryDataEncoder::grow): Ditto. |
| |
| 2018-12-03 Darin Adler <darin@apple.com> |
| |
| [Cocoa] Streamline sandbox code a tiny bit |
| https://bugs.webkit.org/show_bug.cgi?id=192299 |
| |
| Reviewed by Anders Carlsson. |
| |
| * Shared/mac/SandboxUtilities.mm: |
| (WebKit::processHasContainer): Removed separate function, just use the |
| pathForProcessContainer instead of repeating logic. This costs a tiny |
| bit of memory allocation overhead the first time this function is called, |
| but in return we can eliminate a second copy of the code to call |
| sandbox_container_path_for_pid. |
| |
| 2018-12-03 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] 'devicechange' event when more capture device information are revealed. |
| https://bugs.webkit.org/show_bug.cgi?id=192268 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Call captureDevicesChanged |
| if a filtered device list was returned previously. |
| (WebKit::UserMediaPermissionRequestManagerProxy::resetAccess): Clear m_hasFilteredDeviceList. |
| (WebKit::UserMediaPermissionRequestManagerProxy::wasGrantedVideoOrAudioAccess): New. |
| (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Filter device |
| list and strip device IDs if gUM permission hasn't been given. |
| (WebKit::UserMediaPermissionRequestManagerProxy::watchdogTimerFired): Clear m_hasFilteredDeviceList. |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| 2018-12-03 Keith Rollin <krollin@apple.com> |
| |
| Remove Network Capture |
| https://bugs.webkit.org/show_bug.cgi?id=192296 |
| <rdar://problem/46408648> |
| |
| Reviewed by Daniel Bates. |
| |
| r209498 introduced an embedded record and replay facility for network |
| resource loading. This facility was added in order to support a new |
| implementation of the PLT and related performance tests. The PLT is |
| currenty taking a different direction, and so this record/replace |
| facility is no longer needed. Removing it as unused code. |
| |
| * CMakeLists.txt: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::NetworkLoad): |
| (WebKit::NetworkLoad::setDefersLoading): |
| (WebKit::NetworkLoad::continueWillSendRequest): |
| (WebKit::NetworkLoad::willPerformHTTPRedirection): |
| (WebKit::NetworkLoad::notifyDidReceiveResponse): |
| (WebKit::NetworkLoad::didReceiveData): |
| (WebKit::NetworkLoad::didCompleteWithError): |
| (WebKit::NetworkLoad::initializeForRecord): Deleted. |
| (WebKit::NetworkLoad::initializeForReplay): Deleted. |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::terminate): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/capture/NetworkCaptureEvent.cpp: Removed. |
| * NetworkProcess/capture/NetworkCaptureEvent.h: Removed. |
| * NetworkProcess/capture/NetworkCaptureLogging.h: Removed. |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: Removed. |
| * NetworkProcess/capture/NetworkCaptureManager.h: Removed. |
| * NetworkProcess/capture/NetworkCaptureRecorder.cpp: Removed. |
| * NetworkProcess/capture/NetworkCaptureRecorder.h: Removed. |
| * NetworkProcess/capture/NetworkCaptureReplayer.cpp: Removed. |
| * NetworkProcess/capture/NetworkCaptureReplayer.h: Removed. |
| * NetworkProcess/capture/NetworkCaptureResource.cpp: Removed. |
| * NetworkProcess/capture/NetworkCaptureResource.h: Removed. |
| * NetworkProcess/capture/NetworkDataTaskReplay.cpp: Removed. |
| * NetworkProcess/capture/NetworkDataTaskReplay.h: Removed. |
| * NetworkProcess/capture/json.hpp: Removed. |
| * Sources.txt: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * WebKit.xcodeproj/project.pbxproj: |
| * config.h: |
| |
| 2018-12-02 Zalan Bujtas <zalan@apple.com> |
| |
| Add a runtime feature flag for LayoutFormattingContext. |
| https://bugs.webkit.org/show_bug.cgi?id=192280 |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-12-01 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] process-swapping may occur even though opener has handle to openee |
| https://bugs.webkit.org/show_bug.cgi?id=192277 |
| |
| Reviewed by Antti Koivisto. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::openedByDOMWithOpener const): |
| (API::Navigation::openedViaWindowOpenWithOpener const): Deleted. |
| (API::Navigation::opener const): Deleted. |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-12-01 Alexey Proskuryakov <ap@apple.com> |
| |
| Modernize version check for _suppressedAutoAddedHTTPHeaders |
| https://bugs.webkit.org/show_bug.cgi?id=192175 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| Also removed selector check - we only need to support running on 10.13.0 when building |
| with 10.13.0 SDK. |
| |
| 2018-11-30 Alex Christensen <achristensen@webkit.org> |
| |
| Fix Windows build. |
| |
| * UIProcess/API/C/curl/WKWebsiteDataStoreRefCurl.cpp: |
| (WKWebsiteDataStoreEnableCustomNetworkProxySettings): |
| |
| 2018-11-30 Alex Christensen <achristensen@webkit.org> |
| |
| Move URL from WebCore to WTF |
| https://bugs.webkit.org/show_bug.cgi?id=190234 |
| |
| Reviewed by Keith Miller. |
| |
| * NetworkProcess/Cookies/WebCookieManager.cpp: |
| * NetworkProcess/Cookies/WebCookieManager.h: |
| * NetworkProcess/Cookies/WebCookieManager.messages.in: |
| * NetworkProcess/CustomProtocols/Cocoa/LegacyCustomProtocolManagerCocoa.mm: |
| * NetworkProcess/Downloads/Download.h: |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::publishDownloadProgress): |
| * NetworkProcess/Downloads/DownloadManager.h: |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| (WebKit::PendingDownload::publishProgress): |
| * NetworkProcess/Downloads/PendingDownload.h: |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::publishProgress): |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| (WebKit::NetworkBlobRegistry::registerBlobURL): |
| (WebKit::NetworkBlobRegistry::registerBlobURLForSlice): |
| (WebKit::NetworkBlobRegistry::unregisterBlobURL): |
| (WebKit::NetworkBlobRegistry::blobSize): |
| (WebKit::NetworkBlobRegistry::filesInBlob): |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::didReceiveResponse): |
| * NetworkProcess/NetworkDataTaskBlob.cpp: |
| * NetworkProcess/NetworkLoadChecker.h: |
| (WebKit::NetworkLoadChecker::setContentExtensionController): |
| (WebKit::NetworkLoadChecker::url const): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::writeBlobToFilePath): |
| (WebKit::NetworkProcess::publishDownloadProgress): |
| (WebKit::NetworkProcess::preconnectTo): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoadParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::logBlockedCookieInformation): |
| (WebKit::logCookieInformationInternal): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/NetworkSocketStream.cpp: |
| (WebKit::NetworkSocketStream::create): |
| * NetworkProcess/NetworkSocketStream.h: |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::retrieveRecords): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCache.h: |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::retrieveRecords): |
| * NetworkProcess/cache/CacheStorageEngineConnection.h: |
| * NetworkProcess/cache/CacheStorageEngineConnection.messages.in: |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheStatistics.cpp: |
| (WebKit::NetworkCache::Statistics::recordRetrievedCachedEntry): |
| (WebKit::NetworkCache::Statistics::recordRevalidationSuccess): |
| * NetworkProcess/cache/NetworkCacheSubresourcesEntry.h: |
| (WebKit::NetworkCache::SubresourceInfo::firstPartyForCookies const): |
| * NetworkProcess/capture/NetworkCaptureEvent.cpp: |
| (WebKit::NetworkCapture::Request::operator WebCore::ResourceRequest const): |
| (WebKit::NetworkCapture::Response::operator WebCore::ResourceResponse const): |
| (WebKit::NetworkCapture::Error::operator WebCore::ResourceError const): |
| * NetworkProcess/capture/NetworkCaptureManager.cpp: |
| (WebKit::NetworkCapture::Manager::findBestFuzzyMatch): |
| (WebKit::NetworkCapture::Manager::fuzzyMatchURLs): |
| (WebKit::NetworkCapture::Manager::urlIdentifyingCommonDomain): |
| * NetworkProcess/capture/NetworkCaptureManager.h: |
| * NetworkProcess/capture/NetworkCaptureResource.cpp: |
| (WebKit::NetworkCapture::Resource::url): |
| (WebKit::NetworkCapture::Resource::queryParameters): |
| * NetworkProcess/capture/NetworkCaptureResource.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::deleteHSTSCacheForHostNames): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]): |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::openCFURLRef): |
| (WebKit::replacedNSWorkspace_launchApplicationAtURL_options_configuration_error): |
| * Shared/API/APIURL.h: |
| (API::URL::create): |
| (API::URL::equals): |
| (API::URL::URL): |
| (API::URL::url const): |
| (API::URL::parseURLIfNecessary const): |
| * Shared/API/APIUserContentURLPattern.h: |
| (API::UserContentURLPattern::matchesURL const): |
| * Shared/API/c/WKURLRequest.cpp: |
| * Shared/API/c/WKURLResponse.cpp: |
| * Shared/API/c/cf/WKURLCF.mm: |
| (WKURLCreateWithCFURL): |
| (WKURLCopyCFURL): |
| * Shared/API/glib/WebKitURIRequest.cpp: |
| * Shared/API/glib/WebKitURIResponse.cpp: |
| * Shared/APIWebArchiveResource.mm: |
| (API::WebArchiveResource::WebArchiveResource): |
| * Shared/AssistedNodeInformation.h: |
| * Shared/Cocoa/WKNSURLExtras.mm: |
| (-[NSURL _web_originalDataAsWTFString]): |
| (): Deleted. |
| * Shared/SessionState.h: |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::itemIsInSameDocument const): |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebErrors.h: |
| * Shared/WebHitTestResultData.cpp: |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): |
| (IPC::decode): |
| * Shared/gtk/WebErrorsGtk.cpp: |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * UIProcess/API/APIHTTPCookieStore.h: |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::appendRedirectionURL): |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::takeRedirectChain): |
| * UIProcess/API/APINavigationAction.h: |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::signedPublicKeyAndChallengeString): |
| (API::NavigationClient::contentRuleListNotification): |
| (API::NavigationClient::webGLLoadPolicy const): |
| (API::NavigationClient::resolveWebGLLoadPolicy const): |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::saveDataToFileInDownloadsFolder): |
| * UIProcess/API/APIUserScript.cpp: |
| (API::UserScript::generateUniqueURL): |
| * UIProcess/API/APIUserScript.h: |
| * UIProcess/API/APIUserStyleSheet.cpp: |
| (API::UserStyleSheet::generateUniqueURL): |
| * UIProcess/API/APIUserStyleSheet.h: |
| * UIProcess/API/C/WKOpenPanelResultListener.cpp: |
| (filePathsFromFileURLs): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageLoadPlainTextStringWithUserData): |
| (WKPageSetPageUIClient): |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/C/WKPageGroup.cpp: |
| (WKPageGroupAddUserStyleSheet): |
| (WKPageGroupAddUserScript): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetResourceLoadStatisticsPrevalentResourceForDebugMode): |
| (WKWebsiteDataStoreSetStatisticsLastSeen): |
| (WKWebsiteDataStoreSetStatisticsPrevalentResource): |
| (WKWebsiteDataStoreSetStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsVeryPrevalentResource): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubresourceUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsSubFrameUnder): |
| (WKWebsiteDataStoreIsStatisticsRegisteredAsRedirectingTo): |
| (WKWebsiteDataStoreSetStatisticsHasHadUserInteraction): |
| (WKWebsiteDataStoreIsStatisticsHasHadUserInteraction): |
| (WKWebsiteDataStoreSetStatisticsGrandfathered): |
| (WKWebsiteDataStoreIsStatisticsGrandfathered): |
| (WKWebsiteDataStoreSetStatisticsSubframeUnderTopFrameOrigin): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUnderTopFrameOrigin): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo): |
| (WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom): |
| * UIProcess/API/Cocoa/WKHTTPCookieStore.mm: |
| * UIProcess/API/Cocoa/WKUserScript.mm: |
| (-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:legacyWhitelist:legacyBlacklist:associatedURL:userContentWorld:]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _showSafeBrowsingWarning:completionHandler:]): |
| (-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:]): |
| (-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| * UIProcess/API/Cocoa/_WKApplicationManifest.mm: |
| (-[_WKApplicationManifest initWithCoder:]): |
| (+[_WKApplicationManifest applicationManifestFromJSON:manifestURL:documentURL:]): |
| * UIProcess/API/Cocoa/_WKUserStyleSheet.mm: |
| (-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]): |
| * UIProcess/API/glib/IconDatabase.cpp: |
| * UIProcess/API/glib/WebKitCookieManager.cpp: |
| (webkit_cookie_manager_get_cookies): |
| * UIProcess/API/glib/WebKitFileChooserRequest.cpp: |
| * UIProcess/API/glib/WebKitSecurityOrigin.cpp: |
| (webkit_security_origin_new_for_uri): |
| * UIProcess/API/glib/WebKitUIClient.cpp: |
| * UIProcess/API/glib/WebKitURISchemeRequest.cpp: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_load_plain_text): |
| * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::showPaymentUI): |
| (WebKit::WebPaymentCoordinatorProxy::validateMerchant): |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::toPKPaymentRequest): |
| * UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| (WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI): |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::navigateBrowsingContext): |
| (WebKit::domainByAddingDotPrefixIfNeeded): |
| (WebKit::WebAutomationSession::addSingleCookie): |
| (WebKit::WebAutomationSession::deleteAllCookies): |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didFinish): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::webGLLoadPolicy const): |
| (WebKit::NavigationState::NavigationClient::resolveWebGLLoadPolicy const): |
| (WebKit::NavigationState::NavigationClient::contentRuleListNotification): |
| (WebKit::NavigationState::NavigationClient::willPerformClientRedirect): |
| (WebKit::NavigationState::NavigationClient::didPerformClientRedirect): |
| (WebKit::NavigationState::NavigationClient::signedPublicKeyAndChallengeString): |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Copied from Source/WebKit/WebProcess/Network/WebSocketProvider.h. |
| (WebKit::SafeBrowsingResult::SafeBrowsingResult): |
| * UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm: |
| (WebKit::reportAnErrorURL): |
| (WebKit::malwareDetailsURL): |
| (WebKit::safeBrowsingDetailsText): |
| (WebKit::SafeBrowsingWarning::SafeBrowsingWarning): |
| * UIProcess/Cocoa/SystemPreviewControllerCocoa.mm: |
| (-[_WKPreviewControllerDataSource finish:]): |
| (WebKit::SystemPreviewController::finish): |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::createNewPage): |
| (WebKit::UIDelegate::UIClient::saveDataToFileInDownloadsFolder): |
| (WebKit::requestUserMediaAuthorizationForDevices): |
| (WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin): |
| * UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm: |
| (-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]): |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.h: |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (-[WKSafeBrowsingWarning initWithFrame:safeBrowsingWarning:completionHandler:]): |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::showSafeBrowsingWarning): |
| (WebKit::WebViewImpl::writeToURLForFilePromiseProvider): |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::publishProgress): |
| * UIProcess/Downloads/DownloadProxy.h: |
| (WebKit::DownloadProxy::setRedirectChain): |
| (WebKit::DownloadProxy::redirectChain const): |
| * UIProcess/FrameLoadState.cpp: |
| (WebKit::FrameLoadState::didStartProvisionalLoad): |
| (WebKit::FrameLoadState::didReceiveServerRedirectForProvisionalLoad): |
| (WebKit::FrameLoadState::didSameDocumentNotification): |
| (WebKit::FrameLoadState::setUnreachableURL): |
| * UIProcess/FrameLoadState.h: |
| (WebKit::FrameLoadState::url const): |
| (WebKit::FrameLoadState::setURL): |
| (WebKit::FrameLoadState::provisionalURL const): |
| (WebKit::FrameLoadState::unreachableURL const): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::writeBlobToFilePath): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::showSafeBrowsingWarning): |
| * UIProcess/PageLoadState.cpp: |
| (WebKit::PageLoadState::hasOnlySecureContent): |
| * UIProcess/Plugins/PluginInfoStore.cpp: |
| * UIProcess/Plugins/PluginInfoStore.h: |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| * UIProcess/SafeBrowsingResult.h: Copied from Source/WebKit/UIProcess/SystemPreviewController.h. |
| (WebKit::SafeBrowsingResult::create): |
| (WebKit::SafeBrowsingResult::url const): |
| (WebKit::SafeBrowsingResult::provider const): |
| (WebKit::SafeBrowsingResult::isPhishing const): |
| (WebKit::SafeBrowsingResult::isMalware const): |
| (WebKit::SafeBrowsingResult::isUnwantedSoftware const): |
| (WebKit::SafeBrowsingResult::isKnownToBeUnsafe const): |
| * UIProcess/SafeBrowsingWarning.h: |
| (WebKit::SafeBrowsingWarning::create): |
| * UIProcess/SuspendedPageProxy.cpp: |
| * UIProcess/SystemPreviewController.h: |
| * UIProcess/WebCookieManagerProxy.h: |
| * UIProcess/WebFrameProxy.h: |
| (WebKit::WebFrameProxy::url const): |
| (WebKit::WebFrameProxy::provisionalURL const): |
| (WebKit::WebFrameProxy::unreachableURL const): |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebOpenPanelResultListenerProxy.cpp: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadDataWithNavigation): |
| (WebKit::WebPageProxy::loadAlternateHTML): |
| (WebKit::WebPageProxy::loadWebArchiveData): |
| (WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didChangeProvisionalURLForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::contentRuleListNotification): |
| (WebKit::WebPageProxy::processDidTerminate): |
| (WebKit::WebPageProxy::signedPublicKeyAndChallengeString): |
| (WebKit::WebPageProxy::setURLSchemeHandlerForScheme): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::tryPrewarmWithDomainInformation): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode): |
| (WebKit::WebResourceLoadStatisticsStore::logFrameNavigation): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/ios/DragDropInteractionState.h: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::showSafeBrowsingWarning): |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]): |
| (-[WKContentView _presentedViewControllerForPreviewItemController:]): |
| * UIProcess/ios/WKGeolocationProviderIOS.mm: |
| (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]): |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| (-[WKLegacyPDFView actionSheetAssistant:shareElementWithURL:rect:]): |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView actionSheetAssistant:shareElementWithURL:rect:]): |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _updateLocationInfo]): |
| * UIProcess/mac/LegacySessionStateCoding.cpp: |
| (WebKit::decodeLegacySessionState): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::showSafeBrowsingWarning): |
| * UIProcess/mac/WKImmediateActionController.mm: |
| (-[WKImmediateActionController _defaultAnimationController]): |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::showPaymentUI): |
| (WebKit::WebPaymentCoordinator::validateMerchant): |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: |
| * WebProcess/Cache/WebCacheStorageConnection.cpp: |
| (WebKit::WebCacheStorageConnection::doRetrieveRecords): |
| * WebProcess/Cache/WebCacheStorageConnection.h: |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::registerFileBlobURL): |
| * WebProcess/FileAPI/BlobRegistryProxy.h: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: |
| (API::InjectedBundle::PageLoaderClient::willLoadDataRequest): |
| (API::InjectedBundle::PageLoaderClient::userAgentForURL const): |
| * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: |
| (WKBundleFrameAllowsFollowingLink): |
| (WKBundleFrameCopySuggestedFilenameForResourceWithURL): |
| (WKBundleFrameCopyMIMETypeForResourceWithURL): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageHasLocalDataForURL): |
| * WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.cpp: |
| (convertToUTF8String): |
| * WebProcess/InjectedBundle/API/gtk/DOM/ConvertToUTF8String.h: |
| * WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp: |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: |
| * WebProcess/MediaCache/WebMediaKeyStorageManager.cpp: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::preconnectTo): |
| * WebProcess/Network/WebLoaderStrategy.h: |
| * WebProcess/Network/WebSocketProvider.h: |
| * WebProcess/Network/WebSocketStream.cpp: |
| (WebKit::WebSocketStream::WebSocketStream): |
| * WebProcess/Network/WebSocketStream.h: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.cpp: |
| * WebProcess/Plugins/Netscape/NetscapePlugin.h: |
| * WebProcess/Plugins/Netscape/NetscapePluginStream.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.h: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::clickedLink): |
| * WebProcess/Plugins/Plugin.h: |
| * WebProcess/Plugins/PluginController.h: |
| * WebProcess/Plugins/PluginProxy.h: |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::performURLRequest): |
| (WebKit::PluginView::performJavaScriptURLRequest): |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::webVisiblePluginInfo): |
| * WebProcess/Plugins/WebPluginInfoProvider.h: |
| * WebProcess/Storage/WebSWClientConnection.h: |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/UserContent/WebUserContentController.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::signedPublicKeyAndChallengeString const): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebContextMenuClient.h: |
| * WebProcess/WebCoreSupport/WebDragClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| (WebKit::WebFrameLoaderClient::shouldForceUniversalAccessFromLocalURL): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::readURLFromPasteboard): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| (WebKit::WebDragClient::declareAndWriteDragImage): |
| * WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm: |
| * WebProcess/WebPage/VisitedLinkTableController.h: |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::allowsFollowingLink const): |
| * WebProcess/WebPage/WebFrame.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadURLInFrame): |
| (WebKit::WebPage::loadData): |
| (WebKit::WebPage::loadAlternateHTML): |
| (WebKit::WebPage::dumpHistoryForTesting): |
| (WebKit::WebPage::sendCSPViolationReport): |
| (WebKit::WebPage::addUserScript): |
| (WebKit::WebPage::addUserStyleSheet): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| (WebKit::WebPrintOperationGtk::frameURL const): |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::sendPrewarmInformation): |
| * WebProcess/WebProcess.h: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::activePagesOrigins): |
| |
| 2018-11-30 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Add more logging of sandbox call entries. |
| https://bugs.webkit.org/show_bug.cgi?id=192261 |
| rdar://problem/45772445 |
| |
| Reviewed by Dean Jackson. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-11-30 Tim Horton <timothy_horton@apple.com> |
| |
| Editable images should always return some data, even if the canvas doesn't have a size yet |
| https://bugs.webkit.org/show_bug.cgi?id=192265 |
| <rdar://problem/46385911> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView layoutSubviews]): |
| (emptyImage): |
| (-[WKDrawingView renderedDrawing]): |
| (-[WKDrawingView PNGRepresentation]): |
| Some clients strongly depend on there being some data in an image, even if |
| it's not of a usable size yet. We'll invalidate the attachment when the |
| canvas size changes, so it will eventually settle at a usable size (after |
| the first layer tree commit that includes the editable image). |
| |
| 2018-11-30 Don Olmstead <don.olmstead@sony.com> |
| |
| Rename ENABLE_SUBTLE_CRYPTO to ENABLE_WEB_CRYPTO |
| https://bugs.webkit.org/show_bug.cgi?id=192197 |
| |
| Reviewed by Jiewen Tan. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageNavigationClient): |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| |
| 2018-11-30 Alexey Proskuryakov <ap@apple.com> |
| |
| Move USE_CFNETWORK_IGNORE_HSTS to its proper place |
| https://bugs.webkit.org/show_bug.cgi?id=192173 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (updateIgnoreStrictTransportSecuritySettingIfNecessary): |
| (-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]): |
| (-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]): |
| |
| 2018-11-30 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused WebProcessCreationParameters.uiProcessCookieStorageIdentifier |
| https://bugs.webkit.org/show_bug.cgi?id=192157 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| |
| 2018-11-30 Alex Christensen <achristensen@webkit.org> |
| |
| Remove privateBrowsingEnabled from NetworkProcessCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=192156 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-11-30 Basuke Suzuki <basuke.suzuki@sony.com> |
| |
| [Curl] Add API for ProtectionSpace. |
| https://bugs.webkit.org/show_bug.cgi?id=191648 |
| |
| Reviewed by Alex Christensen. |
| |
| Added API to get certificate information from protection space. |
| |
| * PlatformWin.cmake: |
| * Shared/curl/WebCoreArgumentCodersCurl.cpp: |
| (IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData): |
| (IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData): |
| * UIProcess/API/C/curl/WKProtectionSpaceCurl.cpp: Added. |
| (WKProtectionSpaceCopyCertificateInfo): |
| * UIProcess/API/C/curl/WKProtectionSpaceCurl.h: Added. |
| |
| 2018-11-30 David Quesada <david_quesada@apple.com> |
| |
| -[WKProcessPool _downloadURLRequest:] should allow specifying the initiating web view |
| https://bugs.webkit.org/show_bug.cgi?id=192212 |
| rdar://problem/46363706 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _downloadURLRequest:originatingWebView:]): |
| (-[WKProcessPool _downloadURLRequest:]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| |
| 2018-11-30 Per Arne Vollan <pvollan@apple.com> |
| |
| Remove invalid character in sandbox introduced in r238703. |
| |
| Unreviewed sandbox fix. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-11-30 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Add some WKA extension points |
| https://bugs.webkit.org/show_bug.cgi?id=192131 |
| <rdar://problem/46330293> |
| |
| Reviewed by Tim Horton. |
| |
| * DerivedSources.make: Added an extension point for WebPreferences.yaml. |
| * Platform/IPC/MessageSender.h: |
| (IPC::MessageSender::sendWithAsyncReply): Send async messages via IPC::MessageSender. |
| * Platform/cocoa/WebKitAdditions.mm: A an extension point for additional WebKit sources. |
| * SourcesCocoa.txt: Added WebKitAdditions.mm as non-unified source. |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::WebPaymentCoordinatorProxy): Called finishConstruction. |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: Added an extension point for |
| WebPaymentCoordinatorProxy. |
| * WebKit.xcodeproj/project.pbxproj: Added WebKitAdditions.mm. |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: Added an extension point for |
| WebPaymentCoordinator. |
| |
| 2018-11-30 Frederic Wang <fwang@igalia.com> |
| |
| [WebAuthN] Support CTAP HID authenticators on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=188623 |
| |
| Unreviewed build fix. |
| |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.mm: Add missing header. |
| |
| 2018-11-29 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| REGRESSION (r238635): Dragging a text selection within WKWebView causes the selection highlight to get into a bad state |
| https://bugs.webkit.org/show_bug.cgi?id=192165 |
| <rdar://problem/46346682> |
| |
| Reviewed by Daniel Bates. |
| |
| Fixes a bug in PageClientImpl::isViewFocused. Consider the following scenario: |
| 1. WKWebView is hosted within the view hierarchy |
| 2. First responder is *not* WKContentView |
| 3. The active focus retain count is nonzero |
| |
| Before r238635, we would return true, due to condition (3). However, after r238635, we only consider whether the |
| first responder is WKContentView, since the web view is in the view hierarchy. This breaks scenarios where |
| WebKit or UIKit attempts to retain focus and later restore the content view to be the first responder (an |
| example of this is dragging a text selection between editable elements in the same web view). |
| |
| To fix this, simply bail early and return true if focus is being retained. |
| |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::isViewFocused): |
| |
| 2018-11-29 Tim Horton <timothy_horton@apple.com> |
| |
| Inform clients when editable image attachment backing data changes |
| https://bugs.webkit.org/show_bug.cgi?id=192206 |
| <rdar://problem/46350277> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::invalidateGeneratedFileWrapper): |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didInvalidateDataForAttachment:]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::didInvalidateDataForAttachment): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::didInvalidateDataForAttachment): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didInvalidateDataForAttachment): |
| * UIProcess/WebPageProxy.h: |
| Plumb file-wrapper-invalidation through from APIAttachment to WKUIDelegate. |
| |
| 2018-11-29 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] DeviceIdHashSaltStorage should use iframe and top level documents |
| https://bugs.webkit.org/show_bug.cgi?id=192182 |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/DeviceIdHashSaltStorage.cpp: |
| (WebKit::DeviceIdHashSaltStorage::deviceIdHashSaltForOrigin): Key off of request and top |
| level documents. |
| (WebKit::DeviceIdHashSaltStorage::deleteDeviceIdHashSaltForOrigins): Ditto. |
| * UIProcess/DeviceIdHashSaltStorage.h: |
| (WebKit::DeviceIdHashSaltStorage::HashSaltForOrigin::HashSaltForOrigin): |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): Pass both documents. |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Ditto. |
| (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Ditto. |
| |
| 2018-11-29 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r238713. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "[Cocoa] Add some WKA extension points" |
| https://bugs.webkit.org/show_bug.cgi?id=192131 |
| https://trac.webkit.org/changeset/238713 |
| |
| 2018-11-29 Simon Fraser <simon.fraser@apple.com> |
| |
| Add an internal feature flag to enable async overflow scrolling |
| https://bugs.webkit.org/show_bug.cgi?id=192184 |
| |
| Reviewed by Tim Horton. |
| |
| Add a new internal feature flag that will enable async overflow-scrolling for |
| most overflow:scroll elements. Defaults to off. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-11-29 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Add some WKA extension points |
| https://bugs.webkit.org/show_bug.cgi?id=192131 |
| <rdar://problem/46330293> |
| |
| Reviewed by Tim Horton. |
| |
| * DerivedSources.make: Added an extension point for WebPreferences.yaml. |
| * Platform/IPC/MessageSender.h: |
| (IPC::MessageSender::sendWithAsyncReply): Send async messages via IPC::MessageSender. |
| * Platform/cocoa/WebKitAdditions.mm: A an extension point for additional WebKit sources. |
| * SourcesCocoa.txt: Added WebKitAdditions.mm as non-unified source. |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: |
| (WebKit::WebPaymentCoordinatorProxy::WebPaymentCoordinatorProxy): Called finishConstruction. |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: Added an extension point for |
| WebPaymentCoordinatorProxy. |
| * WebKit.xcodeproj/project.pbxproj: Added WebKitAdditions.mm. |
| * WebProcess/ApplePay/WebPaymentCoordinator.h: Added an extension point for |
| WebPaymentCoordinator. |
| |
| 2018-11-29 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build. |
| |
| * Platform/spi/ios/PencilKitSPI.h: |
| |
| 2018-11-29 David Quesada <david_quesada@apple.com> |
| |
| Add SPI to publish NSProgress on active downloads |
| https://bugs.webkit.org/show_bug.cgi?id=192021 |
| rdar://problem/44405661 |
| |
| Reviewed by Alex Christensen. |
| |
| Make it possible for clients to allow other processes to monitor the state of active |
| downloads. On Cocoa platforms, this can be done by creating an NSProgress, publishing |
| it on an appropriate file URL (potentially a different file URL than where the download |
| data is being written), updating properties on it as the download makes progress, and |
| wiring up a cancellation handler that allows it to be remotely canceled. Interested |
| clients can then subscribe to progress on that URL and receive a proxy to the progress |
| that WebKit publishes. |
| |
| * NetworkProcess/Downloads/Download.cpp: |
| (WebKit::Download::~Download): |
| (WebKit::Download::platformDestroyDownload): |
| Add a platform-customizable hook for destructing the Download. DownloadCocoa.mm |
| will interact with its Objective-C NSProgress instance at this point. |
| |
| * NetworkProcess/Downloads/Download.h: |
| * NetworkProcess/Downloads/DownloadManager.cpp: |
| (WebKit::DownloadManager::dataTaskBecameDownloadTask): |
| See comments for publishDownloadProgress(). |
| (WebKit::DownloadManager::publishDownloadProgress): |
| If the provided downloadID corresponds to a non-Pending Download, hand the URL |
| and a matching sandbox extension to the Download so it can create its progress. |
| Otherwise, store the URL and sandbox extension on the PendingDownload to be used |
| later when the full Download is created. When this happens, dataTaskBecameDownloadTask() |
| will tell the PendingDownload about the Download it has become. The PendingDownload |
| will then relay the progress URL and sandbox extension to the Download. |
| |
| * NetworkProcess/Downloads/DownloadManager.h: |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| (WebKit::PendingDownload::publishProgress): |
| Store the progress info for later use, when the proper Download is created. |
| (WebKit::PendingDownload::didBecomeDownload): |
| If there was a progress URL provided earlier, tell the Download corresponding to this |
| PendingDownload to publish its progress using that URL. |
| |
| * NetworkProcess/Downloads/PendingDownload.h: |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::platformDestroyDownload): |
| When the Download is destroyed (i.e. when the download succeeds, fails, or is canceled), |
| unpublish the progress, since there is no longer any activity to report. |
| (WebKit::Download::publishProgress): |
| Resolve the sandbox extension, create a progress configured to reflect the progress of |
| this Download's NSURLSessionDownloadTask, and publish it at the given file URL. |
| |
| * NetworkProcess/Downloads/cocoa/WKDownloadProgress.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKDownload.h. |
| * NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm: Added. |
| (-[WKDownloadProgress initWithDownloadTask:download:URL:sandboxExtension:]): |
| Configure this progress, start observing properties on the download task that this |
| progress will reflect, and connect the cancellation handler of the progress to cancel |
| the corresponding Download. |
| (-[WKDownloadProgress publish]): |
| (-[WKDownloadProgress unpublish]): |
| Override these methods to consume and revoke the sandbox extension to make sure the |
| process has access to the progress file while the progress will be published. |
| (-[WKDownloadProgress dealloc]): |
| (-[WKDownloadProgress observeValueForKeyPath:ofObject:change:context:]): |
| When either byte count (number received, or number expected to receive) of the download |
| task changes, update this progress to reflect that. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::publishDownloadProgress): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| |
| * NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: |
| Allow looking up the services that manages published NSProgresses. |
| |
| * UIProcess/API/Cocoa/_WKDownload.h: |
| * UIProcess/API/Cocoa/_WKDownload.mm: |
| (-[_WKDownload publishProgressAtURL:]): |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::publishProgress): |
| * UIProcess/Downloads/DownloadProxy.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-29 Tim Horton <timothy_horton@apple.com> |
| |
| Make drawing tools available when an editable image is focused |
| https://bugs.webkit.org/show_bug.cgi?id=192172 |
| <rdar://problem/30337960> |
| |
| Reviewed by Dean Jackson. |
| |
| * Platform/spi/ios/PencilKitSPI.h: |
| Add some more SPI. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleStylusSingleTapAtPoint): |
| (WebKit::isAssistableElement): |
| (WebKit::WebPage::getAssistedNodeInformation): |
| Plumb the assisted node's embedded view ID, if available. |
| Also add a new input type for drawings, and use it when appropriate. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/_WKFocusedElementInfo.h: |
| Add WKInputTypeDrawing. |
| |
| * UIProcess/ios/PencilKitSoftLink.h: Added. |
| * UIProcess/ios/PencilKitSoftLink.mm: Added. |
| Pull soft-linking out into its own file, to fix unified sources. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]): |
| (-[WKContentView _requiresKeyboardWhenFirstResponder]): |
| (-[WKContentView requiresAccessoryView]): |
| Install a keyboard when a drawing is focused. |
| Also, deduplicate one "curretUserInterfaceIdiomIsPad"; just fall through. |
| |
| (-[WKContentView inputView]): |
| Make a WKInkPickerControl when a drawing is focused. |
| |
| (-[WKContentView textInputTraits]): |
| (isAssistableInputType): |
| * UIProcess/ios/WKDrawingView.h: |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]): |
| (-[WKDrawingView PNGRepresentation]): |
| (-[WKDrawingView loadDrawingFromPNGRepresentation:]): |
| Adopt PencilKitSoftLink. |
| |
| (-[WKDrawingView canvasView]): |
| Expose the internal canvas view for use by WKInkPickerControl. |
| |
| * UIProcess/ios/WKInkPickerControl.h: Copied from Source/WebKit/Platform/spi/ios/PencilKitSPI.h. |
| * UIProcess/ios/WKInkPickerControl.mm: Added. |
| (-[WKInkPickerView initWithFrame:drawingView:]): |
| (-[WKInkPickerView didPickInk]): |
| (-[WKInkPickerView inlineInkPickerDidToggleRuler:]): |
| (-[WKInkPickerView inlineInkPicker:didSelectTool:]): |
| (-[WKInkPickerView inlineInkPicker:didSelectColor:]): |
| (-[WKInkPickerView inkPickerSize]): |
| (-[WKInkPickerView layoutSubviews]): |
| (-[WKInkPickerView sizeThatFits:]): |
| (-[WKInkPickerView viewControllerForPopoverPresentationFromInlineInkPicker:]): |
| (-[WKInkPickerControl initWithDrawingView:]): |
| (-[WKInkPickerControl beginEditing]): |
| (-[WKInkPickerControl endEditing]): |
| (-[WKInkPickerControl assistantView]): |
| Install and hook up a PKInlineInkPicker. |
| Center it in the keyboard. |
| Plumb changes through to the canvas view. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-29 Per Arne Vollan <pvollan@apple.com> |
| |
| [macOS] Add logging for some sandbox entries. |
| https://bugs.webkit.org/show_bug.cgi?id=192126 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add logging for sandbox entries which are possibly not needed. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-11-29 Alex Christensen <achristensen@webkit.org> |
| |
| Fix _WKWebsiteDataStoreConfiguration. sourceApplicationBundleIdentifier and sourceApplicationSecondaryIdentifier SPI introduced in r235127 |
| https://bugs.webkit.org/show_bug.cgi?id=192191 |
| |
| Reviewed by Andy Estes. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| When trying to adopt the new SPI and verify it worked, I found that the strings are not copied in one place where they should be. |
| |
| 2018-11-29 Megan Gardner <megan_gardner@apple.com> |
| |
| Move Lookup Code for better cross platform usage |
| https://bugs.webkit.org/show_bug.cgi?id=191732 |
| |
| Reviewed by Alex Christensen. |
| |
| Lookup is being replaced by Reveal. This framework should work on all platforms. |
| The patch moves the code that we expect will be needed for all platforms to the more |
| general cocoa area. This patch changes no funcationality, and should not change |
| anything currently. This work will be build on later when Reveal is ready to support |
| multiple platforms. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): |
| (WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView _lookupGestureRecognized:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): Deleted. |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): |
| (WebKit::WebPage::performDictionaryLookupForSelection): |
| (WebKit::WebPage::performDictionaryLookupOfCurrentSelection): |
| (WebKit::WebPage::performDictionaryLookupForRange): |
| (WebKit::WebPage::dictionaryPopupInfoForRange): |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForSelection): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForRange): Deleted. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForSelection): Deleted. |
| (WebKit::WebPage::performDictionaryLookupOfCurrentSelection): Deleted. |
| (WebKit::WebPage::dictionaryPopupInfoForRange): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForRange): Deleted. |
| |
| 2018-11-29 Zalan Bujtas <zalan@apple.com> |
| |
| [ContentObservation] Decouple content change and DOM timer scheduling observation |
| https://bugs.webkit.org/show_bug.cgi?id=192170 |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleSyntheticClick): |
| |
| 2018-11-29 Eric Carlson <eric.carlson@apple.com> |
| |
| [iOS] Tell AirPlay picker when a file has video |
| https://bugs.webkit.org/show_bug.cgi?id=192155 |
| <rdar://problem/43843865> |
| |
| Reviewed by Jer Noble. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showPlaybackTargetPicker:fromRect:routeSharingPolicy:routingContextUID:]): |
| Add hasVideo parameter. |
| |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.h: |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:hasVideo:]): Add |
| hasVideo parameter, pass info to MPMediaControlsViewController. |
| (-[WKAirPlayRoutePicker showFromView:routeSharingPolicy:routingContextUID:]): Deleted. |
| |
| 2018-11-29 Alexey Proskuryakov <ap@apple.com> |
| |
| Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence |
| https://bugs.webkit.org/show_bug.cgi?id=192041 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): |
| |
| 2018-11-29 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r238678. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Move Lookup Code for better cross platform usage" |
| https://bugs.webkit.org/show_bug.cgi?id=191732 |
| https://trac.webkit.org/changeset/238678 |
| |
| 2018-11-29 Suresh Koppisetty <skoppisetty@apple.com> |
| |
| Addressed a FIXME by removing an unnecessary call to [NSApplication sharedApplication]. |
| https://bugs.webkit.org/show_bug.cgi?id=192099 |
| |
| Reviewed by Geoffrey Garen. |
| |
| [NSApplication sharedApplication] call is no longer needed in platformInitializeWebProcess as [NSApplication _accessibilityInitialize] calls [NSApplication sharedApplication]. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| |
| 2018-11-29 Megan Gardner <megan_gardner@apple.com> |
| |
| Move Lookup Code for better cross platform usage |
| https://bugs.webkit.org/show_bug.cgi?id=191732 |
| |
| Reviewed by Alex Christensen. |
| |
| Lookup is being replaced by Reveal. This framework should work on all platforms. |
| The patch moves the code that we expect will be needed for all platforms to the more |
| general cocoa area. This patch changes no funcationality, and should not change |
| anything currently. This work will be build on later when Reveal is ready to support |
| multiple platforms. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): |
| (WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView _lookupGestureRecognized:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): Deleted. |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): |
| (WebKit::WebPage::performDictionaryLookupForSelection): |
| (WebKit::WebPage::performDictionaryLookupOfCurrentSelection): |
| (WebKit::WebPage::performDictionaryLookupForRange): |
| (WebKit::WebPage::dictionaryPopupInfoForRange): |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForSelection): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForRange): Deleted. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForSelection): Deleted. |
| (WebKit::WebPage::performDictionaryLookupOfCurrentSelection): Deleted. |
| (WebKit::WebPage::dictionaryPopupInfoForRange): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForRange): Deleted. |
| |
| 2018-11-29 Conrad Shultz <conrad_shultz@apple.com> |
| |
| Factor out configuration of the file upload image picker |
| https://bugs.webkit.org/show_bug.cgi?id=192138 |
| <rdar://problem/46334871> |
| |
| Reviewed by Tim Horton. |
| |
| By factoring configuration of the picker into its own method, it makes it easier |
| to apply custom configuration in subclasses in the future. |
| |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]): |
| (-[WKFileUploadPanel _configureImagePicker:]): |
| |
| 2018-11-29 Tomas Popela <tpopela@redhat.com> |
| |
| [GTK][WPE] Fix BubblewrapLauncher clang warnings |
| https://bugs.webkit.org/show_bug.cgi?id=192086 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::bindPathVar): Initialize the i variable to 0. |
| (WebKit::setupSeccomp): Initialize the optional datum_b member. |
| |
| 2018-11-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION(?): all "Show *" develop menu items cause the page to crash |
| https://bugs.webkit.org/show_bug.cgi?id=192016 |
| <rdar://problem/46284417> |
| |
| Reviewed by Devin Rousso. |
| |
| Previously calling the Page's inspectorController.show() |
| would create a frontend connection on the WebProcess side. |
| However now the frontend connection is handed to the WebProcess |
| once the UIProcess creates it. So queue actions that take place |
| immediately after showing the inspector until we have a frontend |
| to send the actions to. |
| |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::setFrontendConnection): |
| (WebKit::WebInspector::closeFrontendConnection): |
| (WebKit::WebInspector::whenFrontendConnectionEstablished): |
| (WebKit::WebInspector::showConsole): |
| (WebKit::WebInspector::showResources): |
| (WebKit::WebInspector::showTimelines): |
| (WebKit::WebInspector::showMainResourceForFrame): |
| (WebKit::WebInspector::startPageProfiling): |
| (WebKit::WebInspector::stopPageProfiling): |
| (WebKit::WebInspector::startElementSelection): |
| (WebKit::WebInspector::stopElementSelection): |
| |
| 2018-11-28 Vivek Seth <v_seth@apple.com> |
| |
| Consult dummy storage for HTTPS Upgrade, Apply If Appropriate |
| https://bugs.webkit.org/show_bug.cgi?id=192094 |
| <rdar://problem/45851103> HTTPS Upgrade: Consult dummy storage for HTTPS Upgrade, Apply If Appropriate |
| |
| Reviewed by Chris Dumez. |
| |
| For main page loads upgrade HTTP requests to HTTPS if the hostname belongs to a set of upgradable hostnames. |
| |
| * NetworkProcess/NetworkLoadChecker.cpp: |
| (WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded): |
| (WebKit::NetworkLoadChecker::checkRequest): |
| * NetworkProcess/NetworkLoadChecker.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::start): |
| |
| 2018-11-28 Simon Fraser <simon.fraser@apple.com> |
| |
| REGRESSION (r234980): Crash in -[WKWebView _restorePageStateToUnobscuredCenter:scale:] |
| https://bugs.webkit.org/show_bug.cgi?id=192127 |
| rdar://problem/44194179 |
| |
| Reviewed by Tim Horton. |
| |
| _restorePageStateToUnobscuredCenter: could receive an Optional<FloatRect> from the |
| web process, and unconditionally called .value() even though it may not be engaged. |
| |
| No repro steps known, so no testcase. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _restorePageStateToUnobscuredCenter:scale:]): |
| |
| 2018-11-28 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r238653 and r238656. |
| https://bugs.webkit.org/show_bug.cgi?id=192130 |
| |
| Breaks iOS build (Requested by smfr on #webkit). |
| |
| Reverted changesets: |
| |
| "Move Lookup Code for better cross platform usage" |
| https://bugs.webkit.org/show_bug.cgi?id=191732 |
| https://trac.webkit.org/changeset/238653 |
| |
| "Attempt to fix the iOS build by only including RevealSPI.h |
| when it's needed." |
| https://trac.webkit.org/changeset/238656 |
| |
| 2018-11-28 Alex Christensen <achristensen@webkit.org> |
| |
| Modernize BlobRegistry::writeBlobsToTemporaryFiles |
| https://bugs.webkit.org/show_bug.cgi?id=192117 |
| |
| Reviewed by Dean Jackson. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| (WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles): |
| (WebKit::NetworkBlobRegistry::writeBlobToFilePath): |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::writeBlobToFilePath): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/ChildProcessProxy.h: |
| (WebKit::ChildProcessProxy::sendWithAsyncReply): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didClose): |
| (WebKit::NetworkProcessProxy::writeBlobToFilePath): |
| (WebKit::NetworkProcessProxy::didWriteBlobToFilePath): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * WebProcess/FileAPI/BlobRegistryProxy.cpp: |
| (WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles): |
| * WebProcess/FileAPI/BlobRegistryProxy.h: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles): |
| (WebKit::NetworkProcessConnection::didWriteBlobsToTemporaryFiles): Deleted. |
| * WebProcess/Network/NetworkProcessConnection.h: |
| * WebProcess/Network/NetworkProcessConnection.messages.in: |
| |
| 2018-11-28 Alex Christensen <achristensen@webkit.org> |
| |
| Move loadThrottleLatency from NetworkProcessCreationParameters to NetworkSessionCreationParameters |
| https://bugs.webkit.org/show_bug.cgi?id=192122 |
| |
| Reviewed by Dean Jackson. |
| |
| This is part of an effort to reduce global variables in the NetworkProcess. |
| |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::NetworkLoad): |
| (WebKit::NetworkLoad::didReceiveResponse): |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::loadThrottleLatency const): Deleted. |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::loadThrottleLatency const): |
| * NetworkProcess/NetworkSessionCreationParameters.cpp: Added. |
| (WebKit::NetworkSessionCreationParameters::privateSessionParameters): |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| (WebKit::NetworkSessionCreationParameters::encode const): Deleted. |
| (WebKit::NetworkSessionCreationParameters::decode): Deleted. |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * Sources.txt: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-15 Megan Gardner <megan_gardner@apple.com> |
| |
| Move Lookup Code for better cross platform usage |
| https://bugs.webkit.org/show_bug.cgi?id=191732 |
| |
| Reviewed by Alex Christensen. |
| |
| Lookup is being replaced by Reveal. This framework should work on all platforms. |
| The patch moves the code that we expect will be needed for all platforms to the more |
| general cocoa area. This patch changes no funcationality, and should not change |
| anything currently. This work will be build on later when Reveal is ready to support |
| multiple platforms. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): |
| (WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView _lookupGestureRecognized:]): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted. |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection): Deleted. |
| * WebProcess/WebPage/Cocoa/WebPageCocoa.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): |
| (WebKit::WebPage::performDictionaryLookupForSelection): |
| (WebKit::WebPage::performDictionaryLookupOfCurrentSelection): |
| (WebKit::WebPage::performDictionaryLookupForRange): |
| (WebKit::WebPage::dictionaryPopupInfoForRange): |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForSelection): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForRange): Deleted. |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::performDictionaryLookupAtLocation): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForSelection): Deleted. |
| (WebKit::WebPage::performDictionaryLookupOfCurrentSelection): Deleted. |
| (WebKit::WebPage::dictionaryPopupInfoForRange): Deleted. |
| (WebKit::WebPage::performDictionaryLookupForRange): Deleted. |
| |
| 2018-11-28 Keith Rollin <krollin@apple.com> |
| |
| Update generate-{derived,unified}-sources scripts to support generating .xcfilelist files |
| https://bugs.webkit.org/show_bug.cgi?id=192031 |
| <rdar://problem/46286816> |
| |
| Reviewed by Alex Christensen. |
| |
| The Generate Derived Sources and Generate Unified Sources build phases |
| in Xcode need to have their inputs and outputs specified. This |
| specification will come in the form of .xcfilelist files that will be |
| attached to these build phases. There is one .xcfilelist file that |
| lists the input file and one that lists the output files. As part of |
| this work, the various generate-{derived,unified}-sources scripts that |
| are executed in these Generate build phases are modified to help in |
| the creation of these .xcfilelist files. In particular, they can now |
| be invoked with command-line parameters. These parameters are then |
| used to alter the normal execution of these scripts, causing them to |
| produce the .xcfilelist files as opposed to actually generating the |
| files that are listed in those files. |
| |
| * Scripts/generate-derived-sources.sh: |
| * Scripts/generate-unified-sources.sh: |
| |
| 2018-11-28 Keith Rollin <krollin@apple.com> |
| |
| Revert print_all_generated_files work in r238008; tighten up target specifications |
| https://bugs.webkit.org/show_bug.cgi?id=192025 |
| <rdar://problem/46284301> |
| |
| Reviewed by Alex Christensen. |
| |
| In r238008, I added a facility for DerivedSources.make makefiles to |
| print out the list of files that they generate. This output was used |
| in the generation of .xcfilelist files used to specify the output of |
| the associated Generate Derived Sources build phases in Xcode. This |
| approach worked, but it meant that people would need to follow a |
| specific convention to keep this mechanism working. |
| |
| Instead of continuing this approach, I'm going to implement a new |
| facility based on the output of `make` when passed the -d flag (which |
| prints dependency information). This new mechanism is completely |
| automatic and doesn't need maintainers to follow a convention. To that |
| end, remove most of the work performed in r238008 that supports the |
| print_all_generated_files target. |
| |
| At the same time, it's important for the sets of targets and their |
| dependencies to be complete and correct. Therefore, also include |
| changes to bring those up-to-date. As part of that, you'll see |
| prevalent use of a particular technique. Here's an example: |
| |
| BYTECODE_FILES = \ |
| Bytecodes.h \ |
| BytecodeIndices.h \ |
| BytecodeStructs.h \ |
| InitBytecodes.asm \ |
| # |
| BYTECODE_FILES_PATTERNS = $(subst .,%,$(BYTECODE_FILES)) |
| |
| all : $(BYTECODE_FILES) |
| |
| $(BYTECODE_FILES_PATTERNS): $(wildcard $(JavaScriptCore)/generator/*.rb) $(JavaScriptCore)/bytecode/BytecodeList.rb |
| ... |
| |
| These lines indicate a set of generated files (those specified in |
| BYTECODE_FILES). These files are generated by the BytecodeList.rb |
| tool. But, as opposed to the normal rule where a single foo.output is |
| generated by foo.input plus some additional dependencies, this rule |
| produces multiple output files from a tool whose connection to the |
| output files is not immediately clear. A special approach is needed |
| where a single rule produces multiple output files. The normal way to |
| implement this is to use an .INTERMEDIATE target. However, we used |
| this approach in the past and ran into a problem with it, addressing |
| it with an alternate approach in r210507. The above example shows this |
| approach. The .'s in the list of target files are replaced with %'s, |
| and the result is used as the left side of the dependency rule. |
| |
| * DerivedSources.make: |
| |
| 2018-11-28 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Page not defocused when Find-in-page becomes first responder |
| https://bugs.webkit.org/show_bug.cgi?id=192084 |
| <rdar://problem/46146777> |
| |
| Reviewed by Tim Horton. |
| |
| When -becomeFirstResponder and -resignFirstResponder is called the page should become focused |
| and defocused, respectively. WebKit adjusts it behavior depending on whether it knows it has |
| focus. This includes decisions about whether to allow an element to be focused. We need to |
| ensure that WebKit knows whether the web view is focused for it to make good decisions. |
| |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::isViewFocused): Check if the content view is the first responder and |
| hence is accepting keyboard input. Note that picture-in-picture views do not accept keyboard |
| input. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView becomeFirstResponderForWebView]): Update activity state when the view |
| becomes focused. |
| (-[WKContentView resignFirstResponderForWebView]): Update activity state when the view |
| becomes defocused. |
| |
| 2018-11-28 Alex Christensen <achristensen@webkit.org> |
| |
| Remove dead code from an earlier attempt at implementing safe browsing |
| https://bugs.webkit.org/show_bug.cgi?id=192067 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadAlternateHTML): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-11-28 Alex Christensen <achristensen@webkit.org> |
| |
| Move logCookieInformation bool from NetworkProcess to NetworkSession |
| https://bugs.webkit.org/show_bug.cgi?id=192049 |
| |
| Reviewed by Chris Dumez. |
| |
| Part of an effort to remove globals in the NetworkProcess. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::shouldLogCookieInformation const): Deleted. |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::sendResultForCacheEntry): |
| (WebKit::NetworkResourceLoader::shouldLogCookieInformation): |
| (WebKit::NetworkResourceLoader::logCookieInformation const): |
| (WebKit::logBlockedCookieInformation): |
| (WebKit::logCookieInformationInternal): |
| (WebKit::NetworkResourceLoader::logCookieInformation): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/NetworkSession.h: |
| (WebKit::NetworkSession::logCookieInformation const): |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| |
| 2018-11-28 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r238620. |
| |
| Broke internal builds again. |
| |
| Reverted changeset: |
| |
| "Remove @no-unify of InjectedBundleRangeHandle.cpp and |
| InjectedBundleNodeHandle.cpp" |
| https://bugs.webkit.org/show_bug.cgi?id=191853 |
| https://trac.webkit.org/changeset/238620 |
| |
| 2018-11-28 Yongjun Zhang <yongjun_zhang@apple.com> |
| |
| Allow WebKit clients to specify a minimum effective width for layout. |
| https://bugs.webkit.org/show_bug.cgi?id=191499 |
| <rdar://problem/45362678> |
| |
| Reviewed by Wenson Hsieh. |
| |
| If we ignore the meta viewport (_shouldIgnoreMetaViewport is true), the default layout width will be device |
| width. For clients that wish to lay out the content with a different width value, we would need to add a way |
| to specify the effective width for layout. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: Add an iVar _minimumEffectiveDeviceWidth. |
| (-[WKWebView _dispatchSetViewLayoutSize:]): Call the new setViewportConfigurationViewLayoutSize method. |
| (-[WKWebView _setViewScale:]): Ditto. |
| (-[WKWebView _setMinimumEffectiveWidth:]): The setter for _minimumEffectiveDeviceWidth. |
| (-[WKWebView _minimumEffectiveWidth]): Getter for _minimumEffectiveDeviceWidth |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Add a property _minimumEffectiveDeviceWidth to WKWebView. |
| * UIProcess/WebPageProxy.h: Change setViewportConfigurationViewLayoutSize to take another argument minimumEffectiveDeviceWidth. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize): Also send effectiveWidth to WebContent process. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::WebPage): Set the initial effective width to 0 when creating a web page, this tells ViewportConfiguration |
| to ignore the minimum effective width value. |
| * WebProcess/WebPage/WebPage.h: Change setViewportConfigurationViewLayoutSize to take another argument effectiveWidth. |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setViewportConfigurationViewLayoutSize): Also pass effectiveWidth value to ViewportConfiguration. |
| |
| 2018-11-28 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove @no-unify of InjectedBundleRangeHandle.cpp and InjectedBundleNodeHandle.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=191853 |
| |
| Reviewed by Michael Catanzaro. |
| |
| In r235845, I excluded InjectedBundleRangeHandle.cpp and |
| InjectedBundleNodeHandle.cpp from unify source builds in order to |
| work around a MSVC bug. |
| |
| Then, I commited a different workaround for the MSVC bug in |
| r238386. Now, we can include InjectedBundleRangeHandle.cpp and |
| InjectedBundleNodeHandle.cpp in unified source builds. Revert |
| r235845. |
| |
| * Sources.txt: Removed @no-unify of InjectedBundleRangeHandle.cpp |
| and InjectedBundleNodeHandle.cpp |
| * WebKit.xcodeproj/project.pbxproj: Unchecked Target Membership |
| not to be compiled by XCode. |
| |
| 2018-11-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION(r238378): reloading WebInspector after a settings change doesn't re-show WebInspector |
| https://bugs.webkit.org/show_bug.cgi?id=191971 |
| |
| Reviewed by Matt Baker. |
| |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::reopen): Deleted. |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebInspector.messages.in: |
| Move reopen out of the WebProcess... |
| |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::reopen): |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.messages.in: |
| And into the UIProcess where the order of messages won't |
| be as problematic. |
| |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::reopen): |
| Send a message to the WebInspectorProxy instead. |
| |
| 2018-11-28 Alexey Proskuryakov <ap@apple.com> |
| |
| Remove another OS version check from NetworkDataTaskCocoa.mm |
| https://bugs.webkit.org/show_bug.cgi?id=192046 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): |
| |
| 2018-11-28 Alexey Proskuryakov <ap@apple.com> |
| |
| Modernize version checks for same site cookie support |
| https://bugs.webkit.org/show_bug.cgi?id=192054 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::updateTaskWithFirstPartyForSameSiteCookies): |
| Also removed runtime checks, which are no longer relevant. |
| |
| 2018-11-27 Mark Lam <mark.lam@apple.com> |
| |
| ENABLE_FAST_JIT_PERMISSIONS should be false for iosmac. |
| https://bugs.webkit.org/show_bug.cgi?id=192055 |
| <rdar://problem/46288783> |
| |
| Reviewed by Saam Barati. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-11-27 Alex Christensen <achristensen@webkit.org> |
| |
| Make synchronous IPC introduced in r237267 asynchronous |
| https://bugs.webkit.org/show_bug.cgi?id=190757 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _getActivePagesOriginsInWebProcessForTesting:completionHandler:]): |
| (-[WKProcessPool _getActivePagesOriginsInWebProcessForTesting:]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::activePagesOriginsInWebProcessForTesting): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::activePagesDomainsForTesting): |
| * UIProcess/WebProcessProxy.h: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::getActivePagesOriginsForTesting): |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::getActivePagesOriginsForTesting): |
| |
| 2018-11-27 Alex Christensen <achristensen@webkit.org> |
| |
| Safe browsing warning text needs to be visible on High Sierra |
| https://bugs.webkit.org/show_bug.cgi?id=192022 |
| |
| Reviewed by Tim Horton. |
| |
| Something about AppKit, autolayout, view insertion order, and NSTextView makes the text lay |
| out with initial size of {0, 0} on High Sierra. Using an NSTextField instead makes the details visible. |
| |
| Covered by an API test. |
| |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.h: |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (makeLabel): |
| (-[WKSafeBrowsingWarning addContent]): |
| (-[WKSafeBrowsingWarning showDetailsClicked]): |
| (-[WKSafeBrowsingWarning layoutText]): |
| (makeTitleLabel): Deleted. |
| |
| 2018-11-27 Tim Horton <timothy_horton@apple.com> |
| |
| WKNavigation.AutomaticViewReloadAfterWebProcessCrash asserts after r238538 |
| https://bugs.webkit.org/show_bug.cgi?id=192038 |
| <rdar://problem/46288457> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::m_editableImageController): Deleted. |
| Properly invalidate m_editableImageController when resetting WebPageProxy. |
| Otherwise, the MessageReceiverMaps get invalidated, then later when |
| EditableImageController goes away we assert trying to remove the receiver. |
| |
| 2018-11-27 Jiewen Tan <jiewen_tan@apple.com> |
| |
| (r238246) [ MacOS Debug ] Layout Test http/wpt/webauthn/ctap-hid-failure.https.html is Crashing |
| https://bugs.webkit.org/show_bug.cgi?id=191757 |
| |
| Reviewed by Chris Dumez. |
| |
| Wrong nonce error causes retransmission, which then trigger wrong nonce error. This is expected |
| behavior for mock testing. However, the main thread could time out when MockHidConnection::send |
| is excuting the block on another thread. The block will then return without invoking the callback, |
| which triggers this WTFCrash. The solution is always invoking the callback before return in the |
| block. |
| |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::send): |
| |
| 2018-11-27 Keith Rollin <krollin@apple.com> |
| |
| Better parsing of comments in generate-message*.py |
| https://bugs.webkit.org/show_bug.cgi?id=191866 |
| <rdar://problem/46189563> |
| |
| Reviewed by Chris Dumez. |
| |
| The script parsing the *.messages.in files would treat a line starting |
| with '#' as a comment, but not a line starting with '<whitespace>#'. |
| This means that jamming a '#' right in front of the first character of |
| a message definition (as opposed to the beginning of a line) will have |
| no effect and the line will get treated just the same as a |
| non-commented line. Fix this by trimming all white space from the |
| beginning and ending of the line before processing it. |
| |
| * Scripts/webkit/parser.py: |
| (parse): |
| * Scripts/webkit/test-messages.in: |
| |
| 2018-11-27 Thibault Saunier <tsaunier@igalia.com> |
| |
| [GTK|WPE] Allow disabling WebRTC unified plan SDP through an env var |
| https://bugs.webkit.org/show_bug.cgi?id=192024 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsConstructed): |
| |
| 2018-11-27 Alexey Proskuryakov <ap@apple.com> |
| |
| Modernize the check for async _saveCookies existence |
| https://bugs.webkit.org/show_bug.cgi?id=191987 |
| |
| Reviewed by Dean Jackson. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformSyncAllCookies): |
| |
| 2018-11-27 Tim Horton <timothy_horton@apple.com> |
| |
| Serialize and deserialize editable image strokes |
| https://bugs.webkit.org/show_bug.cgi?id=192002 |
| <rdar://problem/30900149> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::updateAttributes): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::willUpdateAttachmentAttributes): |
| * UIProcess/WebPageProxy.h: |
| When an attachment would update its DOM attributes, plumb a notification |
| to EditableImageController, and allow it to block the update (because |
| we don't really want to set src for editable image attachments, |
| we just want the UI process to fully own the data). |
| |
| * Platform/spi/ios/PencilKitSPI.h: |
| Add some SPI. |
| |
| * UIProcess/ios/EditableImageController.h: |
| * UIProcess/ios/EditableImageController.mm: |
| (WebKit::EditableImageController::loadStrokesFromAttachment): |
| Add a helper to load strokes from an attachment. |
| |
| (WebKit::EditableImageController::associateWithAttachment): |
| Try to load strokes from the attachment when initially associated. |
| Don't create a file wrapper around a null image, so it will be regenerated later. |
| |
| (WebKit::EditableImageController::willUpdateAttachmentAttributes): |
| The aforementioned plumbing at update time. |
| |
| * UIProcess/ios/WKDrawingView.h: |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView layoutSubviews]): |
| Invalidate the attachment (so it will be regenerated upon request) if the |
| canvas size changes. |
| |
| (-[WKDrawingView PNGRepresentation]): |
| Serialize strokes into the EXIF User Comment field. |
| We will find a different field to use (ideally a custom vendor-specific |
| field that nobody else will use for anything), but this works for now. |
| |
| Don't try to render an image if we don't have a size or scale; |
| PKImageRenderer will just fail anyway, so bail early. |
| |
| In the iOS Simulator, PKImageRenderer currently returns an unusable image. |
| Instead, so that we have a image on which to serialize the strokes, |
| create a transparent 1x1 image. This makes it possible to serialize strokes |
| even though we don't have a usable rendered image, so that we can still test |
| this change (and future changes). |
| |
| (-[WKDrawingView loadDrawingFromPNGRepresentation:]): |
| If available, deserialize strokes from the EXIF User Comment field. |
| |
| (-[WKDrawingView drawingDidChange:]): |
| (-[WKDrawingView invalidateAttachment]): |
| Factor invalidateAttachment out of drawingDidChange so we can call |
| it from layoutSubviews too! |
| |
| 2018-11-27 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON) crash under WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame() |
| https://bugs.webkit.org/show_bug.cgi?id=191983 |
| <rdar://problem/46246863> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| Make sure the navigation still exists in m_mainFrameCreationHandler and return early if it |
| does not. |
| |
| (WebKit::WebPageProxy::resetState): |
| Clear out m_mainFrameCreationHandler / m_mainFrameWindowCreationHandler if we resetting the state |
| after a crash. At this point, there is no chance the WebProcess will send us the IPC that will |
| cause these to get called and we do not want old state to remain for future navigations. |
| |
| 2018-11-16 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Disallow loading webarchives as iframes |
| https://bugs.webkit.org/show_bug.cgi?id=191728 |
| <rdar://problem/45524528> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::unableToImplementPolicy): |
| Add a check to prevent null pointer dereference. |
| |
| 2018-11-27 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| WebKit.AddAndRemoveDataDetectors hits a debug assertion after r238515 |
| https://bugs.webkit.org/show_bug.cgi?id=191996 |
| |
| Reviewed by Tim Horton. |
| |
| This assertion is hit because `decode(Decoder& decoder, NSArray<Class> *allowedClasses)` expects the decoded |
| object (of class `_NSArrayM`) to be equal to `NSArray.class`. |
| |
| We fix the crash by relaxing the debug assertion when decoding securely-codable objects over IPC. Instead of |
| checking that the class of the decoded object is equal to one of the allowed classes, check that the object is a |
| kind of any of the allowed classes. |
| |
| * Shared/Cocoa/ArgumentCodersCocoa.h: |
| (IPC::isObjectClassAllowed): |
| (IPC::decode): |
| |
| 2018-11-27 Tomas Popela <tpopela@redhat.com> |
| |
| [GTK][WPE] Remove temporary workaround in Source/WebKit/Platform*.cmake |
| https://bugs.webkit.org/show_bug.cgi?id=192008 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Looks like it's not needed anymore as the code compiles fine without |
| it. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| |
| 2018-11-27 Antti Koivisto <antti@apple.com> |
| |
| Factor mask layer applying in RemoteLayerTreePropertyApplier into a shared function |
| https://bugs.webkit.org/show_bug.cgi?id=192001 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::RemoteLayerTreePropertyApplier::applyProperties): |
| (WebKit::RemoteLayerTreePropertyApplier::updateMask): |
| |
| Shared function, with some special tricks for iOS backdrop layers. |
| |
| (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView): |
| |
| 2018-11-27 Antti Koivisto <antti@apple.com> |
| |
| Stop collecting related layers in RemoteLayerTreeHost::updateLayerTree |
| https://bugs.webkit.org/show_bug.cgi?id=192003 |
| |
| Reviewed by Tim Horton. |
| |
| We can pass the node hash directly to RemoteLayerTreePropertyApplier. The collection step doesn't seem |
| to add anything except an extra hash lookup. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| |
| Pass m_nodes directly. |
| Some random cleanups. |
| |
| 2018-11-27 Antti Koivisto <antti@apple.com> |
| |
| Remote tile layers shouldn't be UIViews |
| https://bugs.webkit.org/show_bug.cgi?id=191953 |
| |
| Reviewed by Tim Horton. |
| |
| They don't need any UIView functionality, nor do they ever have UIView descendants. |
| We can use lighter weight objects. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::RemoteLayerTreePropertyApplier::applyProperties): |
| (WebKit::RemoteLayerTreePropertyApplier::updateChildren): |
| |
| Factor to a function shared between platforms. |
| Support having both views and plain layers in the same tree. |
| Assert that all siblings are of the same type and that we don't attempt to add views to layers. |
| |
| (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::makeNode): |
| |
| Use new plain layer on Mac too. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: |
| (-[WKPlainRemoteLayer description]): |
| |
| Add a CALayer subclass so we can have a description, similar to WKCompositingView and pals. |
| |
| (WebKit::RemoteLayerTreeNode::createWithPlainLayer): |
| (WebKit::RemoteLayerTreeNode::detachFromParent): |
| |
| Support having null view. |
| |
| (WebKit::RemoteLayerTreeNode::appendLayerDescription): |
| |
| Helper for layer descriptions. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (WebKit::RemoteLayerTreeHost::makeNode): |
| |
| Construct plain layers for tiles. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (-[WKCompositingView description]): |
| (-[WKUIRemoteView description]): |
| (-[WKBackdropView description]): |
| |
| 2018-11-27 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove "using namespace WebCore" under Source/WebKit/WebProcess/InjectedBundle/API |
| https://bugs.webkit.org/show_bug.cgi?id=191995 |
| |
| Reviewed by Alex Christensen. |
| |
| The statement "using namespace WebCore" should be placed inside |
| namespace WebKit for unified source builds. But, source files |
| defining WebKit API can't be enclosed by namespace WebKit { } |
| becuase they are defined in the global scope. |
| |
| "using namespace WebCore" in global scope and unified source |
| builds may cause build breaks (Bug 191853). |
| |
| Remove "using namespace WebCore" in the global scope. Use |
| "WebCore::" prefix instead. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundle.cpp: |
| (WKBundleClearAllDatabases): |
| (WKBundleSetDatabaseQuota): |
| (WKBundleClearResourceLoadStatistics): |
| (WKBundleResourceLoadStatisticsNotifyObserver): |
| * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: |
| (WKBundleFrameGetFrameLoadState): |
| (WKBundleFrameClearOpener): |
| (WKBundleFrameCallShouldCloseOnWebView): |
| (WKBundleFrameCopySecurityOrigin): |
| (WKBundleFrameFocus): |
| * WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp: |
| * WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp: |
| |
| 2018-11-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] No way for clients to tell whether the content view is in the responder chain when the web view is |
| https://bugs.webkit.org/show_bug.cgi?id=169212 |
| <rdar://problem/30899656> |
| |
| Reviewed by Tim Horton. |
| |
| Add an SPI hook to allow internal WKWebView clients to determine whether the WKWebView's content view is the |
| first responder. Intended for use by clients, such as Mail, that embed native text input views and other views |
| that may become first responder within the view hierarchy of the WKWebView. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _contentViewIsFirstResponder]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-11-26 Tim Horton <timothy_horton@apple.com> |
| |
| Insert <attachment> elements under editable images to make their backing data accessible |
| https://bugs.webkit.org/show_bug.cgi?id=191844 |
| <rdar://problem/30900149> |
| |
| Reviewed by Simon Fraser. |
| |
| * DerivedSources.make: |
| * SourcesCocoa.txt: |
| * UIProcess/API/APIAttachment.h: |
| fileWrapper() is no longer a trivial getter; it can now construct |
| the file wrapper from a file wrapper generator if necessary. |
| |
| Add setFileWrapperGenerator() and invalidateGeneratedFileWrapper(). |
| |
| Make m_fileWrapper mutable so it can be adjusted inside its own getter. |
| |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::fileWrapper const): |
| If we have a fileWrapperGenerator and don't have a cached file wrapper, |
| create one before returning it. |
| |
| (API::Attachment::invalidateGeneratedFileWrapper): |
| Invalidate the currently-cached file wrapper. The next time a client |
| requests the file wrapper it will be regenerated. |
| |
| (API::Attachment::fileName const): |
| (API::Attachment::fileSizeForDisplay const): |
| (API::Attachment::enclosingImageData const): |
| (API::Attachment::isEmpty const): |
| (API::Attachment::createSerializedRepresentation const): |
| Make use of fileWrapper() instead of m_fileWrapper directly, to ensure |
| that it is created lazily if necessary. |
| |
| (API::Attachment::setFileWrapperGenerator): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (WebKit::RemoteLayerTreeHost::createEmbeddedView): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (-[WKEmbeddedView initWithEmbeddedViewID:]): |
| Defer to EditableImageController for creating WKDrawingViews for |
| editable images. This is done primarily so we don't have to pollute |
| Remote Layer Tree and DrawingArea interfaces with editable-image-specific messages. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_editableImageController): |
| (WebKit::m_resetRecentCrashCountTimer): Deleted. |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::editableImageController): |
| Keep an EditableImageController on the WebPageProxy. |
| |
| * UIProcess/ios/EditableImageController.h: Added. |
| * UIProcess/ios/EditableImageController.messages.in: Added. |
| * UIProcess/ios/EditableImageController.mm: Added. |
| (WebKit::EditableImageController::EditableImageController): |
| (WebKit::EditableImageController::~EditableImageController): |
| (WebKit::EditableImageController::ensureEditableImage): |
| (WebKit::EditableImageController::editableImage): |
| (WebKit::EditableImageController::didCreateEditableImage): |
| (WebKit::EditableImageController::didDestroyEditableImage): |
| (WebKit::EditableImageController::associateWithAttachment): |
| (WebKit::EditableImageController::invalidateAttachmentForEditableImage): |
| Add EditableImageController, which keeps track of EditableImages. |
| It can be messaged directly to create or destroy the UI-side state |
| of an editable image, and also to associate a WKDrawingView with |
| a particular attachment. |
| |
| * UIProcess/ios/WKDrawingView.h: |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]): |
| Store the WebPageProxy (weakly) so that we can get to the EditableImageController. |
| |
| (-[WKDrawingView layoutSubviews]): |
| (-[WKDrawingView PNGRepresentation]): |
| Synchronously render the PKCanvasView to PNG. |
| |
| (-[WKDrawingView drawingDidChange:]): |
| If the drawing changes, inform the APIAttachment that it needs |
| to discard its NSFileWrapper; a new one will be generated lazily. |
| |
| (-[WKDrawingView init]): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| (WebKit::WebChromeClient::associateEditableImageWithAttachment): |
| (WebKit::WebChromeClient::didCreateEditableImage): |
| (WebKit::WebChromeClient::didDestroyEditableImage): |
| |
| 2018-11-26 Jer Noble <jer.noble@apple.com> |
| |
| Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI |
| https://bugs.webkit.org/show_bug.cgi?id=190951 |
| <rdar://problem/45213065> |
| |
| Reviewed by Alex Christensen. |
| |
| Add an asyncronous reply request to VideoFullscreenManager. |
| |
| * Platform/IPC/MessageSender.h: |
| (IPC::MessageSender::sendWithAsyncReply): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::requestRouteSharingPolicyAndContextUID): |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| * WebProcess/cocoa/VideoFullscreenManager.messages.in: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::requestRouteSharingPolicyAndContextUID): |
| |
| 2018-11-26 Alex Christensen <achristensen@webkit.org> |
| |
| Rename WKWebView._safeBrowsingWarningForTesting to _safeBrowsingWarning to use it for more than testing |
| https://bugs.webkit.org/show_bug.cgi?id=191981 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _safeBrowsingWarning]): |
| (-[WKWebView _safeBrowsingWarningForTesting]): Deleted. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-11-26 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r237738): Command Down Arrow doesn't scroll to the end of a page anymore |
| https://bugs.webkit.org/show_bug.cgi?id=191967 |
| <rdar://problem/45976390> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes an issue where pressing Command + Down Arrow does not scroll the view to the end of the page. |
| |
| Following r237738 the value of the enumerations used to identify modifier keys (e.g. Shift) changed |
| to match the values of the corresponding enumerations in GraphicsServices, which are the |
| enumerations UIKit uses to computes the modifier flags bitmask when instantiating a WebEvent to |
| pass to WebKit. Before r237738 WebKit was using enumerations whose values matched the values |
| of the corresponding UIKit public API UIKeyModifier* enumerations. For non-content editable elements, |
| WebKit intercepts UIKit events in -_handleKeyUIEvent, synthesizes and dispatches its own WebEvent. |
| However it was creating WebEvents with a modifier flags bitmask built from the UIKeyModifier* enumerations, |
| -_modifierFlags, as opposed to a bitmask from the GraphicsServices enumerations, -_gsModifierFlags. |
| Instead WebKit should call -_gsModifierFlags to compute the GraphicsServices-compatible modifier |
| flags bitmask when instantiating a WebEvent. |
| |
| * Platform/spi/ios/UIKitSPI.h: Expose -_gsModifierFlags and remove -_modifierFlags. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _handleKeyUIEvent:]): Remove unnecessary code to update the current modifier state. |
| This will be done by the WebProcess when it receives the keyboard event. |
| (-[WKContentView _didHandleKeyEvent:eventWasHandled:]): Do not pass modifier flags changed events |
| to the scrolling animator as it does not know how to handle these kinds of events and triggers an |
| assertion failure when it tries to read the input string from the event (calls -charactersIgnoringModifiers). |
| FlagsChanged WebEvents events do not have an input string just like a FlagsChanged NSEvent that |
| they model on Mac. |
| * UIProcess/ios/WKWebEvent.mm: |
| (-[WKWebEvent initWithEvent:]): Pass the value of -_gsModifierFlags for the modifier flags bitmask |
| instead of the value of -_modifierFlags. |
| |
| 2018-11-26 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] process pre-warming should not be on for everyone |
| https://bugs.webkit.org/show_bug.cgi?id=191966 |
| <rdar://problem/46138499> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| If automatic process-prewarming is not explicitly turned on/off by the client, then we now only |
| turn it on automatically after the first process swap. Previously, it was always enabled if |
| process-swap on cross-site navigation was enabled (which is the case by default for all apps). |
| |
| This is important because some apps do not actually browse (only display static content) or never |
| browse cross-site, and thus would not benefit from process prewarming and yet pay a memory cost. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| Add m_clientWouldBenefitFromAutomaticProcessPrewarming flag which is false by default and is used |
| as a fallback if the client did not call setIsAutomaticProcessWarmingEnabled(). |
| |
| * UIProcess/API/C/WKContextConfigurationRef.cpp: |
| (WKContextConfigurationPrewarmsProcessesAutomatically): |
| (WKContextConfigurationSetPrewarmsProcessesAutomatically): |
| Add C API to toggle automatic process prewarming. It is needed for Safari to turn on this feature |
| by default for browsing. This way Safari does not have to wait for the first process swap to |
| start prewarming. |
| |
| * UIProcess/API/C/WKContextConfigurationRef.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| Only do automatic process prewarming if process-swap on cross-site navigation is also enabled. |
| This is needed for clients like Safari that explicitly enable automatic process prewarming but |
| only want to have it enabled if PSON is also enabled via experimental features. |
| |
| (WebKit::WebProcessPool::processForNavigation): |
| On first process swap, if the client did not explicitly turn on or off automatic process prewarming |
| then we enable it then. This avoids paying the cost of process prewarming in apps that would not |
| benefit from it. |
| |
| 2018-11-26 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Make it easier to encode NSObjects |
| https://bugs.webkit.org/show_bug.cgi?id=191948 |
| |
| Reviewed by Dean Jackson. |
| |
| It should be easier to encode objects that conform to NSSecureCoding for WebKit IPC. Right |
| now, several argument coders duplicate the logic for encoding and decoding objects using |
| NSKeyedArchiver and NSKeyedUnarchiver. |
| |
| This patch adds encodeObject() and decodeObject() primitives for encoding and decoding using |
| Foundation keyed archiving. It then partially specializes ArgumentCoder for raw pointers and |
| RetainPtrs whose pointee conforms to NSSecureCoding to call these new primitives. |
| |
| This allows us to use Encoder::operator<< to encode raw pointers or RetainPtrs and use |
| Decoder::operator>> to decode to an optional RetainPtr. By default, IPC::decode infers the |
| allowed class for decoding by calling `[T class]`. We can also specify the allowed classes |
| explicitly for containers and classes that are loaded at runtime. |
| |
| * Shared/Cocoa/ArgumentCodersCocoa.h: Added. |
| * Shared/Cocoa/ArgumentCodersCocoa.mm: Added. |
| * Shared/Cocoa/DataDetectionResult.mm: |
| (WebKit::DataDetectionResult::encode const): Removed custom encoding code and used ArgumentCodersCocoa instead. |
| (WebKit::DataDetectionResult::decode): Ditto. |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: |
| (IPC::ArgumentCoder<WebCore::Payment>::encode): Ditto. |
| (IPC::ArgumentCoder<WebCore::Payment>::decode): Ditto. |
| (IPC::ArgumentCoder<WebCore::PaymentAuthorizationResult>::decode): Ditto. |
| (IPC::ArgumentCoder<WebCore::PaymentContact>::encode): Ditto. |
| (IPC::ArgumentCoder<WebCore::PaymentContact>::decode): Ditto. |
| (IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::encode): Ditto. |
| (IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::decode): Ditto. |
| (IPC::ArgumentCoder<WebCore::PaymentMethod>::encode): Ditto. |
| (IPC::ArgumentCoder<WebCore::PaymentMethod>::decode): Ditto. |
| (IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode): Ditto. |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::description const): Added some needed namespaces due to unified source shuffling. |
| * Shared/WebCoreArgumentCoders.h: Modernized several decoders. |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| (WebKit::InteractionInformationAtPosition::encode const): Removed custom encoding code and used ArgumentCodersCocoa instead. |
| (WebKit::InteractionInformationAtPosition::decode): Ditto. |
| * Shared/mac/WebCoreArgumentCodersMac.mm: |
| (IPC::ArgumentCoder<WebCore::ProtectionSpace>::encodePlatformData): Ditto. |
| (IPC::ArgumentCoder<WebCore::ProtectionSpace>::decodePlatformData): Ditto. |
| (IPC::ArgumentCoder<WebCore::Credential>::encodePlatformData): Ditto. |
| (IPC::ArgumentCoder<WebCore::Credential>::decodePlatformData): Ditto. |
| (IPC::ArgumentCoder<WebCore::MediaPlaybackTargetContext>::encodePlatformData): Ditto. |
| (IPC::ArgumentCoder<WebCore::MediaPlaybackTargetContext>::decodePlatformData): Ditto. |
| (IPC::deviceContextKey): Deleted. |
| * Shared/mac/WebHitTestResultData.mm: |
| (WebKit::WebHitTestResultData::platformEncode const): Ditto. |
| (WebKit::WebHitTestResultData::platformDecode): Ditto. |
| * SourcesCocoa.txt: Added ArgumentCodersCocoa.mm. |
| * WebKit.xcodeproj/project.pbxproj: Ditto. |
| |
| 2018-11-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| CompletionHandler-based async IPC messages only work when the completion handler takes a single argument |
| https://bugs.webkit.org/show_bug.cgi?id=191965 |
| |
| Reviewed by Tim Horton. |
| |
| Teach `messages.py` to handle the case where an async IPC completion handler takes no arguments, or takes more |
| than a single argument. Currently, the generated code attempts to wrap all arguments in a `WTFMove(*~)`, but |
| this either results in `WTFMove(*)` in the case where there are no arguments, or `WTFMove(*foo, *bar, *baz)` in |
| the case where there are several arguments. Both of these results fail to compile. |
| |
| Instead, emit `completionHandler()` when there are no arguments, and |
| `completionHandler(WTFMove(*foo), WTFMove(*bar), WTFMove(*baz))` when there are multiple arguments. |
| |
| Tests: TestAsyncMessageWithNoArguments |
| TestAsyncMessageWithMultipleArguments |
| |
| * Scripts/webkit/MessageReceiverSuperclass-expected.cpp: |
| (Messages::WebPage::TestAsyncMessageWithNoArguments::callReply): |
| (Messages::WebPage::TestAsyncMessageWithNoArguments::cancelReply): |
| (Messages::WebPage::TestAsyncMessageWithNoArguments::send): |
| (Messages::WebPage::TestAsyncMessageWithMultipleArguments::callReply): |
| (Messages::WebPage::TestAsyncMessageWithMultipleArguments::cancelReply): |
| (Messages::WebPage::TestAsyncMessageWithMultipleArguments::send): |
| (WebKit::WebPage::didReceiveMessage): |
| * Scripts/webkit/MessagesSuperclass-expected.h: |
| (Messages::WebPage::TestAsyncMessageWithNoArguments::receiverName): |
| (Messages::WebPage::TestAsyncMessageWithNoArguments::name): |
| (Messages::WebPage::TestAsyncMessageWithNoArguments::asyncMessageReplyName): |
| (Messages::WebPage::TestAsyncMessageWithNoArguments::arguments const): |
| (Messages::WebPage::TestAsyncMessageWithMultipleArguments::receiverName): |
| (Messages::WebPage::TestAsyncMessageWithMultipleArguments::name): |
| (Messages::WebPage::TestAsyncMessageWithMultipleArguments::asyncMessageReplyName): |
| (Messages::WebPage::TestAsyncMessageWithMultipleArguments::arguments const): |
| * Scripts/webkit/messages.py: |
| * Scripts/webkit/messages_unittest.py: |
| |
| Add new `messages.py` unit tests to cover these cases. |
| |
| * Scripts/webkit/test-superclass-messages.in: |
| |
| 2018-11-26 Jeremy Jones <jeremyj@apple.com> |
| |
| Use Full Screen consistently in localizable strings. |
| https://bugs.webkit.org/show_bug.cgi?id=190363 |
| rdar://problem/43882333 |
| |
| Reviewed by Jon Lee. |
| |
| Rename "Fullscreen" to "Full Screen" in localizable strings for consistency. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (-[WKFullScreenViewController _showPhishingAlert]): |
| |
| 2018-11-26 Daniel Bates <dabates@apple.com> |
| |
| Wire up ChromeClient::takeFocus() on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=191763 |
| <rdar://problem/18584508> |
| |
| Reviewed by Dan Bernstein. |
| |
| Expose existing Mac SPI for use on iOS. This will allow Safari to be notified when |
| the engine has cycled through all the tab focusable elements on the page. |
| |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| |
| 2018-11-26 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, fix the internal 32-bit macOS 10.13 build after r238471 |
| |
| r238471 added an `#include WebPageMessages.h` in `WebPage.h`, which causes the 32-bit macOS build using an |
| internal macOS SDK ≤ 10.13 to fail. To address this, move the `#include` back under `PLATFORM(IOS_FAMILY)` by |
| changing the parameters of `WebPage::removeDataDetectedLinks` and `WebPage::detectDataInAllFrames` to completion |
| handlers rather than async IPC replies. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::removeDataDetectedLinks): |
| (WebKit::WebPage::detectDataInAllFrames): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-11-26 Antti Koivisto <antti@apple.com> |
| |
| Clean up layer tree freezing logic in WebPage |
| https://bugs.webkit.org/show_bug.cgi?id=191826 |
| |
| Reviewed by Dean Jackson. |
| |
| Use OptionSet<LayerTreeFreezeReason> to track various reasons that can cause layer tree to get frozen. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| (WebKit::WebPage::freezeLayerTree): |
| (WebKit::WebPage::unfreezeLayerTree): |
| (WebKit::WebPage::updateDrawingAreaLayerTreeFreezeState): |
| |
| Layer tree is unfrozen when there there are no reasons to freeze it. |
| |
| (WebKit::WebPage::didStartPageTransition): |
| (WebKit::WebPage::didCompletePageTransition): |
| (WebKit::WebPage::beginPrinting): |
| (WebKit::WebPage::endPrinting): |
| (WebKit::WebPage::setIsSuspended): |
| (WebKit::WebPage::setLayerTreeStateIsFrozen): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::applicationDidEnterBackground): |
| (WebKit::WebPage::applicationWillEnterForeground): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::actualPrepareToSuspend): |
| (WebKit::WebProcess::cancelPrepareToSuspend): |
| (WebKit::WebProcess::freezeAllLayerTrees): |
| (WebKit::WebProcess::unfreezeAllLayerTrees): |
| (WebKit::WebProcess::processDidResume): |
| (WebKit::WebProcess::setAllLayerTreeStatesFrozen): Deleted. |
| * WebProcess/WebProcess.h: |
| |
| 2018-11-25 Antti Koivisto <antti@apple.com> |
| |
| RemoteLayerTreeNode construction cleanups |
| https://bugs.webkit.org/show_bug.cgi?id=191951 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| |
| Drop unused LayerProperties argument. |
| |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| |
| Split the actual construction out to makeNode. |
| Map updating is shared between platforms. |
| Move setting of layerID and clearing default actions to RemoteLayerTreeNode. |
| |
| (WebKit::RemoteLayerTreeHost::makeNode): |
| |
| Returns RemoteLayerTreeNode. |
| |
| (WebKit::RemoteLayerTreeHost::setLayerID): Deleted. |
| (WebKit::RemoteLayerTreeHost::layerID): Deleted. |
| |
| Move to RemoteLayerTreeNode. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: |
| (WebKit::RemoteLayerTreeNode::RemoteLayerTreeNode): |
| (WebKit::RemoteLayerTreeNode::setLayerID): |
| (WebKit::RemoteLayerTreeNode::layerID): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (WebKit::RemoteLayerTreeHost::makeNode): |
| (WebKit::RemoteLayerTreeHost::createEmbeddedView): |
| (WebKit::RemoteLayerTreeHost::createLayer): Deleted. |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: |
| (-[WKCompositingView description]): |
| (-[WKUIRemoteView description]): |
| (-[WKBackdropView description]): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (WebKit::addAnimationToLayer): |
| |
| 2018-11-25 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to insert editable images with a gesture |
| https://bugs.webkit.org/show_bug.cgi?id=191937 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _stylusTapGestureShouldCreateEditableImage]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| Add a internal getter for a WKWebViewConfiguration property. |
| |
| * UIProcess/WebEditCommandProxy.cpp: |
| (WebKit::WebEditCommandProxy::nameForEditAction): |
| Add a undo name. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _removeDefaultGestureRecognizers]): |
| (-[WKContentView _addDefaultGestureRecognizers]): |
| Add a single-stylus-tap gesture recognizer. |
| |
| (-[WKContentView _stylusSingleTapRecognized:]): |
| If allowed, request to insert an editable image when a stylus tap occurs. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::handleStylusSingleTapAtPoint): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::handleStylusSingleTapAtPoint): |
| Do a hit test, select the hit position, insert an editable image, and |
| then de-assist any assisted node (to make the keyboard go away). |
| For now, we'll only insert if we hit non-replaced elements, |
| though this heuristic will need to be enhanced significantly once we |
| decide on a design. |
| |
| 2018-11-25 Tim Horton <timothy_horton@apple.com> |
| |
| Scrolling and drawing compete for incoming gestures |
| https://bugs.webkit.org/show_bug.cgi?id=191940 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Platform/spi/ios/PencilKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/ios/WKDrawingView.mm: |
| (-[WKDrawingView initWithEmbeddedViewID:webPageProxy:]): |
| Make scrolling and drawing mutually exclusive if editable images |
| are enabled. |
| |
| 2018-11-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Fix a few localizable string descriptions in WebEditCommandProxy.cpp and WebEditorClient.mm |
| https://bugs.webkit.org/show_bug.cgi?id=191945 |
| |
| Reviewed by Anders Carlsson. |
| |
| Replace some a couple of command undo action name descriptions with "Undo action name", to match all other |
| edit commands. |
| |
| * UIProcess/WebEditCommandProxy.cpp: |
| (WebKit::WebEditCommandProxy::nameForEditAction): |
| |
| 2018-11-24 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Add WKWebView SPI to trigger and remove data detection |
| https://bugs.webkit.org/show_bug.cgi?id=191918 |
| <rdar://problem/36185051> |
| |
| Reviewed by Tim Horton. |
| |
| Adds support for two new WKWebView SPI methods, `-_detectDataWithTypes:completionHandler:` and |
| `-_removeAllDataDetectedLinks:`, to allow internal WebKit clients to run data detection and add links to data |
| detected content, or remove all data detected links from the document. |
| |
| Test: WebKit.AddAndRemoveDataDetectors |
| |
| * Shared/Cocoa/DataDetectionResult.h: |
| * Shared/Cocoa/DataDetectionResult.mm: |
| (WebKit::DataDetectionResult::decode): |
| |
| Modernize DataDetectionResult's IPC decoding, so that it can be used with reply-based async IPC. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _removeDataDetectedLinks:]): |
| (-[WKWebView _detectDataWithTypes:completionHandler:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::detectDataInAllFrames): |
| (WebKit::WebPageProxy::removeDataDetectedLinks): |
| |
| Add or remove data detected links from each frame in the page, and then propagate the new data detector |
| results of the main frame to the UI process (this matches current behavior, where the results of -[WKWebView |
| _dataDetectionResults] only reflects data detection results in the main frame of the page). |
| |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::removeDataDetectedLinks): |
| (WebKit::WebPage::detectDataInAllFrames): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-11-24 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function |
| https://bugs.webkit.org/show_bug.cgi?id=191899 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/cocoa/WebCoreArgumentCodersCocoa.mm: |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: |
| |
| 2018-11-23 Antti Koivisto <antti@apple.com> |
| |
| Replace LayerOrView typedef with a class |
| https://bugs.webkit.org/show_bug.cgi?id=191927 |
| |
| Reviewed by Tim Horton. |
| |
| This typedef restricts remote layer representation to be either a CA layer or a view. We might want |
| have more flexibility, for example tiles don't really need to be UIViews. It will also make it easier |
| to unify Mac and iOS code, and hopefully make it less confusing too. |
| |
| This patch introduces RemoteLayerTreeNode class that replaces most uses of LayerOrView typedef |
| (the rest are converted to pure CALayer). It also does a bunch of related cleanup. |
| |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer): |
| (WebKit::RemoteLayerTreePropertyApplier::applyProperties): |
| (WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToUIView): |
| (WebKit::applyPropertiesToLayer): Deleted. |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _propertiesOfLayerWithID:]): |
| * UIProcess/Cocoa/LayerRepresentation.h: Removed. |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID): |
| * UIProcess/PageClient.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting const): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: |
| (WebKit::RemoteLayerTreeHost::rootNode const): |
| (WebKit::RemoteLayerTreeHost::rootLayer const): Deleted. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| (WebKit::RemoteLayerTreeHost::nodeForID const): |
| (WebKit::RemoteLayerTreeHost::layerWillBeRemoved): |
| (WebKit::RemoteLayerTreeHost::animationDidStart): |
| (WebKit::RemoteLayerTreeHost::animationDidEnd): |
| (WebKit::RemoteLayerTreeHost::clearLayers): |
| (WebKit::RemoteLayerTreeHost::layerWithIDForTesting const): |
| (WebKit::RemoteLayerTreeHost::layerForID const): |
| (WebKit::RemoteLayerTreeHost::rootLayer const): |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| (WebKit::RemoteLayerTreeHost::detachRootLayer): |
| (WebKit::RemoteLayerTreeHost::mapAllIOSurfaceBackingStore): |
| (WebKit::RemoteLayerTreeHost::getLayer const): Deleted. |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h: Added. |
| (WebKit::RemoteLayerTreeNode::layer const): |
| (WebKit::RemoteLayerTreeNode::uiView const): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm: Added. |
| (WebKit::RemoteLayerTreeNode::RemoteLayerTreeNode): |
| (WebKit::RemoteLayerTreeNode::detachFromParent): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm: |
| (WebKit::RemoteLayerTreeScrollingPerformanceData::blankPixelCount const): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| (WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): |
| (WebKit::layerRepresentationFromLayerOrView): Deleted. |
| * UIProcess/WebAuthentication/Cocoa/HidService.h: |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/LayerRepresentation.mm: Removed. |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::setRemoteLayerTreeRootNode): |
| (WebKit::PageClientImpl::acceleratedCompositingRootLayer const): |
| (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setRemoteLayerTreeRootNode): |
| (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted. |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::setRemoteLayerTreeRootNode): |
| (WebKit::PageClientImpl::setAcceleratedCompositingRootLayer): Deleted. |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::createFence): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::setRemoteLayerTreeRootNode): |
| (WebKit::WebPageProxy::acceleratedCompositingRootLayer const): |
| (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::recursiveBuildTransaction): |
| |
| 2018-11-23 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Enable Web Authentication as an experimental feature for macOS |
| https://bugs.webkit.org/show_bug.cgi?id=191932 |
| rdar://problem/46225210 |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-11-23 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Enable drag and drop support for iOSMac |
| https://bugs.webkit.org/show_bug.cgi?id=191818 |
| <rdar://problem/43907454> |
| |
| Reviewed by Dean Jackson. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (defaultCustomPasteboardDataEnabled): |
| |
| Enable custom pasteboard data by default on iOSMac. While writing and reading custom pasteboard data is |
| currently broken in iOSMac due to the lack of `teamData` and `preferredPresentationStyle`, opting into custom |
| pasteboard data at least allows us to avoid writing unsanitized data types to the pasteboard. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| |
| Fix a regression from <https://trac.webkit.org/r236619> wherein the web process crashes when attempting to edit |
| a text field. This happens because the call to `-[UIKeyboard isInHardwareKeyboardMode]` on the iOSMac platform |
| attempts to initialize a `UHASWorkspace` from the web process, which then attempts to connect to the UIKit host |
| application. Instead, we can skip this call altogether on iOSMac, where the platform never considers a hardware |
| keyboard to be "connected", even when typing. |
| |
| 2018-11-23 Antti Koivisto <antti@apple.com> |
| |
| UI side compositing doesn't paint on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=191908 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::bytesPerPixel const): |
| (WebKit::RemoteLayerBackingStore::surfaceBufferFormat const): |
| |
| These deep color formats are not supported on Mac. |
| |
| 2018-11-22 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r238353) Load sometimes hangs when navigating back after a cross-site navigation |
| https://bugs.webkit.org/show_bug.cgi?id=191914 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| When process-swapping on a cross-site server-side redirect, we end up doing a decidePolicyForNavigationResponse |
| policy check for the about:blank suspension load. This policy decision is ignored by the UIProcess because |
| SuspendedPageProxy does not handle this particular IPC message. To handle the issue, make sure the WebProcess |
| never sends a DecidePolicyForNavigationResponse IPC to the UIProcess for about:blank suspension loads and let |
| the load proceed. |
| |
| The issue was already there before r238353 but it was made obvious by r238353 which caused a hang when trying |
| to reuse a Suspended page which is hanging while trying to suspend. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse): |
| |
| 2018-11-22 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] clang emits a warning when building WebKit after r238293 |
| https://bugs.webkit.org/show_bug.cgi?id=191917 |
| |
| Reviewed by Dan Bernstein. |
| |
| Move the implementations of -setSafeBrowsingEnabled: and -isSafeBrowsingEnabled to the main implementation of |
| WKPreferences to fix the warning. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences setSafeBrowsingEnabled:]): |
| (-[WKPreferences isSafeBrowsingEnabled]): |
| |
| 2018-11-22 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Address post-review feedback after r238438 |
| https://bugs.webkit.org/show_bug.cgi?id=191913 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Replace boolean arguments to setSelectedRange, replaceSelectionWithText and replaceSelectionWithFragment with |
| enum flags, and tweak a couple of functions to take `const Vector&` instead of `Vector&&`. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageReplaceStringMatches): |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::replaceMatches): |
| * WebProcess/WebPage/FindController.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::replaceStringMatchesFromInjectedBundle): |
| (WebKit::WebPage::replaceMatches): |
| (WebKit::WebPage::replaceSelectionWithText): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::selectWithGesture): |
| (WebKit::WebPage::updateSelectionWithTouches): |
| (WebKit::WebPage::selectWithTwoTouches): |
| (WebKit::WebPage::extendSelection): |
| (WebKit::WebPage::selectWordBackward): |
| (WebKit::WebPage::moveSelectionByOffset): |
| (WebKit::WebPage::selectPositionAtPoint): |
| (WebKit::WebPage::selectPositionAtBoundaryWithDirection): |
| (WebKit::WebPage::moveSelectionAtBoundaryWithDirection): |
| (WebKit::WebPage::selectTextWithGranularityAtPoint): |
| (WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): |
| (WebKit::WebPage::updateSelectionWithExtentPoint): |
| (WebKit::WebPage::replaceSelectedText): |
| (WebKit::WebPage::replaceDictatedText): |
| (WebKit::WebPage::syncApplyAutocorrection): |
| |
| 2018-11-22 Mark Lam <mark.lam@apple.com> |
| |
| Rollout r238432: Breaks internal Mac builds. |
| https://bugs.webkit.org/show_bug.cgi?id=191909 |
| <rdar://problem/46214163> |
| |
| Unreviewed. Rolling out r238432: Remove @no-unify of InjectedBundleRangeHandle.cpp and InjectedBundleNodeHandle.cpp |
| |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Update OptionsGTK.cmake and NEWS for 2.23.1 release. |
| |
| * gtk/NEWS: Add release notes for 2.23.1. |
| |
| 2018-11-21 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] [WebKit2] Add support for replacing find-in-page text matches |
| https://bugs.webkit.org/show_bug.cgi?id=191786 |
| <rdar://problem/45813871> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView replaceMatches:withString:inSelectionOnly:resultCollector:]): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::replaceMatches): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/mac/WKTextFinderClient.mm: |
| (-[WKTextFinderClient replaceMatches:withString:inSelectionOnly:resultCollector:]): |
| |
| Implement this method to opt in to "Replace…" UI on macOS in the find bar. In this API, we're given a list of |
| matches to replace. We propagate the indices of each match to the web process, where FindController maps them to |
| corresponding replacement ranges. Currently, the given list of matches is only ever a list containing the first |
| match, or a list containing all matches. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageFindStringMatches): |
| (WKBundlePageReplaceStringMatches): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::replaceMatches): |
| |
| Map match indices to Ranges, and then call into WebCore::Page to do the heavy lifting (see WebCore ChangeLog for |
| more details). Additionally add a hard find-and-replace limit here to prevent the web process from spinning |
| indefinitely if there are an enormous number of find matches. |
| |
| * WebProcess/WebPage/FindController.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::findStringMatchesFromInjectedBundle): |
| (WebKit::WebPage::replaceStringMatchesFromInjectedBundle): |
| |
| Add helpers to exercise find and replace in WebKit2. |
| |
| (WebKit::WebPage::replaceMatches): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-11-21 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Create a soft-linking file for PassKit |
| https://bugs.webkit.org/show_bug.cgi?id=191875 |
| <rdar://problem/46203215> |
| |
| Reviewed by Myles Maxfield. |
| |
| * Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: Removed SOFT_LINK macros and included PassKitSoftLink.h instead. |
| * SourcesCocoa.txt: Removed @no-unify from WebPaymentCoordinatorProxyIOS.mm and WebPaymentCoordinatorProxyMac.mm. |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: Removed SOFT_LINK macros and included PassKitSoftLink.h instead. |
| * UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: Ditto. |
| * UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: Ditto. |
| * UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm: Included NSAttributedStringSPI.h. |
| * UIProcess/mac/WebProcessProxyMac.mm: Included ProcessPrivilege.h. |
| * WebKit.xcodeproj/project.pbxproj: Removed WebPaymentCoordinatorProxyIOS.mm and WebPaymentCoordinatorProxyMac.mm from the WebKit target. |
| |
| 2018-11-21 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Remove @no-unify of InjectedBundleRangeHandle.cpp and InjectedBundleNodeHandle.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=191853 |
| |
| Reviewed by Michael Catanzaro. |
| |
| In r235845, I excluded InjectedBundleRangeHandle.cpp and |
| InjectedBundleNodeHandle.cpp from unify source builds in order to |
| work around a MSVC bug. |
| |
| Then, I commited a different workaround for the MSVC bug in |
| r238386. Now, we can include InjectedBundleRangeHandle.cpp and |
| InjectedBundleNodeHandle.cpp in unified source builds. Revert |
| r235845. |
| |
| * Sources.txt: Removed @no-unify of InjectedBundleRangeHandle.cpp |
| and InjectedBundleNodeHandle.cpp |
| * WebKit.xcodeproj/project.pbxproj: Unchecked Target Membership |
| not to be compiled by XCode. |
| |
| 2018-11-20 Jeff Miller <jeffm@apple.com> |
| |
| Return nullptr immediately if the key doesn't exist in the HashMap. |
| https://bugs.webkit.org/show_bug.cgi?id=191841 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/API/APIDictionary.h: |
| |
| 2018-11-20 Don Olmstead <don.olmstead@sony.com> |
| |
| WebPasteboard should USE(LIBWPE) |
| https://bugs.webkit.org/show_bug.cgi?id=191846 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add USE(LIBWPE) for Pasteboard related functionality within WebKit. |
| |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| |
| 2018-11-20 Don Olmstead <don.olmstead@sony.com> |
| |
| [WPE] Fix some feature guards in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=191847 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Some feature guards are not present in these files. |
| |
| * UIProcess/API/wpe/PageClientImpl.cpp: |
| * UIProcess/API/wpe/PageClientImpl.h: |
| * UIProcess/wpe/WebProcessPoolWPE.cpp: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| |
| 2018-11-20 Antti Koivisto <antti@apple.com> |
| |
| Avoid potential longer than expected layer flush delays |
| https://bugs.webkit.org/show_bug.cgi?id=191833 |
| |
| Reviewed by Dean Jackson. |
| |
| Layer flush throttling also stops style recalcs and layouts. Layouts schedule layer flushes. Especially |
| on a slow network we can in principle end up in situation where layer flush timer fires but there is no |
| flush scheduled and so nothing happens. However there is a pending style recalc or layout that would |
| actually schedule a flush (in practice various things force style recalcs and this doesn't occur |
| commonly). |
| |
| To avoid this we should flush unconditionally when the flush timer fires. This performs any pending |
| style recalc and layout too. If there is nothing to do the flush will be cheap. |
| |
| PLT doesn't appear to hit cases affected by this patch and there shouldn't be any impact. |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| |
| Remove now unnecessary m_hasPendingFlush bit, simplifying the logic. |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen): |
| |
| Schedule unconditionally when unfreezing. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlush): |
| |
| Remove branch that starts the flush timer. It is not needed as either it was already running |
| or immediate flush is already scheduled and will start the timer anyway. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::flushLayers): |
| (WebKit::TiledCoreAnimationDrawingArea::adjustLayerFlushThrottling): |
| (WebKit::TiledCoreAnimationDrawingArea::layerFlushThrottlingTimerFired): |
| |
| Flush unconditionally. |
| |
| 2018-11-19 Don Olmstead <don.olmstead@sony.com> |
| |
| Simplify platform check in WebEditorClient |
| https://bugs.webkit.org/show_bug.cgi?id=191848 |
| |
| Reviewed by Fujii Hironori. |
| |
| !PLATFORM(GTK) && !PLATFORM(COCOA) && !PLATFORM(WPE) can be better |
| represented as PLATFORM(WIN). |
| |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| |
| 2018-11-19 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI to disable JIT in a WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=191822 |
| <rdar://problem/28119360> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _canUseJIT:]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| (-[_WKProcessPoolConfiguration enableJIT]): |
| (-[_WKProcessPoolConfiguration setEnableJIT:]): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| (WebKit::ProcessLauncher::Client::enableJIT const): |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::canUseJIT): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::enableJIT const): |
| * UIProcess/WebProcessProxy.h: |
| (WebKit::WebProcessProxy::processPool const): |
| (WebKit::WebProcessProxy::processPool): Deleted. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::canUseJIT): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-11-19 Basuke Suzuki <basuke.suzuki@sony.com> |
| |
| [Curl] Add API for CertificateInfo. |
| https://bugs.webkit.org/show_bug.cgi?id=191647 |
| |
| Reviewed by Alex Christensen. |
| |
| Added API for CertificateInfo to create, fetch contents. |
| |
| Tests: TestWebKitAPI/Tests/WebKit/curl/Certificates.cpp |
| |
| * PlatformWin.cmake: |
| * Shared/API/c/curl/WKCertificateInfoCurl.cpp: Added. |
| (WKCertificateInfoCreateWithCertficateChain): |
| (WKCertificateInfoGetVerificationError): |
| (WKCertificateInfoGetCertificateChainSize): |
| (WKCertificateInfoCopyCertificateAtIndex): |
| * Shared/API/c/curl/WKCertificateInfoCurl.h: Copied from Source/WebCore/platform/network/curl/CertificateInfoCurl.cpp. |
| * Shared/curl/WebCoreArgumentCodersCurl.cpp: |
| (IPC::ArgumentCoder<CertificateInfo>::encode): |
| (IPC::ArgumentCoder<CertificateInfo>::decode): |
| |
| 2018-11-19 Don Olmstead <don.olmstead@sony.com> |
| |
| Add USE(LIBWPE) for WebKit events |
| https://bugs.webkit.org/show_bug.cgi?id=191842 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Moves all WPE events to USE(LIBWPE) instead of PLATFORM(WPE). Updates |
| filenames to LibWPE. |
| |
| * PlatformWPE.cmake: |
| * Shared/NativeWebKeyboardEvent.h: |
| * Shared/NativeWebMouseEvent.h: |
| * Shared/NativeWebTouchEvent.h: |
| * Shared/NativeWebWheelEvent.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebEvent.h: |
| * Shared/WebKeyboardEvent.cpp: |
| (WebKit::WebKeyboardEvent::WebKeyboardEvent): |
| * Shared/libwpe/NativeWebKeyboardEventLibWPE.cpp: Renamed from Source/WebKit/Shared/wpe/NativeWebKeyboardEventWPE.cpp. |
| * Shared/libwpe/NativeWebMouseEventLibWPE.cpp: Renamed from Source/WebKit/Shared/wpe/NativeWebMouseEventWPE.cpp. |
| * Shared/libwpe/NativeWebTouchEventLibWPE.cpp: Renamed from Source/WebKit/Shared/wpe/NativeWebTouchEventWPE.cpp. |
| * Shared/libwpe/NativeWebWheelEventLibWPE.cpp: Renamed from Source/WebKit/Shared/wpe/NativeWebWheelEventWPE.cpp. |
| * Shared/libwpe/WebEventFactory.cpp: Renamed from Source/WebKit/Shared/wpe/WebEventFactory.cpp. |
| * Shared/libwpe/WebEventFactory.h: Renamed from Source/WebKit/Shared/wpe/WebEventFactory.h. |
| * SourcesWPE.txt: |
| |
| 2018-11-19 David Quesada <david_quesada@apple.com> |
| |
| EXC_BAD_ACCESS when invoking a DownloadProxy's destination decision handler after the download has been canceled |
| https://bugs.webkit.org/show_bug.cgi?id=191762 |
| rdar://problem/46151509 |
| |
| Reviewed by Dean Jackson. |
| |
| When the DownloadClient calls the decision handler with a destination path, check if |
| m_processPool is null before trying to access its network process. This can happen |
| if a download is canceled before the client decides its destination. |
| |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync): |
| |
| 2018-11-19 Tomoki Imai <Tomoki.Imai@sony.com> |
| |
| [cairo] BackingStore::incorporateUpdate should use CompositeCopy to support drawsBackground=false in general Cairo ports |
| https://bugs.webkit.org/show_bug.cgi?id=191577 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| We should use CompositeCopy operator to update bitmap to overwrite existing bitmap even if source contains |
| transparent parts. It enables ports which uses Cairo to set drawsBackground to false. |
| GTK ports has custom background extension, and in such case, we need to use CompositeSourceOver to retain |
| custom background. |
| |
| * UIProcess/cairo/BackingStoreCairo.cpp: |
| (WebKit::BackingStore::incorporateUpdate): Use CompositeCopy operator to update bitmap. |
| |
| 2018-11-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: "Reload Web Inspector" button no longer partially works |
| https://bugs.webkit.org/show_bug.cgi?id=191773 |
| <rdar://problem/46139932> |
| |
| Reviewed by Devin Rousso. |
| |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::load): |
| (WebKit::RemoteWebInspectorProxy::reopen): |
| * UIProcess/RemoteWebInspectorProxy.h: |
| * UIProcess/RemoteWebInspectorProxy.messages.in: |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::reopen): |
| * WebProcess/WebPage/RemoteWebInspectorUI.h: |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::reopen): |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebInspector.messages.in: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::reopen): |
| * WebProcess/WebPage/WebInspectorUI.h: |
| |
| 2018-11-19 Alejandro G. Castro <alex@igalia.com> |
| |
| [GTK][WPE] Solve some issues in the enumerateDevices code |
| https://bugs.webkit.org/show_bug.cgi?id=191832 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/glib/WebKitDeviceInfoPermissionRequest.cpp: |
| Increase the version to 2.24. |
| (webkitDeviceInfoPermissionRequestAllow): |
| (webkitDeviceInfoPermissionRequestDeny): |
| * UIProcess/API/glib/WebKitDeviceInfoPermissionRequestPrivate.h: |
| Replace the forward declaration with the include. |
| * UIProcess/API/gtk/WebKitDeviceInfoPermissionRequest.h: Typo. |
| * UIProcess/API/gtk/WebKitWebsiteData.h: |
| Increase the version to 2.24. |
| * UIProcess/API/wpe/WebKitDeviceInfoPermissionRequest.h: Typo. |
| * UIProcess/API/wpe/WebKitWebsiteData.h: |
| Increase the version to 2.24. |
| |
| 2018-11-19 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK+ build after r238318. |
| |
| Add new symbols to API documentation files. They should have been added in r237031, but r238318 revealed it. |
| |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0.types: |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| |
| 2018-11-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Regression(r238330): A lot of WebInspector tests are crashing on the bots |
| https://bugs.webkit.org/show_bug.cgi?id=191814 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Expose the expected connection type from the UIProcess into the WebProcess. |
| When there is a local inspector connection to the UIProcess expose it as |
| a local frontend channel to the inspector controllers in the Page. |
| |
| * UIProcess/WebPageInspectorTargetAgent.h: |
| * UIProcess/WebPageInspectorTargetAgent.cpp: |
| (WebKit::WebPageInspectorTargetAgent::frontendChannel): |
| An additional FrontendChannel class is not needed, just use self. |
| |
| (WebKit::WebPageInspectorTargetAgent::WebPageInspectorTargetAgent): |
| (WebKit::WebPageInspectorTargetAgent::connectionType const): |
| (WebKit::WebPageInspectorTargetAgent::sendMessageToFrontend): |
| Expose the channel to targets as local if there is a local frontend |
| in the UIProcess. |
| |
| 2018-11-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Regression(r238330) ProcessSwap.WebInspector API test is a flaky crash in debug |
| https://bugs.webkit.org/show_bug.cgi?id=191812 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::setFrontendConnection): |
| It can be possible to receive a frontend connection multiple times |
| if another WebProcess opened the inspector and this WebProcess got |
| swapped in before the InspectorProcess notified the WebProcess of |
| a connection to use. It is always best to use the latest connection |
| we have received, since any others would have been invalidated. |
| |
| 2018-11-18 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Received an invalid message "WebPageProxy.DidPerformClientRedirect" from the web process |
| https://bugs.webkit.org/show_bug.cgi?id=191828 |
| |
| Reviewed by Antti Koivisto. |
| |
| WebPageProxy::didPerformClientRedirect() had a MESSAGE_CHECK_URL() for both the source |
| and the destination URL. The macro calls WebProcessProxy::checkURLReceivedFromWebProcess() |
| to make sure that both URLs were actually loaded by this WebContent process. |
| |
| However, now that we're enabled process-swap on cross-site navigation, these checks are no |
| longer fully valid. If the client-side redirect is cross-site, then the source and destination |
| URLs get loaded by 2 different WebContent processes. Since didPerformClientRedirect() gets |
| called after the redirect and gets set by the new WebContent process, only the destination URL |
| is guaranteed to have been loaded by this process. The source URL may have been loaded in |
| another process so this patch drops the message check for the source URL. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didPerformClientRedirect): |
| |
| 2018-11-18 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| Use Box<BinarySemaphore> instead of dispatch_semaphore_t |
| https://bugs.webkit.org/show_bug.cgi?id=189691 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Use Box<BinarySemaphore> instead, which utilizes our WTF::Lock mechanism. |
| |
| * NetworkProcess/watchos/NetworkProximityManager.mm: |
| (WebKit::NetworkProximityManager::updateRecommendation): |
| |
| 2018-11-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Remove all usages of UIItemProvider, UIItemProviderReading, and related classes |
| https://bugs.webkit.org/show_bug.cgi?id=191819 |
| |
| Reviewed by Dan Bernstein. |
| |
| Replace UIItemProvider (and related classes) with NSItemProvider. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _itemsForBeginningOrAddingToSessionWithRegistrationList:stagedDragSource:]): |
| (-[WKContentView dropInteraction:performDrop:]): |
| |
| 2018-11-17 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed WinCairo build fix for r238353. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| |
| 2018-11-17 Chris Dumez <cdumez@apple.com> |
| |
| ASSERTION FAILED: m_messageReceivers.contains(...) under ViewGestureController removeMessageReceiver |
| https://bugs.webkit.org/show_bug.cgi?id=191734 |
| <rdar://problem/46151497> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| When a WebProcess crashes, we destroy the ViewGestureController and reconstruct it later |
| after we've relaunched a new WebProcess. The ViewGestureController controller takes care |
| of adding itself as an IPC message receiver to the WebProcessProxy, and the destructor |
| takes care of removing itself as an IPC message receiver. |
| |
| However, when process-swapping on navigation, we do not destroy the ViewGestureController |
| because doing so would take down the swipe gesture snapshot on cross-site swipe navigation. |
| This led to hitting this assertion later on because the ViewGestureController is still |
| registered as an IPC message receiver with the old process after process swapping. |
| |
| To address the issue, we now make sure the ViewGestureController unregisters itself from |
| the old process and registers itself with the new process on process-swap. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::ViewGestureController): |
| (WebKit::ViewGestureController::~ViewGestureController): |
| (WebKit::ViewGestureController::disconnectFromProcess): |
| (WebKit::ViewGestureController::connectToProcess): |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::processWillSwap): |
| (WebKit::WebViewImpl::didRelaunchProcess): |
| |
| 2018-11-17 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] ASSERTION FAILED: m_uncommittedState.state == State::Committed |
| https://bugs.webkit.org/show_bug.cgi?id=191781 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| The crash was happening when switching to a suspended page that is not yet done |
| suspending (e.g. in case of very fast back/forward navigation). The WebPageProxy |
| would reattach to the suspended process and get load notifications that it did |
| not expect since it did not schedule any load yet. Those notifications are for |
| the about:blank load we do for page suspension. |
| |
| To address the issue, make swapToWebProcess() asynchronous and take a completion |
| handler. When we try to unsuspend a SuspendedPageProxy, we first make sure it |
| is actually done suspending. If it is not done suspending, we wait until it is |
| before telling in to unsuspend and proceeding with the new load. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::unsuspend): |
| (WebKit::SuspendedPageProxy::didFinishLoad): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-11-17 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed follow-up to r238343 to address debug assertions in 2 API tests. |
| |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| |
| 2018-11-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: add button to show system certificate dialog |
| https://bugs.webkit.org/show_bug.cgi?id=191458 |
| <rdar://problem/45977019> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UIProcess/WebInspectorProxy.messages.in: |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::showCertificate): Added. |
| (WebKit::WebInspectorProxy::platformShowCertificate): Added. |
| * UIProcess/mac/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformShowCertificate): Added. |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformShowCertificate): Added. |
| * UIProcess/mac/WebInspectorProxyWPE.cpp: |
| (WebKit::WebInspectorProxy::platformShowCertificate): Added. |
| * UIProcess/mac/WebInspectorProxyWin.cpp: |
| (WebKit::WebInspectorProxy::platformShowCertificate): Added. |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::showCertificate): Added. |
| |
| * UIProcess/RemoteWebInspectorProxy.messages.in: |
| * UIProcess/RemoteWebInspectorProxy.h: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| (WebKit::RemoteWebInspectorProxy::showCertificate): Added. |
| (WebKit::RemoteWebInspectorProxy::platformShowCertificate): Added. |
| * UIProcess/mac/RemoteWebInspectorProxyGtk.cpp: |
| (WebKit::RemoteWebInspectorProxy::platformShowCertificate): Added. |
| * UIProcess/mac/RemoteWebInspectorProxyMac.mm: |
| (WebKit::RemoteWebInspectorProxy::platformShowCertificate): Added. |
| * WebProcess/WebPage/RemoteWebInspectorUI.h: |
| * WebProcess/WebPage/RemoteWebInspectorUI.cpp: |
| (WebKit::RemoteWebInspectorUI::showCertificate): Added. |
| |
| * NetworkProcess/cache/NetworkCacheCoders.h: |
| * NetworkProcess/cache/NetworkCacheCodersCocoa.cpp: Removed. |
| * NetworkProcess/cache/NetworkCacheCodersCurl.cpp: Removed. |
| * NetworkProcess/cache/NetworkCacheCodersSoup.cpp: Removed. |
| Moved `WebCore::CertificateInfo` code for `WTF::Encoder` and `WTF::Decoder` into their |
| respective platform's CertificateInfo.h file. |
| |
| * UIProcess/Authentication/mac/WebCredentialMac.mm: |
| |
| * Configurations/WebKit.xcconfig: |
| * PlatformMac.cmake: |
| * PlatformWin.cmake: |
| * SourcesCocoa.txt: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| Regression(ProcessPrewarming) Assertion hit in NetworkProcessProxy destructor |
| https://bugs.webkit.org/show_bug.cgi?id=191800 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Make sure the NetworkProcessProxy destructor calls its remaining m_pendingConnectionReplies |
| completion handlers to avoid hitting an assertion in the CompletionHandler destructor. |
| |
| Prewarmed WebProcess do not keep the ProcessPool alive and thus not the NetworkProcessProxy |
| either. As a result, it is possible for NetworkProcessProxy to have pending connection |
| requests from those prewarmed processes when it is destroyed. Similar story for the |
| suspended page processes when they are destroyed. |
| |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::~NetworkProcessProxy): |
| |
| 2018-11-16 Alex Christensen <achristensen@webkit.org> |
| |
| Tweak _showSafeBrowsingWarningWithTitle SPI |
| https://bugs.webkit.org/show_bug.cgi?id=191799 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]): |
| (+[WKWebView _visitUnsafeWebsiteSentinel]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (-[WKSafeBrowsingWarning clickedOnLink:]): |
| I need to localize "Continue" and "Cancel" so they aren't always in English. |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| WKWebViewMacEditingTests.DoNotCrashWhenInterpretingKeyEventWhileDeallocatingView API test is crashing in debug |
| https://bugs.webkit.org/show_bug.cgi?id=191797 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| We were hitting the assertion because the error handler was first getting called. It would |
| deallocate the send right, cancel/null out the XPC connection and call |
| didFinishLaunchingProcess(0, IPC::Connection::Identifier()). |
| |
| Then the xpc_connection_send_message_with_reply() block would get called later and |
| would try to deallocate the send right again, and call |
| didFinishLaunchingProcess(0, IPC::Connection::Identifier()) again because the xpc |
| connection is null. |
| |
| Handle this case by having the xpc_connection_send_message_with_reply() block check |
| that we're still launching (i.e. didFinishLaunchingProcess() has not been called |
| yet). |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2018-11-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed follow-up to r238330. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| Don't clear the pointer after invalidating since the pointer is |
| used later one. We don't mind it being used after invalidation |
| it will do the right thing, we'd rather have the WebInspectorProxy |
| lifetime match the WebPageProxy. |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| ProcessSwap.NavigationWithLockedHistoryWithoutPSON API test is a flaky crash in debug |
| https://bugs.webkit.org/show_bug.cgi?id=191795 |
| |
| Reviewed by Alex Christensen. |
| |
| If the WebProcessPool is getting destroyed while there is a prewarmed WebContent process |
| that is awaiting its connnection to the network process, then we'll hit the |
| process->hasOneRef() assertion in the WebProcessPool destructor. This is because |
| NetworkProcessProxy::m_pendingConnectionReplies keeps a RefPtr to the WebProcessProxy |
| that is awaiting the connection. The NetworkProcessProxy does not really need to keep |
| the WebProcessProxy alive in this case so this patch switches to using a WeakPtr instead. |
| |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| [macOS] Label "prewarmed" WebContent processes in Activity Monitor |
| https://bugs.webkit.org/show_bug.cgi?id=191765 |
| <rdar://problem/45953463> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Label "prewarmed" WebContent processes in Activity Monitor to facilitate debugging. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: |
| (WebKit::XPCServiceInitializerDelegate::getExtraInitializationData): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getLaunchOptions): |
| (WebKit::WebProcessProxy::markIsNoLongerInPrewarmedPool): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::markIsNoLongerPrewarmed): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeProcessName): |
| (WebKit::WebProcess::updateProcessName): |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-11-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Local Inspector) |
| https://bugs.webkit.org/show_bug.cgi?id=191740 |
| <rdar://problem/45470897> |
| |
| Reviewed by Timothy Hatcher. |
| |
| When a web page asks to open a local Web Inspector, that inspector |
| will now connect in the UIProcess (WebPageProxy / WebPageInspectorController) |
| instead of the WebContentProcess (WebKit::WebInspector / InspectorController). |
| |
| Previously a WebInspectorProxy was re-created every time the WebPageProxy's |
| WebPage / WebProcess was changed, effectively closing the Web Inspector |
| frontend when the WebPage was swapped or crashed. |
| |
| This change keeps the WebInspectorProxy alive as long as the WebPageProxy |
| is alive. During process swaps, or process crashes, the WebInspectorProxy |
| is reset when the page is reset and updated when the page's WebProcess |
| changes. Since WebInspectorProxy owns the Web Inspector view / window |
| the Web Inspector window can be kept alive across (and attached state) |
| across WebPage / WebProcess changes. |
| |
| Previously the WebContentProcess's WebKit::WebInspector was the Local |
| FrontendChannel for the WebCore::InspectorController. This can't |
| outlive the single WebContentProcess. |
| |
| This change makes the UIProcesses' WebInspectorProxy the Local FrontendChannel |
| for the WebKit::WebPageInspectorController. Given the WebInspectorProxy |
| now stays alive alongside the WebPageProxy this will live across process changes. |
| This means that the WebInspectorUI process must send its backend messages to |
| the WebInspectorProxy -> WebPageInspectorController now instead of the |
| old path WebInspector -> WebCore::InspectorController. |
| |
| A direct IPC connection is still maintained between the WebContentProcess's |
| WebKit::WebInspector and the InspectorProcess's WebInspectorUI. Previously |
| this connection was established by WebKit::WebInspector vending an |
| IPC::Attachment to the WebInspectorUI process. This patch inverts that |
| relationship, because the WebInspectorUI process now lives across multiple |
| WebContentProcess changes. The WebInspectorUI now vends the IPC::Attachment |
| to the WebContentProcess each time the process changes. This way they can both |
| still communicate through normal Messages::WebInspector/WebInspectorUI |
| messages and everything behaves as previously expected. |
| |
| * Scripts/webkit/messages.py: |
| Header for Inspector::FrontendChannel::ConnectionType. |
| |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::openLocalFrontend): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openLocalInspectorFrontend): |
| (WebKit::WebInspector::setFrontendConnection): |
| (WebKit::WebInspector::closeFrontendConnection): |
| (WebKit::WebInspector::close): |
| (WebKit::WebInspector::openFrontendConnection): Deleted. |
| (WebKit::WebInspector::sendMessageToBackend): Deleted. |
| (WebKit::WebInspector::sendMessageToFrontend): Deleted. |
| On the WebProcess side we ask the UIProcess to open a local frontend and now |
| receive instead of vend an IPC connection to the WebInspectorUI process. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::resetState): |
| Keep the WebInspectorProxy alive alongside the WebPageProxy. |
| Update it as processes / states change. |
| |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/WebInspectorProxy.messages.in: |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::openLocalInspectorFrontend): |
| (WebKit::WebInspectorProxy::createInspectorPage): Deleted. |
| (WebKit::WebInspectorProxy::sendMessageToFrontend): |
| (WebKit::WebInspectorProxy::closeFrontendPageAndWindow): |
| Open and close a local frontend by being the FrontendChannel on the UIProcess side. |
| |
| (WebKit::WebInspectorProxy::sendMessageToBackend): |
| Dispatch WebInspectorUI backend messages to the UIProcess's InspectorController |
| now that the InspectorController is here instead of in the WebProcess. |
| |
| (WebKit::WebInspectorProxy::setFrontendConnection): |
| Transfer the WebProcess <-> InspectorProcess IPC connection through us |
| because we are the one link between them when processes change. |
| |
| (WebKit::WebInspectorProxy::invalidate): |
| (WebKit::WebInspectorProxy::frontendLoaded): |
| Be safer and handle inspectedPage being potentially null. |
| |
| * WebProcess/WebPage/WebPageInspectorTargetController.cpp: |
| (WebKit::WebPageInspectorTargetController::connectInspector): |
| * WebProcess/WebPage/WebPageInspectorTargetController.h: |
| * WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.cpp: |
| (WebKit::WebPageInspectorTargetFrontendChannel::create): |
| (WebKit::WebPageInspectorTargetFrontendChannel::WebPageInspectorTargetFrontendChannel): |
| * WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.h: |
| * UIProcess/InspectorTargetProxy.cpp: |
| (WebKit::InspectorTargetProxy::connect): |
| Proxy the ConnectionType received on the UIProcess side to the WebProcess side |
| when connecting to sub-targets. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::connectInspector): |
| (WebKit::WebPage::setHasLocalInspectorFrontend): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::hasLocalInspectorFrontend const): Deleted. |
| (WebKit::WebPageProxy::setHasLocalInspectorFrontend): Deleted. |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| Eliminate the hasLocalInspectorFrontend state that was only used |
| to disable PSON. PSON no longer needs to be disabled for this reason. |
| |
| * WebProcess/WebPage/WebInspector.h: |
| * WebProcess/WebPage/WebInspector.messages.in: |
| * WebProcess/WebPage/WebInspectorUI.cpp: |
| (WebKit::WebInspectorUI::establishConnection): |
| (WebKit::WebInspectorUI::updateConnection): |
| (WebKit::WebInspectorUI::closeWindow): |
| (WebKit::WebInspectorUI::sendMessageToBackend): |
| * WebProcess/WebPage/WebInspectorUI.h: |
| * WebProcess/WebPage/WebInspectorUI.messages.in: |
| Vend an IPC connection on demand to the WebProcess side. |
| |
| 2018-11-16 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK][WPE] Add "WebKitDeviceInfoPermissionRequest.h" into webkit2.h |
| https://bugs.webkit.org/show_bug.cgi?id=191744 |
| <rdar://problem/46125461> |
| |
| Unreviewed, install the file. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| |
| 2018-11-16 Zalan Bujtas <zalan@apple.com> |
| |
| Add DidFirstMeaningfulPaint milestone. |
| https://bugs.webkit.org/show_bug.cgi?id=191754 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/API/c/WKPageLoadTypes.h: |
| * Shared/API/c/WKSharedAPICast.h: |
| (WebKit::toWKLayoutMilestones): |
| (WebKit::toLayoutMilestones): |
| * UIProcess/API/C/WKPageRenderingProgressEvents.h: |
| * UIProcess/API/C/WKPageRenderingProgressEventsInternal.h: |
| (pageRenderingProgressEvents): |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| Automatic process prewarming should be turned on if PSON is enabled via experimental features |
| https://bugs.webkit.org/show_bug.cgi?id=191761 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| m_isAutomaticProcessWarmingEnabledByClient is a std::optional and should not be initialized to |
| true / false until the client calls API to toggle the feature. When m_isAutomaticProcessWarmingEnabledByClient |
| is std::nullopt then m_processSwapsOnNavigationFromExperimentalFeatures controls automatic |
| process prewarming. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| |
| 2018-11-16 Alex Christensen <achristensen@webkit.org> |
| |
| Add API to disable safe browsing checks |
| https://bugs.webkit.org/show_bug.cgi?id=191610 |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/API/Cocoa/WKPreferences.h: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences setSafeBrowsingEnabled:]): |
| (-[WKPreferences isSafeBrowsingEnabled]): |
| (-[WKPreferences _setSafeBrowsingEnabled:]): Deleted. |
| (-[WKPreferences _safeBrowsingEnabled]): Deleted. |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| WebKit.UnavailablePlugIn API test is crashing in debug |
| https://bugs.webkit.org/show_bug.cgi?id=191753 |
| |
| Reviewed by Alex Christensen. |
| |
| Add missing early returns. Those were mistakenly dropped in r235200. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForPluginLoad): |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| [Mac] Regression: WebContent process's display name is no longer set |
| https://bugs.webkit.org/show_bug.cgi?id=191722 |
| <rdar://problem/45960550> |
| |
| Reviewed by Per Arne Vollan. |
| |
| Make sure The WebContent process calls _RegisterApplication() during initialization and |
| *before* trying to set its display name. Setting the display name fails otherwise. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::initializeProcessName): |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-11-16 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Enable process swap on cross-site navigation by default on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=191735 |
| |
| Reviewed by Chris Dumez. |
| |
| Enabled the feature. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-11-16 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION(r237467) [PSON] iOS: Going back to a page sometimes doesn't restore the full page |
| https://bugs.webkit.org/show_bug.cgi?id=191737 |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setLayerTreeStateIsFrozen): |
| |
| Layer tree should stay frozen in m_shouldResetDrawingArea state. Otherwise spurious commit transactions may |
| mess up state on UI process side. |
| |
| Specifically WKWebView._needsResetViewStateAfterCommitLoadForMainFrame would get stuck to TRUE and prevent |
| all viewport updates because WKWebView._firstPaintAfterCommitLoadTransactionID has value greater |
| than any current transaction IDs. |
| |
| 2018-11-16 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed typo fix in comment added in r238250. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-11-16 Sihui Liu <sihui_liu@apple.com> |
| |
| Storing blobs in IDB on iOS: "Error preparing blob/file" |
| https://bugs.webkit.org/show_bug.cgi?id=188438 |
| <rdar://problem/43097279> |
| |
| Reviewed by Alex Christensen. |
| |
| Grant sandbox extension of temp folder to network process, and clean up some code that managed sandbox extension |
| of IDB temporary blob files in network process. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| (WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked): |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::handleGetResult): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| (WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob): Deleted. |
| (WebKit::NetworkConnectionToWebProcess::getBlobDataFileReferenceForPath): Deleted. |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::accessToTemporaryFileComplete): |
| (WebKit::NetworkProcess::getSandboxExtensionsForBlobFiles): |
| (WebKit::NetworkProcess::prepareForAccessToTemporaryFile): Deleted. |
| (WebKit::NetworkProcess::updateTemporaryFileSandboxExtensions): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::didGetRecord): |
| (WebKit::WebIDBConnectionToServer::didGetAllRecords): |
| (WebKit::WebIDBConnectionToServer::didOpenCursor): |
| (WebKit::WebIDBConnectionToServer::didIterateCursor): |
| (WebKit::preregisterSandboxExtensionsIfNecessary): Deleted. |
| |
| 2018-11-16 Don Olmstead <don.olmstead@sony.com> |
| |
| Add USE(LIBWPE) to WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=191401 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Rename PlatformDisplayWPE to PlatformDisplayLibWPE. |
| |
| * WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp: |
| (WebKit::AcceleratedSurfaceWPE::initialize): |
| * WebProcess/wpe/WebProcessMainWPE.cpp: |
| |
| 2018-11-16 Thibault Saunier <tsaunier@igalia.com> |
| |
| [GStreamer][WebRTC] Add API to enable/disable device mocks |
| https://bugs.webkit.org/show_bug.cgi?id=191699 |
| |
| This basically us to test MediaStream/WebRTC support without |
| requiring cameras or microphones and is quite useful. |
| |
| Also fix the GStreamerAudioMock by: |
| - Stop setting `leaky-upstream` on the GStreamerCapturer queue, |
| this was usefull when we were trying to bring the MediaStream |
| sources inside the main pipeline, it is not the case anymore |
| (and not doable with latest version of LibWebRTC). |
| - Use a 'ticks' wave on the gstreamer audiotestsrc so the test |
| stream is similar to what Apple port does. |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| The mocks are already tested and the API is really simple. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsSetProperty): |
| (webKitSettingsGetProperty): |
| (webkit_settings_class_init): |
| (webkit_settings_get_enable_mock_capture_devices): |
| (webkit_settings_set_enable_mock_capture_devices): |
| * UIProcess/API/gtk/WebKitSettings.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| |
| 2018-11-16 Thibault Saunier <tsaunier@igalia.com> |
| |
| [GTK][WPE] Add "WebKitDeviceInfoPermissionRequest.h" into webkit2.h |
| https://bugs.webkit.org/show_bug.cgi?id=191744 |
| |
| It should always have been there. |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * UIProcess/API/gtk/webkit2.h: |
| |
| 2018-11-16 Antoine Quint <graouts@apple.com> |
| |
| PointerEvents should not require touch event listeners to be registered |
| https://bugs.webkit.org/show_bug.cgi?id=191333 |
| <rdar://problem/45857523> |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateTouchEventTracking): |
| (WebKit::WebPageProxy::touchEventTrackingType const): |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): |
| (WebKit::WebPageProxy::handleTouchEventAsynchronously): |
| (WebKit::WebPageProxy::handleTouchEvent): |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-11-15 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| WKPreferencesSetFontSmoothingLevel doesn't actually do anything |
| https://bugs.webkit.org/show_bug.cgi?id=191708 |
| |
| Reviewed by Simon Fraser. |
| |
| Delete the symbol because no one calls it and it doesn't do anything |
| |
| * Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb: |
| * Shared/FontSmoothingLevel.h: Removed. |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKAPICast.h: |
| (WebKit::toFontSmoothingLevel): Deleted. |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetFontSmoothingLevel): Deleted. |
| (WKPreferencesGetFontSmoothingLevel): Deleted. |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/WebPreferences.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * mac/WebKit2.order: |
| |
| 2018-11-15 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r238244. |
| |
| Caused High Sierra test runs to fail early with 50 crashes and |
| casued 25 API failures. |
| |
| Reverted changeset: |
| |
| "[css-logical] Implement flow-relative margin, padding and |
| border shorthands" |
| https://bugs.webkit.org/show_bug.cgi?id=188697 |
| https://trac.webkit.org/changeset/238244 |
| |
| 2018-11-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove unused WebInspectorProxy code |
| https://bugs.webkit.org/show_bug.cgi?id=191674 |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/WebInspectorProxy.cpp: |
| (WebKit::WebInspectorProxy::createInspectorPage): |
| (WebKit::WebInspectorProxy::closeFrontendPageAndWindow): |
| * UIProcess/WebInspectorProxy.h: |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::setInspectorWindowFrame): Deleted. |
| (WebKit::WebInspectorProxy::inspectorWindowFrame): Deleted. |
| * WebProcess/WebPage/WebInspector.h: |
| |
| 2018-11-15 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Enable process swap on cross-site navigation by default on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=191572 |
| |
| Reviewed by Chris Dumez. |
| |
| Enabled the feature by default on macOS. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-11-15 Chris Dumez <cdumez@apple.com> |
| |
| IndexedDB.IndexedDBTempFileSize API test times out with process prewarming enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191671 |
| <rdar://problem/46086062> |
| |
| Reviewed by Alex Christensen. |
| |
| Enabling process prewarming caused IndexedDB.IndexedDBTempFileSize API to time out and print |
| the following line: |
| "Attempted to create a NetworkLoad with a session (id=2) that does not exist." |
| |
| This actually identified a pre-existing bug with our handling of non-default data store. |
| Whenever a page starts using a data store, we call WebProcessPool::pageBeginUsingWebsiteDataStore() |
| which will call NetworkProcessProxy::addSession() if the network process was already started |
| to let the network process know about this non-default session. There are several issues with the |
| current model: |
| 1. If the network process was not created yet when pageBeginUsingWebsiteDataStore() is called, |
| then the network process will not know about the non-default session when it actually gets |
| started later on. This is unlikely to happen in practice, except in case of network process |
| crash because we create the network process as soon as we initialize the first WebProcessProxy. |
| 2. Even if we successfuly managed to register the session with the network process proxy, we get |
| in trouble if the network process crashes or is terminated later on as we do not re-register |
| those sessions with the new network process. |
| |
| To address these 2 issues, WebProcessPool::ensureNetworkProcess() now takes care of registering |
| all the non-default sessions (that are associated with this process pool) with the new network |
| process. The WebProcessPool knows about these sessions because it adds them to m_sessionToPagesMap |
| whenever WebProcessPool::pageBeginUsingWebsiteDataStore() is called, even if the network process |
| proxy was not created yet. |
| |
| The reason the IndexedDB.IndexedDBTempFileSize API test was failing was because it did: |
| 1. A load in a WebView V1 with a non-default session |
| 2. Process prewarming kicked in after this load and would create a new WebProcessProxy. |
| 3. Terminate the network process |
| 4. Another load in a WebView V2 with the same non-defaut session, which would reuse the |
| prewarmed process. Because the network process was terminated, constructing the new |
| page would not register the session ID with the new network process when |
| pageBeginUsingWebsiteDataStore() is called. |
| -> The load would hang because the new network process would not know about the |
| non-default session when started later on. |
| |
| The bug was previously hidden without process prewarming because step 4 would create a *new* |
| WebProcessProxy and WebProcessPool::initializeNewWebProcess() would call ensureNetworkProcess() |
| so that pageBeginUsingWebsiteDataStore() would successfuly register the session with the |
| network process later on. |
| |
| I wrote a second API test (WebKit.DoLoadWithNonDefaultDataStoreAfterTerminatingNetworkProcess) |
| to demonstrate the pre-existing bug without process prewarming enabled. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| |
| 2018-11-15 Vivek Seth <v_seth@apple.com> |
| |
| Create feature flag (HTTPS_UPGRADE) |
| https://bugs.webkit.org/show_bug.cgi?id=191613 |
| <rdar://problem/45851068> |
| |
| Reviewed by Dean Jackson. |
| |
| * config.h: |
| |
| 2018-11-15 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r238215) WKProcessPool.WarmInitialProcess API test is failing |
| https://bugs.webkit.org/show_bug.cgi?id=191693 |
| |
| Reviewed by Alex Christensen. |
| |
| Allow *explicit* process prewarming to construct the default data store if necessary or we would |
| not be obeying the client's request. Only automatic process prewarming should avoid constructing |
| the default data store unnecessarily to avoid causing memory regressions. |
| |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextWarmInitialProcess): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _warmInitialProcess]): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::prewarmProcess): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| * UIProcess/WebProcessPool.h: |
| (WebKit::WebProcessPool::sendToOneProcess): |
| |
| 2018-11-14 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, comment improvement over r238166. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/fido/CtapHidAuthenticator.h: |
| |
| 2018-11-15 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Use a real nonce for CTAPHID_INIT |
| https://bugs.webkit.org/show_bug.cgi?id=191533 |
| <rdar://problem/46103502> |
| |
| Reviewed by Brent Fulgham. |
| |
| Use a real nonce for CTAPHID_INIT request according to: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20170927/fido-client-to-authenticator-protocol-v2.0-ps-20170927.html#ctaphid_init-0x06. |
| The challenge here is the new transaction needs to start in the next runloop otherwise a dead lock will form: |
| wrong nonce -> new transaction -> new nonce -> write init request -> read init response from last run as it |
| piped in the run loop -> wrong nonce of course -> ... |
| To break the above dead lock, we have to start the new transaction in the next run. However, that isn't |
| sufficient as the arrived init response will be piped in HidConnection::m_inputReports, which is designed |
| on purpose to store any data packets within (initialized, terminated) time interval to prevent data loss in |
| the case when HidConnection::registerDataReceivedCallback is called after the first data packet's arrival. |
| In order to break the dead lock completely, HidConnection::invalidateCache will bnnne called prior to every |
| send to delete any potential init response from last run. HidConnection::invalidateCache is not necessary |
| for other protocols though. The above scenario is more or less a design flaw in CTAP HID. |
| |
| Of course, all above scenarios are covered in our mock tests. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.h: |
| (WebKit::HidConnection::invalidateCache): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: |
| (WebKit::MockHidConnection::send): |
| (WebKit::MockHidConnection::parseRequest): |
| (WebKit::MockHidConnection::feedReports): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.h: |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.cpp: |
| (WebKit::CtapHidDriver::Worker::transact): |
| (WebKit::CtapHidDriver::CtapHidDriver): |
| (WebKit::CtapHidDriver::transact): |
| (WebKit::CtapHidDriver::continueAfterChannelAllocated): |
| (WebKit::CtapHidDriver::returnResponse): |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.h: |
| |
| 2018-11-15 Oriol Brufau <obrufau@igalia.com> |
| |
| [css-logical] Implement flow-relative margin, padding and border shorthands |
| https://bugs.webkit.org/show_bug.cgi?id=188697 |
| |
| Reviewed by Simon Fraser and Antti Koivisto. |
| |
| Add a CSSLogicalEnabled runtime flag. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-11-15 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::AuthenticatorAttachment should be optional |
| https://bugs.webkit.org/show_bug.cgi?id=191522 |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManagerInternal::collectTransports): |
| |
| 2018-11-15 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [SOUP] Make Accept-Languages header look more like other browsers |
| https://bugs.webkit.org/show_bug.cgi?id=191614 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| This changes our Accept-Language header to better match other browsers, from something |
| like this: |
| |
| Accept-Language: en-us, en;q=0.90, es-es;q=0.80, es;q=0.70 |
| |
| to something like this: |
| |
| Accept-Language: en-US,en;q=0.90,es-ES;q=0.80,es;q=0.70 |
| |
| There's no particular motivation for this change. I just noticed we were different for no |
| clear reason. |
| |
| * NetworkProcess/soup/NetworkProcessSoup.cpp: |
| (WebKit::buildAcceptLanguages): |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_set_preferred_languages): |
| |
| 2018-11-15 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Shift + Tab does not focus previous field |
| https://bugs.webkit.org/show_bug.cgi?id=191596 |
| <rdar://problem/45892053> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Wire up the the tab and shift + tab key commands to the WKWebView/WKContentView's |
| action forwarding mechanism. Also rename -_prevAccessoryTab to -_previousAccessoryTab. |
| |
| * Platform/spi/ios/UIKitSPI.h: Add more SPI. |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView keyCommands]): |
| (-[WKContentView _nextAccessoryTabForWebView:]): Added. |
| (-[WKContentView _previousAccessoryTabForWebView:]): Added. |
| (-[WKContentView _nextAccessoryTab:]): Deleted. |
| (-[WKContentView _prevAccessoryTab:]): Deleted. |
| |
| 2018-11-15 Keith Rollin <krollin@apple.com> |
| |
| Delete old .xcfilelist files |
| https://bugs.webkit.org/show_bug.cgi?id=191669 |
| <rdar://problem/46081994> |
| |
| Reviewed by Chris Dumez. |
| |
| .xcfilelist files were created and added to the Xcode project files in |
| https://trac.webkit.org/changeset/238008/webkit. However, they caused |
| build issues and they were removed from the Xcode projects in |
| https://trac.webkit.org/changeset/238055/webkit. This check-in removes |
| the files from the repository altogether. They'll ultimately be |
| replaced with new files with names that indicate whether the |
| associated files are inputs to the Run Script phase or are files |
| created by the Run Script phase. |
| |
| * DerivedSources.xcfilelist: Removed. |
| * UnifiedSources.xcfilelist: Removed. |
| |
| 2018-11-15 Frederic Wang <fwang@igalia.com> |
| |
| [WebAuthN] Make AuthenticatorManager |
| https://bugs.webkit.org/show_bug.cgi?id=189279 |
| |
| Unreviewed build fix. |
| |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: Add missing header. |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: Ditto. |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: Ditto. |
| |
| 2018-11-14 Keith Rollin <krollin@apple.com> |
| |
| Move scripts for Derived and Unified Sources to external files |
| https://bugs.webkit.org/show_bug.cgi?id=191670 |
| <rdar://problem/46082278> |
| |
| Reviewed by Keith Miller. |
| |
| Move the scripts in the Generate Derived Sources and Generate Unified |
| Sources Run Script phases from the Xcode projects to external shell |
| script files. Then invoke those scripts from the Run Script phases. |
| This refactoring is being performed to support later work that will |
| invoke these scripts in other contexts. |
| |
| The scripts were maintained as-is when making the move. I did a little |
| reformatting and added 'set -e' to the top of each file, but that's |
| it. |
| |
| * Scripts/generate-derived-sources.sh: Added. |
| * Scripts/generate-unified-sources.sh: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-14 Chris Dumez <cdumez@apple.com> |
| |
| WebKit.DecidePolicyForNavigationActionForHyperlinkThatRedirects API fails when PSON is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191640 |
| |
| Reviewed by Alex Christensen. |
| |
| The issue was that when process-swapping on a redirect, the parameters provided by the new |
| WebContent process for navigationActionData / originatingFrameInfoData / frameSecurityOrigin |
| are not correct because it does not have sufficient information (it does not know a swap |
| happened). |
| |
| To address the issue, we now store the navigationActionData / originatingFrameInfoData / |
| frameSecurityOrigin on the Navigation object whenever decidePolicyForNavigationAction is |
| called. If the decidePolicyForNavigationAction is for a redirect, use the ones we stored |
| on the Navigation object instead of the ones provided by the WebContent process. In case |
| of redirect, those do not change anyway. |
| |
| This fixes all WebKit.DecidePolicyForNavigationAction* tests with PSON enabled. |
| |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::currentRequestIsRedirect const): |
| (API::Navigation::wasUserInitiated const): |
| (API::Navigation::shouldForceDownload const): |
| (API::Navigation::treatAsSameOriginNavigation const): |
| (API::Navigation::hasOpenedFrames const): |
| (API::Navigation::openedViaWindowOpenWithOpener const): |
| (API::Navigation::opener const): |
| (API::Navigation::requesterOrigin const): |
| (API::Navigation::lockHistory const): |
| (API::Navigation::lockBackForwardList const): |
| (API::Navigation::clientRedirectSourceForHistory const): |
| (API::Navigation::setLastNavigationAction): |
| (API::Navigation::lastNavigationAction const): |
| (API::Navigation::setOriginatingFrameInfo): |
| (API::Navigation::originatingFrameInfo const): |
| (API::Navigation::setDestinationFrameSecurityOrigin): |
| (API::Navigation::destinationFrameSecurityOrigin const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-11-14 Chris Dumez <cdumez@apple.com> |
| |
| WebKit.WebsiteDataStoreCustomPaths API test is failing when enabling process prewarming |
| https://bugs.webkit.org/show_bug.cgi?id=191638 |
| |
| Reviewed by Alex Christensen. |
| |
| WebProcessPool::prewarmProcess() should not create the default WebSite Data Store if it |
| does not exist yet. This is bad for memory consumption and it is what was causing this |
| API test to fail. |
| |
| WebProcessPool::prewarmProcess() now tries to use the following data stores in this |
| order of preference: |
| 1. WebProcessPool::m_websiteDataStore (aka this process pool's primary data store) |
| 2. The data store of the last WebProcessProxy that was created |
| 3. The default data store if it exists |
| |
| If no suitable data store is found, we cancel the process prewarming and log a console |
| message instead. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::prewarmProcess): |
| |
| 2018-11-14 Timothy Hatcher <timothy@apple.com> |
| |
| Enabled dark mode CSS support by default. |
| https://bugs.webkit.org/show_bug.cgi?id=191609 |
| rdar://problem/46046861 |
| |
| Reviewed by Megan Gardner. |
| |
| * Shared/WebPreferences.yaml: Set DarkModeCSSEnabled's defaultValue to true. |
| |
| 2018-11-14 Timothy Hatcher <timothy@apple.com> |
| |
| Default the view background color and text color to different values when in dark mode. |
| https://bugs.webkit.org/show_bug.cgi?id=191607 |
| rdar://problem/46045854 |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::backgroundColor const): Use controlBackgroundColor. |
| (WebKit::WebViewImpl::updateLayer): Simplified and use backgroundColor() getter. |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Drop backgroundColor. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setDrawsBackground): Drop backgroundColor. |
| |
| 2018-11-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Pass Inspector::FrontendChannel as a reference connect/disconnect methods |
| https://bugs.webkit.org/show_bug.cgi?id=191612 |
| |
| Reviewed by Matt Baker. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::connect): |
| (WebKit::WebAutomationSession::disconnect): |
| (WebKit::WebAutomationSession::terminate): |
| * UIProcess/Automation/WebAutomationSession.h: |
| * UIProcess/WebPageDebuggable.cpp: |
| (WebKit::WebPageDebuggable::connect): |
| (WebKit::WebPageDebuggable::disconnect): |
| * UIProcess/WebPageDebuggable.h: |
| * UIProcess/WebPageInspectorController.cpp: |
| (WebKit::WebPageInspectorController::connectFrontend): |
| (WebKit::WebPageInspectorController::disconnectFrontend): |
| * UIProcess/WebPageInspectorController.h: |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::close): |
| * WebProcess/WebPage/WebPageInspectorTarget.cpp: |
| (WebKit::WebPageInspectorTarget::connect): |
| (WebKit::WebPageInspectorTarget::disconnect): |
| |
| 2018-11-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed attempted wincairo build fix after 238192. |
| |
| * WebProcess/WebPage/WebPageInspectorTargetController.h: |
| * WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.cpp: |
| |
| 2018-11-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Follow-up: Keep Disabling Process Swap for Local Web Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=191494 |
| <rdar://problem/45469854> |
| |
| Reviewed by Devin Rousso. |
| |
| Continue to have the Local Inspector disable PSON while open |
| until support is added. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::resetState): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::hasLocalInspectorFrontend const): |
| (WebKit::WebPageProxy::setHasLocalInspectorFrontend): |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * WebProcess/WebPage/WebInspector.cpp: |
| (WebKit::WebInspector::openFrontendConnection): |
| (WebKit::WebInspector::closeFrontendConnection): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::setHasLocalInspectorFrontend): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-11-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Remote Inspector) |
| https://bugs.webkit.org/show_bug.cgi?id=191494 |
| <rdar://problem/45469854> |
| |
| Reviewed by Devin Rousso. |
| |
| To support process swapping a slim Web Inspector backend lives in the UIProcess. |
| The Web Inspector frontend connects to it and is told about sub-targets, namely |
| pages, that it can further connect to. When performing a process swap the backend |
| tells the frontend to destroy existing targets and create new targets. |
| |
| In the UIProcess the WebPageProxy has a WebPageInspectorController, with a single |
| TargetAgent holding InspectorTargetProxies to targets it knows about. Inspector |
| protocol messages go through this inspector controller and are routed to the |
| WebPage and its WebCore::Page's InspectorController. The WebPageProxy decides |
| when to close and expose new page targets during process swap, or basically |
| any time it reconnects to a WebProcess. So this patch also makes Web Inspector |
| stay alive and reconnect to a page when the inspected page crashes! |
| |
| In the WebContentProcess the WebPage has a WebPageInspectorTarget. It also |
| has a WebPageInspectorTargetController in anticipation of further sub-targets |
| within the page (workers, frames) but none exist at the moment. The WebPage |
| relies on the WebPageProxy to know when to expose this target as a debuggable. |
| |
| * Sources.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| New files. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| Remote inspector state can now stay in the UIProcess and does not need to |
| be passed down to the WebContentProcess. |
| |
| * UIProcess/WebPageDebuggable.cpp: Copied from Source/WebCore/page/PageDebuggable.cpp. |
| (WebKit::WebPageDebuggable::WebPageDebuggable): |
| (WebKit::WebPageDebuggable::name const): |
| (WebKit::WebPageDebuggable::url const): |
| (WebKit::WebPageDebuggable::hasLocalDebugger const): |
| (WebKit::WebPageDebuggable::connect): |
| (WebKit::WebPageDebuggable::disconnect): |
| (WebKit::WebPageDebuggable::dispatchMessageFromRemote): |
| (WebKit::WebPageDebuggable::setIndicating): |
| (WebKit::WebPageDebuggable::setNameOverride): |
| * UIProcess/WebPageDebuggable.h: Copied from Source/WebCore/page/PageDebuggable.h. |
| Remote debuggable entry point into the UIProcess for a page. |
| This is pretty much identical to the PageDebuggable in WebCore. |
| |
| * Scripts/webkit/messages.py: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::createInspectorTarget): |
| (WebKit::WebPageProxy::destroyInspectorTarget): |
| (WebKit::WebPageProxy::sendMessageToInspectorFrontend): |
| (WebKit::WebPageProxy::setIndicating): |
| (WebKit::WebPageProxy::allowsRemoteInspection const): |
| (WebKit::WebPageProxy::setAllowsRemoteInspection): |
| (WebKit::WebPageProxy::remoteInspectionNameOverride const): |
| (WebKit::WebPageProxy::setRemoteInspectionNameOverride): |
| (WebKit::WebPageProxy::remoteInspectorInformationDidChange): |
| (WebKit::WebPageProxy::clearInspectorTargets): |
| (WebKit::WebPageProxy::createInspectorTargets): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didReceiveTitleForFrame): |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::inspectorController): |
| (WebKit::WebPageProxy::allowsRemoteInspection const): Deleted. |
| (WebKit::WebPageProxy::remoteInspectionNameOverride const): Deleted. |
| Own more inspector state in the UIProcess including a debuggable and inspector controller. |
| |
| * UIProcess/WebPageInspectorController.h: Added. |
| * UIProcess/WebPageInspectorController.cpp: Added. |
| (WebKit::WebPageInspectorController::WebPageInspectorController): |
| (WebKit::WebPageInspectorController::pageClosed): |
| (WebKit::WebPageInspectorController::hasLocalFrontend const): |
| (WebKit::WebPageInspectorController::hasRemoteFrontend const): |
| (WebKit::WebPageInspectorController::connectFrontend): |
| (WebKit::WebPageInspectorController::disconnectFrontend): |
| (WebKit::WebPageInspectorController::disconnectAllFrontends): |
| (WebKit::WebPageInspectorController::dispatchMessageFromFrontend): |
| (WebKit::WebPageInspectorController::setIndicating): |
| (WebKit::WebPageInspectorController::clearTargets): |
| (WebKit::WebPageInspectorController::createInspectorTarget): |
| (WebKit::WebPageInspectorController::destroyInspectorTarget): |
| (WebKit::WebPageInspectorController::sendMessageToInspectorFrontend): |
| InspectorController with a single TargetAgent in the UIProcess. |
| |
| * UIProcess/WebPageInspectorTargetAgent.h: |
| * UIProcess/WebPageInspectorTargetAgent.cpp: |
| (WebKit::WebPageInspectorTargetAgent::WebPageInspectorTargetAgent): |
| (WebKit::WebPageInspectorTargetAgent::frontendChannel): |
| Target agent implementation. |
| |
| * UIProcess/InspectorTargetProxy.cpp: |
| (WebKit::InspectorTargetProxy::create): |
| (WebKit::InspectorTargetProxy::InspectorTargetProxy): |
| (WebKit::InspectorTargetProxy::connect): |
| (WebKit::InspectorTargetProxy::disconnect): |
| (WebKit::InspectorTargetProxy::sendMessageToTargetBackend): |
| * UIProcess/InspectorTargetProxy.h: |
| UIProcess proxy for an InspectorTarget in the WebContentProcess. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_shouldAttachDrawingAreaOnPageTransition): |
| (WebKit::WebPage::connectInspector): |
| (WebKit::WebPage::disconnectInspector): |
| (WebKit::WebPage::sendMessageToTargetBackend): |
| (WebKit::WebPage::setIndicating): |
| (WebKit::WebPage::setAllowsRemoteInspection): Deleted. |
| (WebKit::WebPage::setRemoteInspectionNameOverride): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| * WebProcess/WebPage/WebPageInspectorTarget.h: |
| * WebProcess/WebPage/WebPageInspectorTarget.cpp: |
| (WebKit::WebPageInspectorTarget::WebPageInspectorTarget): |
| (WebKit::WebPageInspectorTarget::identifier const): |
| (WebKit::WebPageInspectorTarget::connect): |
| (WebKit::WebPageInspectorTarget::disconnect): |
| (WebKit::WebPageInspectorTarget::sendMessageToTargetBackend): |
| InspectorTarget for this WebPage. |
| |
| * WebProcess/WebPage/WebPageInspectorTargetController.cpp: Added. |
| (WebKit::WebPageInspectorTargetController::WebPageInspectorTargetController): |
| (WebKit::WebPageInspectorTargetController::~WebPageInspectorTargetController): |
| (WebKit::WebPageInspectorTargetController::addTarget): |
| (WebKit::WebPageInspectorTargetController::removeTarget): |
| (WebKit::WebPageInspectorTargetController::connectInspector): |
| (WebKit::WebPageInspectorTargetController::disconnectInspector): |
| (WebKit::WebPageInspectorTargetController::sendMessageToTargetBackend): |
| (WebKit::WebPageInspectorTargetController::sendMessageToTargetFrontend): |
| * WebProcess/WebPage/WebPageInspectorTargetController.h: |
| * WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.h: |
| * WebProcess/WebPage/WebPageInspectorTargetFrontendChannel.cpp: |
| (WebKit::WebPageInspectorTargetFrontendChannel::create): |
| (WebKit::WebPageInspectorTargetFrontendChannel::WebPageInspectorTargetFrontendChannel): |
| (WebKit::WebPageInspectorTargetFrontendChannel::sendMessageToFrontend): |
| Preparation for more target managment in the WebContentProcess. |
| |
| 2018-11-14 Alex Christensen <achristensen@webkit.org> |
| |
| Add SPI to show a safe browsing warning |
| https://bugs.webkit.org/show_bug.cgi?id=191604 |
| |
| Reviewed by Andy Estes. |
| |
| Safari has a case where it shows safe browsing warnings for a reason other than being told to by the SafeBrowsing framework. |
| Because safe browsing is moving to WebKit, we will have Safari call this WebKit SPI in that case. |
| The warning looks a little different, so I had to change the structure of a SafeBrowsingResult and the location of the string processing, |
| but the existing behavior is the same as verified by existing unit tests. I added a unit test to verify behavior of the new SPI. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]): |
| (-[WKWebView _showSafeBrowsingWarning:completionHandler:]): |
| (+[WKWebView _confirmMalwareSentinel]): |
| (+[WKWebView _visitUnsafeWebsiteSentinel]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: Removed. |
| * UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm: Copied from Source/WebKit/UIProcess/Cocoa/SafeBrowsingResultCocoa.mm. |
| (WebKit::malwareDetailsBase): |
| (WebKit::learnMoreURL): |
| (WebKit::reportAnErrorBase): |
| (WebKit::localizedProvider): |
| (WebKit::SafeBrowsingWarning::visitUnsafeWebsiteSentinel): |
| (WebKit::SafeBrowsingWarning::confirmMalwareSentinel): |
| (WebKit::replace): |
| (WebKit::addLinkAndReplace): |
| (WebKit::reportAnErrorURL): |
| (WebKit::malwareDetailsURL): |
| (WebKit::safeBrowsingTitleText): |
| (WebKit::safeBrowsingWarningText): |
| (WebKit::safeBrowsingDetailsText): |
| (WebKit::SafeBrowsingWarning::SafeBrowsingWarning): |
| (WebKit::learnMore): Deleted. |
| (WebKit::SafeBrowsingResult::SafeBrowsingResult): Deleted. |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.h: |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (-[WKSafeBrowsingWarning initWithFrame:safeBrowsingWarning:completionHandler:]): |
| (-[WKSafeBrowsingWarning addContent]): |
| (-[WKSafeBrowsingWarning showDetailsClicked]): |
| (-[WKSafeBrowsingWarning clickedOnLink:]): |
| (-[WKSafeBrowsingTextView initWithAttributedString:forWarning:]): |
| (confirmMalwareSentinel): Deleted. |
| (visitUnsafeWebsiteSentinel): Deleted. |
| (replace): Deleted. |
| (addLinkAndReplace): Deleted. |
| (reportAnErrorURL): Deleted. |
| (malwareDetailsURL): Deleted. |
| (titleText): Deleted. |
| (warningText): Deleted. |
| (detailsText): Deleted. |
| (-[WKSafeBrowsingWarning initWithFrame:safeBrowsingResult:completionHandler:]): Deleted. |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::showSafeBrowsingWarning): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::showSafeBrowsingWarning): |
| * UIProcess/SafeBrowsingResult.h: Removed. |
| * UIProcess/SafeBrowsingWarning.h: Copied from Source/WebKit/UIProcess/SafeBrowsingResult.h. |
| (WebKit::SafeBrowsingWarning::create): |
| (WebKit::SafeBrowsingWarning::title const): |
| (WebKit::SafeBrowsingWarning::warning const): |
| (WebKit::SafeBrowsingWarning::details const): |
| (WebKit::SafeBrowsingResult::create): Deleted. |
| (WebKit::SafeBrowsingResult::isPhishing const): Deleted. |
| (WebKit::SafeBrowsingResult::isMalware const): Deleted. |
| (WebKit::SafeBrowsingResult::isUnwantedSoftware const): Deleted. |
| (WebKit::SafeBrowsingResult::url const): Deleted. |
| (WebKit::SafeBrowsingResult::provider const): Deleted. |
| (WebKit::SafeBrowsingResult::localizedProviderName const): Deleted. |
| (WebKit::SafeBrowsingResult::malwareDetailsURLBase const): Deleted. |
| (WebKit::SafeBrowsingResult::reportAnErrorURLBase const): Deleted. |
| (WebKit::SafeBrowsingResult::learnMoreURL const): Deleted. |
| (WebKit::SafeBrowsingResult::needsSafeBrowsingWarning const): Deleted. |
| (): Deleted. |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): |
| (WebKit::WebFramePolicyListenerProxy::use): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::WebFrameProxy): |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| (WebKit::WebFrameProxy::didHandleContentFilterUnblockNavigation): |
| * UIProcess/WebFrameProxy.h: |
| (WebKit::WebFrameProxy::create): |
| (WebKit::WebFrameProxy::page const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::showSafeBrowsingWarning): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::showSafeBrowsingWarning): |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] A few drag and drop tests are crashing after r238146 |
| https://bugs.webkit.org/show_bug.cgi?id=191617 |
| |
| Reviewed by Dean Jackson. |
| |
| The notion of temporarily suppressing the selection assistant was introduced during iOS drag and drop |
| development as a way of allowing both the selection view and dropped content snapshot to fade in simultaneously |
| during a drop in an editable element. r238146 piggy-backs on this mechanism by changing selection suppression |
| state when an element is focused, when the selection changes, and when an element is blurred, depending on |
| whether the currently focused element is transparent. |
| |
| However, in the case where the selection assistant is suppressed due to a running drop animation, if focus moves |
| to an element that is not fully transparent, we end up prematurely unsuppressing the text selection assistant. |
| This subsequently causes selection UI to immediately show up after a drop instead of animating in alongside a |
| snapshot of the inserted document fragment, if the drop moved focus to an editable element. |
| |
| A number of drag and drop tests on iOS exercised this codepath by dragging content into editable fields and/or |
| moving content between editable elements in a web view. These tests began to crash due to selection views and |
| the accompanying callout bar appearing earlier than usual, which triggers an unrelated UIKit assertion in |
| <https://webkit.org/b/190401>. |
| |
| This patch fixes the failing tests by refactoring our selection assistant suppression code. Instead of |
| maintaining a single `BOOL` flag indicating whether the selection is suppressed, we use an `OptionSet` of |
| `SuppressSelectionAssistantReason`s, which (at the moment) only include (1) a running drop animation, and (2) |
| focusing a transparent element. The text selection assistant is considered suppressed when either of the reasons |
| apply. This allows us to correctly handle a drop animation that occurs simultaneously as an element is focused |
| without unsuppressing the selection assistant early, and also allows us to handle selection assistant |
| suppression in more nuanced ways, depending on the suppression reason. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _displayFormNodeInputView]): |
| |
| Only prevent zooming to the focused element during drop if we're suppressing the selection assistant due to |
| focusing a transparent element. In the case of a drop, we still want to allow scrolling and zooming. |
| |
| (-[WKContentView canShowNonEmptySelectionView]): |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView _updateChangedSelection:]): |
| (-[WKContentView _shouldSuppressSelectionCommands]): |
| (-[WKContentView _beginSuppressingSelectionAssistantForReason:]): |
| (-[WKContentView _stopSuppressingSelectionAssistantForReason:]): |
| |
| Add helper methods for adding or removing selection assistant suppression reasons. When the last selection |
| assistant suppression reason is removed, we activate the selection assistant, and conversely, when the first |
| suppression reason is added, we deactivate the selection assistant. |
| |
| (-[WKContentView _didConcludeEditDataInteraction:]): |
| (-[WKContentView _didPerformDragOperation:]): |
| (-[WKContentView dropInteraction:performDrop:]): |
| (-[WKContentView suppressAssistantSelectionView]): Deleted. |
| (-[WKContentView setSuppressAssistantSelectionView:]): Deleted. |
| |
| 2018-11-14 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] [WebKit2] Hook up some more editing actions (-_pasteAndMatchStyle:, -makeTextWritingDirectionNatural:) |
| https://bugs.webkit.org/show_bug.cgi?id=191605 |
| <rdar://problem/45813991> |
| |
| Reviewed by Dean Jackson. |
| |
| Hook up a couple of editing actions on iOS and macOS. The `-pasteAndMatchStyle:` selector is privately declared |
| in UIKit, but does not exist on macOS; as such, add `-_pasteAndMatchStyle:` as SPI on WKWebView, and |
| additionally implement the unprefixed version, `-pasteAndMatchStyle:`, on iOS. |
| |
| Since `-makeTextWritingDirectionNatural:` is already declared on both iOS and macOS (SPI on UIResponder and API |
| on macOS, respectively) we simply implement the unprefixed variant on both platforms. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView makeTextWritingDirectionNaturalForWebView:]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| |
| 2018-11-14 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION (WEBPROCESS_WINDOWSERVER_BLOCKING): requestAnimationFrame Stops Completing |
| https://bugs.webkit.org/show_bug.cgi?id=190884 |
| |
| Reviewed by Dean Jackson. |
| |
| Since the Web page currently owns the display link on the UI process side, the display link will be |
| deleted in the UI process when a Web page is closed. This is incorrect, since a display link can be |
| reused between Web pages in the WebContent process. This patch moves the ownership of the UI process |
| display links to the Web process object to address this issue. Also, the display ID of the display |
| being updated is included in the message to the WebContent process. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * UIProcess/mac/DisplayLink.cpp: |
| (WebKit::DisplayLink::DisplayLink): |
| (WebKit::DisplayLink::displayLinkCallback): |
| * UIProcess/mac/DisplayLink.h: |
| (WebKit::DisplayLink::displayID const): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::startDisplayLink): Deleted. |
| (WebKit::WebPageProxy::stopDisplayLink): Deleted. |
| * UIProcess/mac/WebProcessProxyMac.mm: |
| (WebKit::WebProcessProxy::startDisplayLink): |
| (WebKit::WebProcessProxy::stopDisplayLink): |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/mac/DrawingAreaMac.cpp: |
| (WebKit::DisplayRefreshMonitorMac::create): |
| (WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac): |
| (WebKit::DisplayRefreshMonitorMac::requestRefreshCallback): |
| (WebKit::DrawingArea::createDisplayRefreshMonitor): |
| (WebKit::DrawingArea::displayWasRefreshed): Deleted. |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::displayWasRefreshed): |
| |
| 2018-11-14 Chris Dumez <cdumez@apple.com> |
| |
| Client should be able to disable PSON even if the experimental feature is on by default |
| https://bugs.webkit.org/show_bug.cgi?id=191634 |
| |
| Reviewed by Dean Jackson. |
| |
| Instead of overriding the APIProcessPoolConfiguration's m_processSwapsOnNavigation flag to true |
| when the experimental is enabled, use a separate flag to store this information. If the client |
| explicitly sets the APIProcessPoolConfiguration's m_processSwapsOnNavigation flag then we obey |
| the client's request, otherwise, we fall back to using the state from experimental features. |
| |
| This allows: |
| - API tests to explicitely disable PSON / Process prewarming even if those are on by default |
| in experimental features. |
| - If the client does not set those flags on the APIProcessPoolConfiguration (Safari for e.g.), |
| then the experimental feature flag still fully controls the feature. |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::createWebPage): |
| |
| 2018-11-14 Chris Dumez <cdumez@apple.com> |
| |
| WebKit.ApplicationManifestBasic API test is failing when enabling PSON |
| https://bugs.webkit.org/show_bug.cgi?id=191602 |
| |
| Reviewed by Alex Christensen. |
| |
| Add support for process swapping for a [WKWebView loadHTML:] load by storing |
| the necessary data on the API::Navigation and doing a loadData() instead of |
| a loadRequest() after process swapping when this data is present on the |
| navigation. |
| |
| * UIProcess/API/APINavigation.cpp: |
| (API::Navigation::Navigation): |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::create): |
| (API::Navigation::substituteData const): |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::createLoadDataNavigation): |
| * UIProcess/WebNavigationState.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadData): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| |
| 2018-11-14 Antti Koivisto <antti@apple.com> |
| |
| Align Mac WK2 layer flush throttling with iOS |
| https://bugs.webkit.org/show_bug.cgi?id=191632 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Currently Mac WK2 uses WebCore side throttling implementation in RenderLayerCompositor. This code has |
| throttling timer per-frame while the actual decision making and layer flushes itself are per page. These |
| timers generate way more flushes than expected in presence of multiple frames. There are also bugs in how |
| flushing state is updated when frames are created dynamically. |
| |
| On iOS WK2 throttling is implemented on WebKit side and controlled by a per-page timer. Recent fixes also |
| make this implementation visually fast. We should align the Mac implementation and eventually unify them. |
| |
| This patch implements throttling in TiledCoreAnimationDrawingArea mirroring the iOS RemoteLayerTreeDrawingArea |
| implementation. There are some adjustments for platform differences (local vs remote layers) and we continue |
| using runloop observer for the actual flushes. Timings are as in the existing Mac code. |
| |
| The patch appears to be a significant performance progression. |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| (WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen): |
| |
| Schedule an immediate flush when layers are unfrozen. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlush): |
| (WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlushImmediately): |
| |
| Track pending flushes with m_hasPendingFlush bit. |
| Delay flush if the flush throttling timer is active. Start it if we throttling but it is not active yet. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::flushLayers): |
| |
| Clear m_hasPendingFlush if the flush succeeded. |
| Restart the throttling timer if we are still throttling. |
| Manage runloop observer invalidation here instead of the caller (and stop returning value). |
| |
| (WebKit::TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback): |
| (WebKit::TiledCoreAnimationDrawingArea::adjustLayerFlushThrottling): |
| |
| Returning 'true' here disables WebCore side throttling code. |
| |
| Start or stop the throttling timer on state changes. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::layerFlushThrottlingIsActive const): |
| |
| This is used to control style and layout timers on WebCore side. Return false on frozen |
| state since unfreezing depends on style and layout. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::startLayerFlushThrottlingTimer): |
| (WebKit::TiledCoreAnimationDrawingArea::layerFlushThrottlingTimerFired): |
| |
| 2018-11-14 Chris Dumez <cdumez@apple.com> |
| |
| WebKit.WKHTTPCookieStoreWithoutProcessPool API test is failing with process prewarming is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191624 |
| |
| Reviewed by Alex Christensen. |
| |
| Stop setting the WebProcessPool's primary data store (m_websiteDataStore) to the default one in |
| WebProcessPool::prewarmProcess(). We did not really need to, we can pass the default data store |
| to the new WebPageProxy without having to set m_websiteDataStore. m_websiteDataStore only gets |
| set upon constructor if thr default data store already exists or later on when creating a WebPage |
| that uses the default data store. |
| |
| In the case of the API test, the following was happening: |
| 1. Create an ephemeral data store EDS |
| 2. Create a WebView V1 using datastore EDS |
| 3. Do a load in V1 |
| 4. Process prewarming would kick in and wrongly associated V1's process pool PP1 with the default data store |
| 5. Create/Get the default datastore and set a few cookies on it |
| 6. Create a WebView V2 using default datastore and a fresh new process pool PP2 |
| 7. Do a load in V2 and expect the cookies to be there |
| |
| In HTTPCookieStore::setCookie() that is called at step 5, we call: |
| m_owningDataStore->processPoolForCookieStorageOperations() |
| |
| In this case, m_owningDataStore is the default datastore and this call would previously return null because |
| there is no WebProcessPool yet associated with the default datastore. However, with the process prewarming |
| bug at step 4, the process pool PP1 would be returned since it was wrongly associated with the default |
| data store. As a result, we would call setCookie() on PP1's WebCookieManagerProxy and this would fail |
| because PP1's network process knows nothing about this session ID (it was only ever used with an ephemeral |
| session). |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::prewarmProcess): |
| |
| 2018-11-13 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Support CTAP HID authenticators on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=188623 |
| <rdar://problem/43353777> |
| |
| Reviewed by Brent Fulgham and Chris Dumez. |
| |
| This patch introduces a primitive support of CTAP HID authenticators for WebAuthN in macOS. |
| It involves low level HID device management&communication, high level CTAP HID authenticator |
| management&communication, and mock testing. The above three aspects will be covered in details: |
| 1) Low level HID device management&communication: HidService&HidConnection |
| It relies on IOHIDManager to discover appropriate hid devices by passing a matching dictionary: |
| { PrimaryUsagePage: 0xf1d0, PrimaryUsage: 0x01}. For communication, it utilizes HID reports. |
| To send a report, it calls IOHIDDeviceSetReport since the async version is not implemented. |
| To recieve a report, it calls IOHIDDeviceRegisterInputReportCallback to asynchronously wait |
| for incoming reports. |
| Here is the corresponding reference: |
| https://developer.apple.com/library/archive/documentation/DeviceDrivers/Conceptual/HID/new_api_10_5/tn2187.html#//apple_ref/doc/uid/TP40000970-CH214-SW2 |
| 2) High level CTAP HID authenticator management&communication: HidService&CtapHidDriver |
| Whenever an appropriate hid device is discovered by IOHIDManager, an AuthenticatorGetInfo command |
| is sent to the device to determine properties of the authenticator, says, which version of protocol |
| it supports, i.e. CTAP or U2F. So far, we only support CTAP authenticators. Once the authenticator |
| is determined to support CTAP, we then instantiate CtapHidAuthenticator which will then take care |
| of even higher level WebAuthN requests&responses. |
| Binaries are constructed and packaged according to the CTAP HID porotocol. CtapHidDriver takes care |
| of concurrency and channels, i.e. allocating channel and establishing the actual request/response |
| transaction. At the meantime, CtapHidDriver::Worker is then responsible for each single transaction. |
| Here is the corresponding reference: |
| https://fidoalliance.org/specs/fido-v2.0-ps-20170927/fido-client-to-authenticator-protocol-v2.0-ps-20170927.html#usb. |
| 3) Mock Testing: MockHidService & MockHidConnection |
| A CTAP hid authenticator is simulated within MockHidConnection with options of specifying specific |
| error scenarios and of course could take care of successful cases. Four stages are presented in the |
| simulated authenticator to reflect: a) allocating channel for AuthenticatorGetInfo, b) sending |
| AuthenticatorGetInfo, c) allocating channel for actual request, and d) sending the actual request. |
| |
| Besides implementing the above, it also does a few other things: |
| 1) Make AuthenticatorManager::clearState asynchronous to avoid cyclic dependency: |
| Authenticator::returnResponse => AuthenticatorManager::respondReceived => AuthenticatorManager::clearState |
| => Authenticator::~Authenticator. |
| 2) Reorganize unified build sources to make it clear that which files are .mm and which are .cpp. |
| 3) Import LocalAuthentication.framework in LocalAuthenticationSoftLink instead of being scattered. |
| |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManagerInternal::collectTransports): |
| (WebKit::AuthenticatorManager::clearStateAsync): |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::initTimeOutTimer): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: |
| (WebKit::AuthenticatorTransportService::create): |
| (WebKit::AuthenticatorTransportService::createMock): |
| (WebKit::AuthenticatorTransportService::startDiscovery): |
| (WebKit::AuthenticatorTransportService::startDiscovery const): Deleted. |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.h: |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.h: Copied from Source/WebKit/UIProcess/WebAuthentication/AuthenticatorTransportService.h. |
| * UIProcess/WebAuthentication/Cocoa/HidConnection.mm: Added. |
| (WebKit::reportReceived): |
| (WebKit::HidConnection::HidConnection): |
| (WebKit::HidConnection::~HidConnection): |
| (WebKit::HidConnection::initialize): |
| (WebKit::HidConnection::terminate): |
| (WebKit::HidConnection::send): |
| (WebKit::HidConnection::registerDataReceivedCallback): |
| (WebKit::HidConnection::unregisterDataReceivedCallback): |
| (WebKit::HidConnection::receiveReport): |
| (WebKit::HidConnection::consumeReports): |
| (WebKit::HidConnection::registerDataReceivedCallbackInternal): |
| * UIProcess/WebAuthentication/Cocoa/HidService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalService.h. |
| * UIProcess/WebAuthentication/Cocoa/HidService.mm: Added. |
| (WebKit::deviceAddedCallback): |
| (WebKit::deviceRemovedCallback): |
| (WebKit::HidService::HidService): |
| (WebKit::HidService::~HidService): |
| (WebKit::HidService::startDiscoveryInternal): |
| (WebKit::HidService::platformStartDiscovery): |
| (WebKit::HidService::createHidConnection const): |
| (WebKit::HidService::deviceAdded): |
| (WebKit::HidService::continueAddDeviceAfterGetInfo): |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticationSoftLink.h: |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: |
| * UIProcess/WebAuthentication/Cocoa/LocalService.h: |
| * UIProcess/WebAuthentication/Cocoa/LocalService.mm: |
| (WebKit::LocalService::startDiscoveryInternal): |
| (WebKit::LocalService::startDiscoveryInternal const): Deleted. |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::respondReceivedInternal): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.cpp: Added. |
| (WebKit::MockHidConnection::MockHidConnection): |
| (WebKit::MockHidConnection::initialize): |
| (WebKit::MockHidConnection::terminate): |
| (WebKit::MockHidConnection::send): |
| (WebKit::MockHidConnection::registerDataReceivedCallbackInternal): |
| (WebKit::MockHidConnection::assembleRequest): |
| (WebKit::MockHidConnection::parseRequest): |
| (WebKit::MockHidConnection::feedReports): |
| (WebKit::MockHidConnection::stagesMatch const): |
| (WebKit::MockHidConnection::shouldContinueFeedReports): |
| (WebKit::MockHidConnection::continueFeedReports): |
| * UIProcess/WebAuthentication/Mock/MockHidConnection.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalConnection.h. |
| * UIProcess/WebAuthentication/Mock/MockHidService.cpp: Copied from Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalService.cpp. |
| (WebKit::MockHidService::MockHidService): |
| (WebKit::MockHidService::platformStartDiscovery): |
| (WebKit::MockHidService::createHidConnection const): |
| * UIProcess/WebAuthentication/Mock/MockHidService.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalConnection.h. |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.h: |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: |
| * UIProcess/WebAuthentication/Mock/MockLocalService.mm: Renamed from Source/WebKit/UIProcess/WebAuthentication/Mock/MockLocalService.cpp. |
| (WebKit::MockLocalService::MockLocalService): |
| (WebKit::MockLocalService::platformStartDiscovery const): |
| (WebKit::MockLocalService::createLocalConnection const): |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: |
| * UIProcess/WebAuthentication/fido/CtapHidAuthenticator.cpp: Added. |
| (WebKit::CtapHidAuthenticator::CtapHidAuthenticator): |
| (WebKit::CtapHidAuthenticator::makeCredential): |
| (WebKit::CtapHidAuthenticator::continueMakeCredentialAfterResponseReceived const): |
| (WebKit::CtapHidAuthenticator::getAssertion): |
| (WebKit::CtapHidAuthenticator::continueGetAssertionAfterResponseReceived const): |
| * UIProcess/WebAuthentication/fido/CtapHidAuthenticator.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalService.h. |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.cpp: Added. |
| (WebKit::CtapHidDriver::Worker::Worker): |
| (WebKit::CtapHidDriver::Worker::~Worker): |
| (WebKit::CtapHidDriver::Worker::transact): |
| (WebKit::CtapHidDriver::Worker::write): |
| (WebKit::CtapHidDriver::Worker::read): |
| (WebKit::CtapHidDriver::Worker::returnMessage): |
| (WebKit::CtapHidDriver::CtapHidDriver): |
| (WebKit::CtapHidDriver::transact): |
| (WebKit::CtapHidDriver::continueAfterChannelAllocated): |
| (WebKit::CtapHidDriver::continueAfterResponseReceived): |
| (WebKit::CtapHidDriver::returnResponse): |
| * UIProcess/WebAuthentication/fido/CtapHidDriver.h: Added. |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-13 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed correction to previous build fix to avoid any internal/downstream repercussions. |
| |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| |
| 2018-11-13 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Unreviewed GTK/WPE build fix for r238159. |
| |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| |
| 2018-11-13 Timothy Hatcher <timothy@apple.com> |
| |
| Use a light scrollbar for transparent web views in dark mode. |
| https://bugs.webkit.org/show_bug.cgi?id=191559 |
| rdar://problem/46000489 |
| |
| Reviewed by Dean Jackson. |
| |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): Use FrameView's useDarkAppaearance(). |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::drawRect): Ditto. |
| |
| 2018-11-13 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Do not show selection UI for editable elements with opacity near zero |
| https://bugs.webkit.org/show_bug.cgi?id=191442 |
| <rdar://problem/45958625> |
| |
| Reviewed by Simon Fraser. |
| |
| Add support for suppressing native selection UI (for instance, selection highlight views, selection handles, and |
| selection-related gestures) when the selection is inside a transparent editable element. This helps maintain |
| compatibility with text editors that work by capturing key events and input events hidden contenteditable |
| elements, and reflect these changes in different document or different part of the document. |
| |
| Since selection UI is rendered in the UI process on iOS using element geometry propagated from the web process, |
| selection rendering is entirely decoupled from the process of painting in the web process. This means that if |
| the editable root has an opacity of 0, we would correctly hide the caret and selection on macOS, but draw over |
| the transparent element on iOS. When these hidden editable elements are focused, this often results in unwanted |
| behaviors, such as double caret painting, native and custom selection UI from the page being drawn on top of one |
| another, and the ability to change selection via tap and loupe gestures within hidden text. |
| |
| To fix this, we compute whether the focused element is transparent when an element is focused, or when the |
| selection changes, and send this information over to the UI process via `AssistedNodeInformation` and |
| `EditorState`. In the UI process, we then respect this information by suppressing the selection assistant if the |
| focused element is transparent; this disables showing and laying out selection views, as well as gestures |
| associated with selection overlays. However, this still allows for contextual autocorrection and spell checking. |
| |
| * Shared/AssistedNodeInformation.cpp: |
| (WebKit::AssistedNodeInformation::encode const): |
| (WebKit::AssistedNodeInformation::decode): |
| * Shared/AssistedNodeInformation.h: |
| * Shared/EditorState.cpp: |
| (WebKit::EditorState::PostLayoutData::encode const): |
| (WebKit::EditorState::PostLayoutData::decode): |
| * Shared/EditorState.h: |
| |
| Add `elementIsTransparent` flags, and also add boilerplate IPC code. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _displayFormNodeInputView]): |
| |
| Prevent zooming to the focused element if the focused element is hidden. |
| |
| (-[WKContentView hasSelectablePositionAtPoint:]): |
| (-[WKContentView pointIsNearMarkedText:]): |
| (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): |
| |
| Don't allow these text interaction gestures to begin while suppressing the selection assistant. |
| |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| |
| When an element is focused, begin suppressing the selection assistant if the element is fully transparent. |
| |
| (-[WKContentView _stopAssistingNode]): |
| |
| When the focused element is blurred, reset state by ending selection assistant suppression (additionally |
| reactivating the selection assistant if needed). This ensures that selection in non-editable text isn't broken |
| after focusing a hidden editable element. |
| |
| (-[WKContentView _updateChangedSelection:]): |
| |
| If needed, suppress or un-suppress the selection assistant when the selection changes. On certain rich text |
| editors, a combination of custom selection UI and native selection UI is used. For instance, on Microsoft Office |
| 365, caret selections are rendered using the native caret view, but as soon as the selection becomes ranged, the |
| editable root becomes fully transparent, and Office's selection UI takes over. |
| |
| (-[WKContentView _shouldSuppressSelectionCommands]): |
| |
| Override this UIKit SPI hook to suppress selection commands (e.g. the callout bar) when suppressing the |
| selection assistant. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| (WebKit::WebPage::getAssistedNodeInformation): |
| |
| Compute and set `elementIsTransparent` using the assisted node. |
| |
| 2018-11-13 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r238137. |
| |
| Introduced API test failures on macOS. |
| |
| Reverted changeset: |
| |
| "Enable process swap on cross-site navigation by default on |
| macOS" |
| https://bugs.webkit.org/show_bug.cgi?id=191572 |
| https://trac.webkit.org/changeset/238137 |
| |
| 2018-11-13 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Enable process swap on cross-site navigation by default on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=191572 |
| |
| Reviewed by Chris Dumez. |
| |
| Enabled the feature by default on macOS. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| |
| 2018-11-13 Daniel Bates <dabates@apple.com> |
| |
| Consolidate WebKit UIKitSPI.h and UIKitTestSPI.h |
| https://bugs.webkit.org/show_bug.cgi?id=173341 |
| <rdar://problem/32752890> |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| 2018-11-13 Alex Christensen <achristensen@webkit.org> |
| |
| Fix internal builds after r238115 |
| https://bugs.webkit.org/show_bug.cgi?id=191441 |
| |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (-[WKSafeBrowsingTextView intrinsicContentSize]): |
| Some iOS-like operating systems don't have safe browsing. Don't use symbols that don't exist on those systems. |
| |
| 2018-11-13 Ali Juma <ajuma@chromium.org> |
| |
| Turn Intersection Observer on by default |
| https://bugs.webkit.org/show_bug.cgi?id=191569 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-11-12 Darshan Kadu <darsh7807@gmail.com> |
| |
| Implement Cache API support for WPE/GTK |
| https://bugs.webkit.org/show_bug.cgi?id=178316 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Added a new API function WKWebsiteDataStoreSetCacheStoragePerOriginQuota which sets the |
| cache limit per origin. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetCacheStoragePerOriginQuota): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| |
| 2018-11-12 Alex Christensen <achristensen@webkit.org> |
| |
| [iOS] Implement safe browsing in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=191441 |
| |
| Reviewed by Tim Horton. |
| |
| In r237863 I implemented this for Mac. This refines the UI and implements it for iOS. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/C/mac/WKContextPrivateMac.mm: |
| (WKContextHandlesSafeBrowsing): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _showSafeBrowsingWarning:completionHandler:]): |
| (-[WKWebView _clearSafeBrowsingWarning]): |
| (-[WKWebView layoutSubviews]): |
| (-[WKWebView setFrameSize:]): |
| (+[WKWebView _handlesSafeBrowsing]): |
| (-[WKWebView _safeBrowsingWarningForTesting]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::allocFileWrapperInstance const): |
| (WebKit::PageClientImplCocoa::serializableFileWrapperClasses const): |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.h: |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: |
| (confirmMalwareSentinel): |
| (visitUnsafeWebsiteSentinel): |
| (colorForItem): |
| (addLinkAndReplace): |
| (-[WKSafeBrowsingExclamationPoint drawRect:]): |
| (makeButton): |
| (makeTitleLabel): |
| (setBackground): |
| (-[WKSafeBrowsingWarning initWithFrame:safeBrowsingResult:completionHandler:]): |
| (-[WKSafeBrowsingWarning addContent]): |
| (-[WKSafeBrowsingWarning showDetailsClicked]): |
| (-[WKSafeBrowsingWarning layoutText]): |
| (-[WKSafeBrowsingWarning textView:clickedOnLink:atIndex:]): |
| (-[WKSafeBrowsingWarning layout]): |
| (-[WKSafeBrowsingWarning layoutSubviews]): |
| (-[WKSafeBrowsingWarning textView:shouldInteractWithURL:inRange:interaction:]): |
| (-[WKSafeBrowsingWarning didMoveToWindow]): |
| (-[WKSafeBrowsingWarning clickedOnLink:]): |
| (-[WKSafeBrowsingTextView initWithAttributedString:forWarning:]): |
| (-[WKSafeBrowsingTextView intrinsicContentSize]): |
| (colorNamed): Deleted. |
| (+[WKSafeBrowsingTextView viewWithAttributedString:linkTarget:]): Deleted. |
| (+[WKSafeBrowsingTextView viewWithString:]): Deleted. |
| (-[WKSafeBrowsingTextView clickedOnLink:atIndex:]): Deleted. |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::isViewWindowActive): |
| (WebKit::PageClientImpl::isViewFocused): |
| (WebKit::PageClientImpl::isViewVisible): |
| (WebKit::PageClientImpl::isViewInWindow): |
| (WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest): |
| (WebKit::PageClientImpl::enterAcceleratedCompositingMode): |
| (WebKit::PageClientImpl::showSafeBrowsingWarning): |
| (WebKit::PageClientImpl::clearSafeBrowsingWarning): |
| (WebKit::PageClientImpl::mimeTypesWithCustomContentProviders): |
| (WebKit::PageClientImpl::navigationGestureDidBegin): |
| (WebKit::PageClientImpl::navigationGestureWillEnd): |
| (WebKit::PageClientImpl::navigationGestureDidEnd): |
| (WebKit::PageClientImpl::willRecordNavigationSnapshot): |
| (WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot): |
| (WebKit::PageClientImpl::requestPasswordForQuickLookDocument): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::showShareSheet): |
| (WebKit::PageClientImpl::navigationGestureDidBegin): |
| (WebKit::PageClientImpl::navigationGestureWillEnd): |
| (WebKit::PageClientImpl::navigationGestureDidEnd): |
| (WebKit::PageClientImpl::willRecordNavigationSnapshot): |
| (WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot): |
| |
| 2018-11-12 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to edit images inline |
| https://bugs.webkit.org/show_bug.cgi?id=191352 |
| <rdar://problem/30107985> |
| |
| Reviewed by Dean Jackson. |
| |
| * Platform/spi/ios/PencilKitSPI.h: Added. |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::drawInContext): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties): |
| (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode const): |
| (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode): |
| * WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp: |
| (WebKit::GraphicsLayerCARemote::createPlatformCALayerForEmbeddedView): |
| * WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::createForEmbeddedView): |
| (WebKit::PlatformCALayerRemote::PlatformCALayerRemote): |
| (WebKit::PlatformCALayerRemote::embeddedViewID const): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| (WebKit::RemoteLayerTreeContext::layerWasCreated): |
| Propagate EmbeddedViewID through the PlatformCALayer constructor and |
| through the layer creation parameters to the UI process. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _setEditableImagesEnabled:]): |
| (-[WKWebViewConfiguration _editableImagesEnabled]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| Add a preference to enable editable images. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::layerWillBeRemoved): |
| (WebKit::RemoteLayerTreeHost::clearLayers): |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| Keep track of "embedded views" in two maps: embeddedViewID->UIView, |
| and layerID->embeddedViewID. Clean them up when layers go away. |
| If a embedded view is reparented, currently it must be added to a new |
| layer in the same commit as it is removed from the previous layer |
| in order to persist the view's state (otherwise the view will be |
| destroyed and recreated). This will be less of a problem after future |
| patches introduce serialization of image data and whatnot. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| (WebKit::RemoteLayerTreeHost::createEmbeddedView): |
| Move the various remote layer tree UIView subclasses out into a separate file. |
| |
| Add createEmbeddedView, which is used for LayerTypeEditableImageLayer, |
| and creates a WKDrawingView and sticks it in the maps. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h: Added. |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: Added. |
| (-[UIView _web_recursiveFindDescendantInteractibleViewAtPoint:withEvent:]): |
| (-[UIView _web_findDescendantViewAtPoint:withEvent:]): |
| (-[WKCompositingView hitTest:withEvent:]): |
| (-[WKCompositingView description]): |
| (+[WKTransformView layerClass]): |
| (+[WKSimpleBackdropView layerClass]): |
| (+[WKShapeView layerClass]): |
| (-[WKRemoteView initWithFrame:contextID:]): |
| (+[WKRemoteView layerClass]): |
| (-[WKBackdropView hitTest:withEvent:]): |
| (-[WKBackdropView description]): |
| (-[WKChildScrollView initWithFrame:]): |
| Move various remote layer tree UIView subclasses here, to their own file. |
| Make our UIView hit testing override test for views that conform to the |
| protocol "WKNativelyInteractible", which switches to normal UIView hit |
| testing. WKDrawingView will be the one such view. |
| |
| Add WKChildScrollView and pull the one thing we customize out into it, |
| to make RemoteLayerTreeHost::createLayer less logic-ful. |
| |
| * UIProcess/ios/WKDrawingView.h: Added. |
| * UIProcess/ios/WKDrawingView.mm: Added. |
| (-[WKDrawingView init]): |
| (-[WKDrawingView layoutSubviews]): |
| Add a very simple WKDrawingView, which uses PKCanvasView to edit the image. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * SourcesCocoa.txt: |
| Add the new files. |
| |
| 2018-11-12 Don Olmstead <don.olmstead@sony.com> |
| |
| Shipped PNGs include bad profiles: iCCP: known incorrect sRGB profile |
| https://bugs.webkit.org/show_bug.cgi?id=189230 |
| <rdar://problem/44050379> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Runs all png images through zopflipng. This results in a smaller file |
| size and takes care of this issue as a byproduct. |
| |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@1x.png: |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@2x.png: |
| * Resources/ios/iOS.xcassets/StartPictureInPictureButton.imageset/StartPictureInPictureButton@3x.png: |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@1x.png: |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@2x.png: |
| * Resources/ios/iOS.xcassets/StopPictureInPictureButton.imageset/StopPictureInPictureButton@3x.png: |
| |
| 2018-11-12 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Screen capture should be an experimental feature on OSX only |
| https://bugs.webkit.org/show_bug.cgi?id=191552 |
| <rdar://problem/45994142> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebPreferences.yaml: Make ScreenCaptureEnabled.condition ENABLE(MEDIA_STREAM) && PLATFORM(MAC). |
| |
| 2018-11-12 Takashi Komori <Takashi.Komori@sony.com> |
| |
| Resurrect WebKitTestRunner for Windows port |
| https://bugs.webkit.org/show_bug.cgi?id=189257 |
| |
| Reviewed by Fujii Hironori. |
| |
| * PlatformWin.cmake: |
| |
| 2018-11-12 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations experimental |
| https://bugs.webkit.org/show_bug.cgi?id=191543 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-11-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Implement a new edit command to change the enclosing list type |
| https://bugs.webkit.org/show_bug.cgi?id=191487 |
| <rdar://problem/45955922> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UIProcess/WebEditCommandProxy.cpp: |
| (WebKit::WebEditCommandProxy::nameForEditAction): |
| |
| Add undo/redo edit action strings for ConvertToOrderedList and ConvertToUnorderedList. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::increaseListLevel): |
| (WebKit::WebPage::decreaseListLevel): |
| (WebKit::WebPage::changeListType): |
| |
| Remove preflight checks for these list editing commands. These are not necessary because these commands fall |
| back to being noops if these checks return false. This avoids an extraneous ancestor walk to determine the |
| enclosing list element when changing list type. |
| |
| 2018-11-11 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Draw caps lock indicator in password fields |
| https://bugs.webkit.org/show_bug.cgi?id=190565 |
| <rdar://problem/45262343> |
| |
| Reviewed by Dean Jackson. |
| |
| Notify the WebContent process with the current modifer state on window activation changes. Notify |
| the WebContent process when hardware keyboard availability changes (e.g. a keyboard is attached). |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Register for hardware keyboard availability changed notifications. |
| (-[WKWebView dealloc]): Unregister from hardware availability changed notifications. |
| (hardwareKeyboardAvailabilityChangedCallback): Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateCurrentModifierState): Compile this code when building for iOS. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _handleKeyUIEvent:]): Update the current modifier state if this event is a hardware |
| keyboard flags changed event. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::hardwareKeyboardAvailabilityChanged): Added. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::hardwareKeyboardAvailabilityChanged): |
| Added new message HardwareKeyboardAvailabilityChanged. Notify the focused HTML input element (if we have |
| one) that the caps lock state may have changed when we receive message HardwareKeyboardAvailabilityChanged |
| so that we toggle visibility of the caps lock indicator. |
| |
| 2018-11-11 Dan Bernstein <mitz@apple.com> |
| |
| ProcessPoolConfiguration::copy() doesn’t copy m_customWebContentServiceBundleIdentifier |
| https://bugs.webkit.org/show_bug.cgi?id=191514 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Test: WebKitCocoa/WKProcessPoolConfiguration.mm |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): Copy m_customWebContentServiceBundleIdentifier. |
| |
| 2018-11-11 Benjamin Poulain <benjamin@webkit.org> |
| |
| Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend |
| https://bugs.webkit.org/show_bug.cgi?id=191492 |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/mac/StringUtilities.mm: |
| * UIProcess/ApplicationStateTracker.mm: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| |
| 2018-11-10 Benjamin Poulain <benjamin@webkit.org> |
| |
| Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend |
| https://bugs.webkit.org/show_bug.cgi?id=191492 |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/mac/StringUtilities.mm: |
| * UIProcess/ApplicationStateTracker.mm: |
| (WebKit::ApplicationStateTracker::applicationDidEnterBackground): |
| (WebKit::ApplicationStateTracker::applicationDidFinishSnapshottingAfterEnteringBackground): |
| (WebKit::ApplicationStateTracker::applicationWillEnterForeground): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| |
| 2018-11-10 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r238065. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Make it possible to edit images inline" |
| https://bugs.webkit.org/show_bug.cgi?id=191352 |
| https://trac.webkit.org/changeset/238065 |
| |
| 2018-11-10 Tim Horton <timothy_horton@apple.com> |
| |
| Make it possible to edit images inline |
| https://bugs.webkit.org/show_bug.cgi?id=191352 |
| <rdar://problem/30107985> |
| |
| Reviewed by Dean Jackson. |
| |
| * Platform/spi/ios/PencilKitSPI.h: Added. |
| * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: |
| (WebKit::RemoteLayerBackingStore::drawInContext): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm: |
| (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::LayerCreationProperties): |
| (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode const): |
| (WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode): |
| * WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp: |
| (WebKit::GraphicsLayerCARemote::createPlatformCALayerForEmbeddedView): |
| * WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp: |
| (WebKit::PlatformCALayerRemote::createForEmbeddedView): |
| (WebKit::PlatformCALayerRemote::PlatformCALayerRemote): |
| (WebKit::PlatformCALayerRemote::embeddedViewID const): |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| (WebKit::RemoteLayerTreeContext::layerWasCreated): |
| Propagate EmbeddedViewID through the PlatformCALayer constructor and |
| through the layer creation parameters to the UI process. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _setEditableImagesEnabled:]): |
| (-[WKWebViewConfiguration _editableImagesEnabled]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| Add a preference to enable editable images. |
| |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::layerWillBeRemoved): |
| (WebKit::RemoteLayerTreeHost::clearLayers): |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| Keep track of "embedded views" in two maps: embeddedViewID->UIView, |
| and layerID->embeddedViewID. Clean them up when layers go away. |
| If a embedded view is reparented, currently it must be added to a new |
| layer in the same commit as it is removed from the previous layer |
| in order to persist the view's state (otherwise the view will be |
| destroyed and recreated). This will be less of a problem after future |
| patches introduce serialization of image data and whatnot. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| (WebKit::RemoteLayerTreeHost::createEmbeddedView): |
| Move the various remote layer tree UIView subclasses out into a separate file. |
| |
| Add createEmbeddedView, which is used for LayerTypeEditableImageLayer, |
| and creates a WKDrawingView and sticks it in the maps. |
| |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.h: Added. |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: Added. |
| (-[UIView _web_recursiveFindDescendantInteractibleViewAtPoint:withEvent:]): |
| (-[UIView _web_findDescendantViewAtPoint:withEvent:]): |
| (-[WKCompositingView hitTest:withEvent:]): |
| (-[WKCompositingView description]): |
| (+[WKTransformView layerClass]): |
| (+[WKSimpleBackdropView layerClass]): |
| (+[WKShapeView layerClass]): |
| (-[WKRemoteView initWithFrame:contextID:]): |
| (+[WKRemoteView layerClass]): |
| (-[WKBackdropView hitTest:withEvent:]): |
| (-[WKBackdropView description]): |
| (-[WKChildScrollView initWithFrame:]): |
| Move various remote layer tree UIView subclasses here, to their own file. |
| Make our UIView hit testing override test for views that conform to the |
| protocol "WKNativelyInteractible", which switches to normal UIView hit |
| testing. WKDrawingView will be the one such view. |
| |
| Add WKChildScrollView and pull the one thing we customize out into it, |
| to make RemoteLayerTreeHost::createLayer less logic-ful. |
| |
| * UIProcess/ios/WKDrawingView.h: Added. |
| * UIProcess/ios/WKDrawingView.mm: Added. |
| (-[WKDrawingView init]): |
| (-[WKDrawingView layoutSubviews]): |
| Add a very simple WKDrawingView, which uses PKCanvasView to edit the image. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * SourcesCocoa.txt: |
| Add the new files. |
| |
| 2018-11-09 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS] Issue initial paint soon after the visuallyNonEmpty milestone is fired. |
| https://bugs.webkit.org/show_bug.cgi?id=191078 |
| <rdar://problem/45736178> |
| |
| Reviewed by Antti Koivisto. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::layerFlushThrottlingIsActive const): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::scheduleInitialDeferredPaint): |
| * WebProcess/WebPage/AcceleratedDrawingArea.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::layerFlushThrottlingIsActive const): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): |
| (WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen): |
| (WebKit::RemoteLayerTreeDrawingArea::initialDeferredPaint): |
| (WebKit::RemoteLayerTreeDrawingArea::scheduleInitialDeferredPaint): |
| (WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::scheduleInitialDeferredPaint): |
| |
| 2018-11-09 John Wilander <wilander@apple.com> |
| |
| Add ability to configure document.cookie lifetime cap through user defaults |
| https://bugs.webkit.org/show_bug.cgi?id=191480 |
| <rdar://problem/45240871> |
| |
| Reviewed by Chris Dumez. |
| |
| This change makes the capped lifetime in seconds configurable through |
| user defaults. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setAgeCapForClientSideCookies): |
| (WebKit::NetworkProcess::setShouldCapLifetimeForClientSideCookies): Deleted. |
| Renamed setAgeCapForClientSideCookies(). |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm: |
| (WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::setAgeCapForClientSideCookies): |
| (WebKit::NetworkProcessProxy::didSetAgeCapForClientSideCookies): |
| (WebKit::NetworkProcessProxy::setShouldCapLifetimeForClientSideCookies): Deleted. |
| Renamed setAgeCapForClientSideCookies(). |
| (WebKit::NetworkProcessProxy::didSetShouldCapLifetimeForClientSideCookies): Deleted. |
| Renamed didSetAgeCapForClientSideCookies(). |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::setAgeCapForClientSideCookies): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateClientSideCookiesAgeCap): |
| (WebKit::ResourceLoadStatisticsMemoryStore::didCreateNetworkProcess): |
| New function that handles all the things that need to be done when a network |
| process has been created. |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::didCreateNetworkProcess): |
| Now just calls the corresponding function on its memory store where all the |
| configuration parameters are available. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setAgeCapForClientSideCookies): |
| (WebKit::WebsiteDataStore::setShouldCapLifetimeForClientSideCookies): Deleted. |
| Renamed setAgeCapForClientSideCookies(). |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-11-09 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r238047. |
| |
| Introduced layout test failures on iOS simulator. |
| |
| Reverted changeset: |
| |
| "[iOS] Draw caps lock indicator in password fields" |
| https://bugs.webkit.org/show_bug.cgi?id=190565 |
| https://trac.webkit.org/changeset/238047 |
| |
| 2018-11-09 Chris Dumez <cdumez@apple.com> |
| |
| Suspended page persists even after back/forward list item is gone |
| https://bugs.webkit.org/show_bug.cgi?id=191488 |
| <rdar://problem/45953006> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Currently, the WebProcessPool owns the SuspendedPageProxy objects and makes sure we cap how |
| many we can have. The WebBackForwardListItem merely has a WeakPtr to its associated |
| SuspendedPageProxy. However, there is no point in having the WebProcessPool keeping a |
| SuspendedPageProxy object alive if there is no longer any WebBackForwardListItem pointing |
| to it. |
| |
| To address the issue, WebBackForwardListItem nows tells the WebProcessPool to destroy |
| its SuspendedPageProxy when necessary. WebBackForwardList also takes care of nulling |
| out the WebBackForwardListItem's SuspendedPageProxy after the item has been removed |
| from the list (in case somebody keeps the item alive). |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::~WebBackForwardListItem): |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| (WebKit::WebBackForwardListItem::suspendedPageIsNoLongerNeeded): |
| * Shared/WebBackForwardListItem.h: |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::didRemoveItem): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::removeSuspendedPageProxy): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-11-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Implement SPI on WKWebView to increase and decrease list levels |
| https://bugs.webkit.org/show_bug.cgi?id=191471 |
| <rdar://problem/45952472> |
| |
| Reviewed by Tim Horton. |
| |
| Implement these method stubs by calling into Editor. |
| |
| Test: WKWebViewEditActions.ModifyListLevel |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::increaseListLevel): |
| (WebKit::WebPage::decreaseListLevel): |
| (WebKit::WebPage::changeListType): |
| |
| 2018-11-09 Keith Rollin <krollin@apple.com> |
| |
| Unreviewed build fix after https://bugs.webkit.org/show_bug.cgi?id=191324 |
| |
| Remove the use of .xcfilelists until their side-effects are better |
| understood. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-09 Basuke Suzuki <basuke.suzuki@sony.com> |
| |
| [Curl][WebKit] Implement Proxy configuration API. |
| https://bugs.webkit.org/show_bug.cgi?id=189053 |
| |
| Reviewed by Youenn Fablet. |
| |
| Added proxy configuration API to WebsiteDataStore. Three API were added in WKWebsiteDataStoreRefCurl.h: |
| - WKWebsiteDataStoreEnableDefaultNetworkProxySettings(WKWebsiteDataStoreRef) |
| - WKWebsiteDataStoreEnableCustomNetworkProxySettings(WKWebsiteDataStoreRef, WKURLRef, WKStringRef ignoreHosts) |
| - WKWebsiteDataStoreDisableNetworkProxySettings(WKWebsiteDataStoreRef) |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| (WebKit::NetworkSessionCreationParameters::encode const): |
| (WebKit::NetworkSessionCreationParameters::decode): |
| * NetworkProcess/curl/NetworkProcessCurl.cpp: |
| (WebKit::NetworkProcess::setNetworkProxySettings): |
| * NetworkProcess/curl/NetworkSessionCurl.cpp: |
| (WebKit::NetworkSessionCurl::NetworkSessionCurl): |
| * NetworkProcess/curl/RemoteNetworkingContextCurl.cpp: |
| (WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession): |
| * PlatformWin.cmake: |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/curl/WebCoreArgumentCodersCurl.cpp: |
| (IPC::ArgumentCoder<CurlProxySettings>::encode): |
| (IPC::ArgumentCoder<CurlProxySettings>::decode): |
| * UIProcess/API/C/curl/WKWebsiteDataStoreRefCurl.cpp: |
| Copied from Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp. |
| (WKWebsiteDataStoreEnableDefaultNetworkProxySettings): |
| (WKWebsiteDataStoreEnableCustomNetworkProxySettings): |
| (WKWebsiteDataStoreDisableNetworkProxySettings): |
| * UIProcess/API/C/curl/WKWebsiteDataStoreRefCurl.h: |
| Copied from Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp. |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::networkProxySettings const): |
| * UIProcess/WebsiteData/curl/WebsiteDataStoreCurl.cpp: |
| Copied from Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp. |
| (WebKit::WebsiteDataStore::platformSetParameters): |
| (WebKit::WebsiteDataStore::setNetworkProxySettings): |
| |
| 2018-11-09 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Introduce WKWebView SPI to insert nested ordered and unordered lists |
| https://bugs.webkit.org/show_bug.cgi?id=191410 |
| <rdar://problem/45898610> |
| |
| Reviewed by Dean Jackson. |
| |
| Prefixes a few iOS-only SPI methods declared on WKWebView in r236867 with underscores, and also exposes some |
| more cross-platform Cocoa editing SPI. Once the unprefixed SPI methods are no longer used by internal clients, |
| these will need to be removed (see followup bug: webkit.org/b/191450). See below for more details. |
| |
| Covered by new and existing API tests in WKWebViewEditActions. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| |
| Hoist the definition (and undefinition) of `FORWARD_ACTION_TO_WKCONTENTVIEW` to encompass both the WKWebView |
| implementation and the WKWebView (WKPrivate) implementation. This allows us to use this macro when implementing |
| SPI methods in the WKPrivate category, as well as methods that are part of the main WKWebView implementation. |
| |
| (-[WKWebView canPerformAction:withSender:]): |
| (-[WKWebView targetForAction:withSender:]): |
| |
| Add forwarding for the new editing commands in -canPerformAction: and -targetForAction:. |
| |
| (-[WKWebView _toggleStrikeThrough:]): |
| (-[WKWebView _increaseListLevel:]): |
| (-[WKWebView _decreaseListLevel:]): |
| (-[WKWebView _changeListType:]): |
| (-[WKWebView _setFont:sender:]): |
| (-[WKWebView _setFontSize:sender:]): |
| (-[WKWebView _setTextColor:sender:]): |
| |
| Add definitions for the new editing methods on WKWebView, using macros (`WEBCORE_PRIVATE_COMMAND` on macOS and |
| `FORWARD_ACTION_TO_WKCONTENTVIEW` on iOS) to help reduce the code duplication. |
| |
| (-[WKWebView _pasteAsQuotation:]): Deleted. |
| |
| Remove this method definition, which is now replaced by macros on iOS and macOS. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Introduce the new SPI to WKWebView (WKPrivate), and add FIXMEs to remove old, unprefixed variants of the SPI. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::increaseListLevel): |
| (WebKit::WebPageProxy::decreaseListLevel): |
| (WebKit::WebPageProxy::changeListType): |
| |
| Add plumbing for these list editing commands. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _increaseListLevelForWebView:]): |
| (-[WKContentView _decreaseListLevelForWebView:]): |
| (-[WKContentView _changeListTypeForWebView:]): |
| (-[WKContentView _toggleStrikeThroughForWebView:]): |
| (-[WKContentView _setFontForWebView:sender:]): |
| (-[WKContentView _setFontSizeForWebView:sender:]): |
| (-[WKContentView _setTextColorForWebView:sender:]): |
| (-[WKContentView toggleStrikeThroughForWebView:]): |
| (-[WKContentView setFontForWebView:sender:]): |
| (-[WKContentView setFontSizeForWebView:sender:]): |
| (-[WKContentView setTextColorForWebView:sender:]): |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| |
| Check for the new action selectors here, and additionally add validation for `_pasteAsQuotation:`. Let the |
| unprefixed versions of these methods simply call the prefixed versions (these method implementations will be |
| removed in a followup once doing so would not affect any clients of WebKit). |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::increaseListLevel): |
| (WebKit::WebPage::decreaseListLevel): |
| (WebKit::WebPage::changeListType): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| Add stubs for several list editing commands that are yet to be hooked up to WebCore. These will be implemented |
| in a future patch. |
| |
| 2018-11-09 Antti Koivisto <antti@apple.com> |
| |
| Use OptionSet for layout milestones |
| https://bugs.webkit.org/show_bug.cgi?id=191470 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/API/Cocoa/_WKRenderingProgressEventsInternal.h: |
| (renderingProgressEvents): |
| * Shared/API/c/WKSharedAPICast.h: |
| (WebKit::toWKLayoutMilestones): |
| (WebKit::toLayoutMilestones): |
| * Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h: |
| (WebKit::RemoteLayerTreeTransaction::newlyReachedLayoutMilestones const): |
| (WebKit::RemoteLayerTreeTransaction::setNewlyReachedLayoutMilestones): |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/API/APILoaderClient.h: |
| (API::LoaderClient::didReachLayoutMilestone): |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::renderingProgressDidChange): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageLoaderClient): |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/C/WKPageRenderingProgressEventsInternal.h: |
| (pageRenderingProgressEvents): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (layoutMilestones): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::renderingProgressDidChange): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::listenForLayoutMilestones): |
| (WebKit::WebPageProxy::didLayoutForCustomContentProvider): |
| (WebKit::WebPageProxy::didReachLayoutMilestone): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::didCommitLayerTree): |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: |
| (API::InjectedBundle::PageLoaderClient::didReachLayoutMilestone): |
| (API::InjectedBundle::PageLoaderClient::layoutMilestones const): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| (WebKit::InjectedBundlePageLoaderClient::didReachLayoutMilestone): |
| (WebKit::InjectedBundlePageLoaderClient::layoutMilestones const): |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::dispatchDidReachLayoutMilestone): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| (WebKit::RemoteLayerTreeDrawingArea::dispatchDidReachLayoutMilestone): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_shouldAttachDrawingAreaOnPageTransition): |
| (WebKit::WebPage::listenForLayoutMilestones): |
| (WebKit::WebPage::dispatchDidReachLayoutMilestone): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::sendPendingNewlyReachedLayoutMilestones): |
| (WebKit::TiledCoreAnimationDrawingArea::dispatchDidReachLayoutMilestone): |
| |
| 2018-11-09 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Draw caps lock indicator in password fields |
| https://bugs.webkit.org/show_bug.cgi?id=190565 |
| <rdar://problem/45262343> |
| |
| Reviewed by Dean Jackson. |
| |
| Notify the WebContent process with the current modifer state on window activation changes. Notify |
| the WebContent process when hardware keyboard availability changes (e.g. a keyboard is attached). |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): Register for hardware keyboard availability changed notifications. |
| (-[WKWebView dealloc]): Unregister from hardware availability changed notifications. |
| (hardwareKeyboardAvailabilityChangedCallback): Added. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateCurrentModifierState): Compile this code when building for iOS. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _handleKeyUIEvent:]): Update the current modifier state if this event is a hardware |
| keyboard flags changed event. |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::hardwareKeyboardAvailabilityChanged): Added. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::hardwareKeyboardAvailabilityChanged): |
| Added new message HardwareKeyboardAvailabilityChanged. Notify the focused HTML input element (if we have |
| one) that the caps lock state may have changed when we receive message HardwareKeyboardAvailabilityChanged |
| so that we toggle visibility of the caps lock indicator. |
| |
| 2018-11-09 Tim Horton <timothy_horton@apple.com> |
| |
| Make use of _UIRemoteView instead of CALayerHost if possible for WKRemoteView |
| https://bugs.webkit.org/show_bug.cgi?id=191449 |
| <rdar://problem/45884977> |
| |
| Reviewed by Eric Carlson. |
| |
| UIRemoteView has some nice process assertion management that it would |
| be nice to not duplicate. So, we can just use it instead of CALayerHost! |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/DrawingAreaProxy.h: |
| (WebKit::DrawingAreaProxy::page const): |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| (-[WKUIRemoteView hitTest:withEvent:]): |
| (-[WKUIRemoteView description]): |
| (createRemoteView): |
| (WebKit::RemoteLayerTreeHost::createLayer): |
| |
| 2018-11-09 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Make screen capture an experimental feature |
| https://bugs.webkit.org/show_bug.cgi?id=191472 |
| <rdar://problem/45946499> |
| |
| Reviewed by Jer Noble. |
| |
| * Shared/WebPreferences.yaml: Make ScreenCaptureEnabled an experimental feature. |
| |
| 2018-11-09 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Pressing forward delete key in text field does nothing and we should not invoke an editor |
| action when forward delete is pressed outside a text field |
| https://bugs.webkit.org/show_bug.cgi?id=190566 |
| <rdar://problem/45262367> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Override -_deleteForwardAndNotify to perform a forward deletion and remove the dead code that |
| expected UIKit to send us a character string with 0xF728 for the forward delete key. UIKit |
| ceased doing this many years ago. We may revist this decision once <rdar://problem/45772078> |
| is fixed. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): |
| (-[WKContentView _deleteForwardAndNotify:]): |
| |
| 2018-11-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Unreviewed, try to fix the 32-bit macOS build |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::showDefinitionForAttributedString): |
| |
| 2018-11-08 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Add an SPI to allow WebView clients to add additional supported image formats |
| https://bugs.webkit.org/show_bug.cgi?id=190454 |
| |
| Reviewed by Simon Fraser. |
| |
| * Platform/mac/StringUtilities.h: |
| * Platform/mac/StringUtilities.mm: |
| (WebKit::webCoreStringVectorFromNSStringArray): |
| A helper function which converts an NSArray of NSStrings to a Vector of |
| WTFString. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| Handle encoding and decoding the AdditionalSupportedImageTypes which will |
| allow transferring it from the UI process to the web process. |
| |
| * UIProcess/API/APIPageConfiguration.h: |
| (API::PageConfiguration::additionalSupportedImageTypes const): |
| (API::PageConfiguration::setAdditionalSupportedImageTypes): |
| Store the AdditionalSupportedImageTypes in the APIPageConfiguration |
| which is used when creating the WebPageProxy in the UIPorcess. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (-[WKWebViewConfiguration _additionalSupportedImageTypes]): |
| (-[WKWebViewConfiguration _setAdditionalSupportedImageTypes:]): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| Setter/Getter for the AdditionalSupportedImageTypes. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| Copy the AdditionalSupportedImageTypes from APIPageConfiguration to |
| WebPageCreationParameters. |
| |
| * UIProcess/WebPageProxy.h: |
| Delete unimplemented function. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_shouldAttachDrawingAreaOnPageTransition): |
| Copy the AdditionalSupportedImageTypes from WebPageCreationParameters to |
| WebCore. |
| |
| 2018-11-08 Megan Gardner <megan_gardner@apple.com> |
| |
| Adopt Reveal Framework to replace Lookup |
| https://bugs.webkit.org/show_bug.cgi?id=191097 |
| <rdar://problem/45924508> |
| |
| Reviewed by Tim Horton. |
| |
| Pass in what it needed to clear the textIndicators. This is better than |
| the current notification structure. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKWindowVisibilityObserver dealloc]): |
| (-[WKWindowVisibilityObserver startObservingLookupDismissalIfNeeded]): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::didPerformDictionaryLookup): |
| * UIProcess/mac/WKImmediateActionController.mm: |
| (-[WKImmediateActionController _animationControllerForText]): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::showDefinitionForAttributedString): |
| |
| Generate and pass in the text indicator information, as this is needed now. |
| |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::dictionaryPopupInfoForSelectionInPDFPlugin): |
| |
| 2018-11-08 Keith Rollin <krollin@apple.com> |
| |
| Create .xcfilelist files |
| https://bugs.webkit.org/show_bug.cgi?id=191324 |
| <rdar://problem/45852819> |
| |
| Reviewed by Alex Christensen. |
| |
| As part of preparing for enabling XCBuild, create and use .xcfilelist |
| files. These files are using during Run Script build phases in an |
| Xcode project. If a Run Script build phase produces new files that are |
| used later as inputs to subsequent build phases, XCBuild needs to know |
| about these files. These files can be either specified in an "output |
| files" section of the Run Script phase editor, or in .xcfilelist files |
| that are associated with the Run Script build phase. |
| |
| This patch takes the second approach. It consists of three sets of changes: |
| |
| - Modify the DerivedSources.make files to have a |
| 'print_all_generated_files" target that produces a list of the files |
| they create. |
| |
| - Create a shell script that produces .xcfilelist files from the |
| output of the previous step, as well as for the files created in the |
| Generate Unified Sources build steps. |
| |
| - Add the new .xcfilelist files to the associated projects. |
| |
| Note that, with these changes, the Xcode workspace and projects can no |
| longer be fully loaded into Xcode 9. Xcode will attempt to load the |
| projects that have .xcfilelist files associated with them, but will |
| fail and display a placeholder for those projects instead. It's |
| expected that all developers are using Xcode 10 by now and that not |
| being able to load into Xcode 9 is not a practical issue. Keep in mind |
| that this is strictly an IDE issue, and that the projects can still be |
| built with `xcodebuild`. |
| |
| Also note that the shell script that creates the .xcfilelist files can |
| also be used to verify that the set of files that's currently checked |
| in is up-to-date. This checking can be used as part of a check-in hook |
| or part of check-webkit-style to sooner catch cases where the |
| .xcfilelist files need to be regenerated. |
| |
| * DerivedSources.make: |
| * DerivedSources.xcfilelist: Added. |
| * UnifiedSources.xcfilelist: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-08 Timothy Hatcher <timothy@apple.com> |
| |
| Add experimental support for a `supported-color-schemes` CSS property. |
| https://bugs.webkit.org/show_bug.cgi?id=191319 |
| rdar://problem/45852261 |
| |
| Reviewed by Dean Jackson. |
| |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::drawRect): |
| |
| 2018-11-08 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Use DeviceIdHashSaltStorage to generate device ID hash salt |
| https://bugs.webkit.org/show_bug.cgi?id=190825 |
| <rdar://problem/45486085> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/API/C/WKUserMediaPermissionCheck.cpp: |
| (WKUserMediaPermissionCheckSetUserMediaAccessInfo): |
| * UIProcess/API/glib/WebKitDeviceInfoPermissionRequest.cpp: |
| (webkitDeviceInfoPermissionRequestAllow): |
| (webkitDeviceInfoPermissionRequestDeny): |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin): |
| * UIProcess/DeviceIdHashSaltStorage.cpp: |
| (WebKit::DeviceIdHashSaltStorage::regenerateDeviceIdHashSaltForOrigin): |
| (WebKit::DeviceIdHashSaltStorage::deleteDeviceIdHashSaltForOrigin): |
| * UIProcess/DeviceIdHashSaltStorage.h: |
| * UIProcess/UserMediaPermissionCheckProxy.cpp: |
| (WebKit::UserMediaPermissionCheckProxy::setUserMediaAccessInfo): |
| * UIProcess/UserMediaPermissionCheckProxy.h: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::createPermissionRequest): |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasGranted): |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): |
| (WebKit::UserMediaPermissionRequestManagerProxy::getUserMediaPermissionInfo): |
| (WebKit::UserMediaPermissionRequestManagerProxy::updateDeviceIDHashSalt): |
| (WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| * UIProcess/UserMediaPermissionRequestProxy.cpp: |
| (WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): |
| * UIProcess/UserMediaPermissionRequestProxy.h: |
| (WebKit::UserMediaPermissionRequestProxy::create): |
| (WebKit::UserMediaPermissionRequestProxy::deviceIdentifierHashSalt const): Deleted. |
| |
| 2018-11-08 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Crash when running with sandbox enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191353 |
| |
| Reviewed by Michael Catanzaro. |
| |
| g_key_file_set_string_list() expects a null-terminated array as parameter. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::createFlatpakInfo): Append nullptr to sharedPermissions array. |
| |
| 2018-11-07 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, fix iOS build with recent SDKs. |
| |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| (-[WKFullScreenWindowController _EVOrganizationName]): |
| |
| 2018-11-07 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Enable cap on partitioned cache max age |
| https://bugs.webkit.org/show_bug.cgi?id=191395 |
| <rdar://problem/45885977> |
| |
| Reviewed by Chris Dumez. |
| |
| This change does not bump the network cache revision number. |
| It's not needed since it was done just a week ago. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::setCacheMaxAgeCap): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCacheMaxAgeCap): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::didCreateNetworkProcess): |
| |
| 2018-11-07 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Support deleting to the start of the line and to the end of the line |
| https://bugs.webkit.org/show_bug.cgi?id=191389 |
| <rdar://problem/45883972> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Add support for the key commands Command + Delete and Control + K to delete to the start |
| of the line and to delete to the end of the line, respectively. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _deleteToStartOfLine]): Added. |
| (-[WKContentView _deleteToEndOfLine]): Added. |
| |
| 2018-11-07 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Option + Delete should delete previous word |
| https://bugs.webkit.org/show_bug.cgi?id=191381 |
| <rdar://problem/23681351> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Implement support for pressing Option + Delete to delete the previous word. This makes text editing |
| in WebKit more closely match the platform conventions. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _deleteByWord]): |
| |
| 2018-11-07 Daniel Bates <dabates@apple.com> |
| |
| Override +[UIKeyboard isInHardwareKeyboardMode] in WebKitTestRunner and DumpRenderTree |
| https://bugs.webkit.org/show_bug.cgi?id=190141 |
| |
| Reviewed by Darin Adler. |
| |
| Directly use +[UIKeyboard isInHardwareKeyboardMode]. We will override this class method |
| in DumpRenderTree and WebKitTestRunner to always return NO so as to make test runs |
| deterministic regardless of whether a hardware keyboard is attached. |
| |
| * Shared/NativeWebKeyboardEvent.h: |
| * Shared/ios/NativeWebKeyboardEventIOS.mm: |
| (WebKit::isInHardwareKeyboardMode): Deleted. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): |
| |
| 2018-11-07 Zamiul Haque <zhaque@apple.com> |
| |
| Force a gregorian calendar to show for credit card expiration date inputs |
| (autocomplete='cc-exp'*) regardless of default system settings. |
| https://bugs.webkit.org/show_bug.cgi?id=191096 |
| rdar://problem/42640256 |
| |
| Reviewed by Tim Horton. |
| |
| Added some plumbing code to expose the calendar identifier of the calendar used by a |
| presented date picker. Added shouldPresentGregorianCalendar:, to be used for |
| determining what property values a date input control must present a Gregorian |
| calendar for. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView formInputPeripheral]): |
| * UIProcess/ios/forms/WKFormInputControl.mm: |
| |
| 2018-11-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix GTK/WPE build when memfd is not available after r237922. |
| |
| * Platform/unix/SharedMemoryUnix.cpp: |
| (WebKit::createSharedMemory): |
| |
| 2018-11-07 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [Linux] Use memfd_create when available in SharedMemory implementation |
| https://bugs.webkit.org/show_bug.cgi?id=189741 |
| |
| Reviewed by Michael Catanzaro. |
| |
| If memfd is available, use it instead of shm_open. |
| |
| * Platform/unix/SharedMemoryUnix.cpp: |
| (WebKit::createSharedMemory): Helper to create the shared memory, trying first with memfd and falling back to |
| shm if it's not available. |
| (WebKit::SharedMemory::create): Use createSharedMemory() helper. |
| |
| 2018-11-06 Justin Fan <justin_fan@apple.com> |
| |
| [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain |
| https://bugs.webkit.org/show_bug.cgi?id=191291 |
| |
| Reviewed by Myles Maxfield. |
| |
| Properly disable WEBGPU on all non-Metal platforms for now. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-11-06 Youenn Fablet <youenn@apple.com> |
| |
| Make mDNS ICE Candidate an experimental flag again |
| https://bugs.webkit.org/show_bug.cgi?id=191262 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebRTCMDNSICECandidatesEnabled): |
| (WKPreferencesGetWebRTCMDNSICECandidatesEnabled): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-11-06 Suresh Koppisetty <skoppisetty@apple.com> |
| |
| Don’t use the main queue to create an XPC connection. |
| https://bugs.webkit.org/show_bug.cgi?id=191160 |
| <rdar://problem/45736262> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Don't use the main queue to create an XPC connection. xpc_connection_set_bootstrap does |
| dispatch_mach_send_barrier_f on this queue which delays the sending of the subsequent |
| bootstrap message (sent to launchd for launching a new target process) when the main queue is busy. |
| |
| Now that the XPC connection runs on the default concurrent queue, errorHandler could be invoked |
| by any thread. The job of errorHandler is to dispatch errorHandlerImpl to the main thread, |
| where errorHandlerImpl is responsible for the actual handling of errors if any. |
| |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::ProcessLauncher::launchProcess): |
| |
| 2018-11-06 Brian Burg <bburg@apple.com> |
| |
| Add missing iOS availability macro to _WKAutomationSessionConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=191320 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/_WKAutomationSessionConfiguration.h: |
| |
| 2018-11-06 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Remove cap on partitioned cache max age if it matches a network reload (redirect-only) |
| https://bugs.webkit.org/show_bug.cgi?id=189760 |
| <rdar://problem/44612242> |
| |
| Reviewed by Youenn Fablet and Antti Koivisto. |
| |
| When a redirect cache entry for a prevalent resource reaches its max |
| age cap, it is loaded again from the network and the network response |
| is compared with what's in the cache. If it's a match, the cache entry |
| is fully accepted. If not, a new capped cache entry is created. |
| |
| This feature is still off by default. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::canUseCachedRedirect const): |
| Now checks the new member m_cacheEntryForMaxAgeCapValidation. |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| New case handled for entry->hasReachedPrevalentResourceAgeCap(). |
| (WebKit::NetworkResourceLoader::validateCacheEntryForMaxAgeCapValidation): |
| This is where the new logic compares the incoming redirect with the |
| cached one. If they match, an uncapped entry is allowed to be stored. |
| If they don't match, a new capped entry will be stored. |
| (WebKit::NetworkResourceLoader::willSendRedirectedRequest): |
| Now calls the new |
| NetworkResourceLoader::validateCacheEntryForMaxAgeCapValidation() |
| function. |
| * NetworkProcess/NetworkResourceLoader.h: |
| Added the m_cacheEntryForMaxAgeCapValidation member. |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::makeUseDecision): |
| Restored to previous behavior which means |
| UseDecision::NoDueToPrevalentResourceAgeCap was removed. |
| (WebKit::NetworkCache::Cache::retrieve): |
| Restored to previous behavior. |
| (WebKit::NetworkCache::Cache::storeRedirect): |
| Now takes the optional maxAgeCap and caps the entry's max age if it's set. |
| (WebKit::NetworkCache::hasReachedPrevalentResourceAgeCap): Deleted. |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheEntry.cpp: |
| (WebKit::NetworkCache::Entry::encodeAsStorageRecord const): |
| Now encodes m_maxAgeCap. |
| (WebKit::NetworkCache::Entry::decodeStorageRecord): |
| Now decodes m_maxAgeCap. |
| (WebKit::NetworkCache::Entry::hasReachedPrevalentResourceAgeCap const): |
| Added. |
| (WebKit::NetworkCache::Entry::capMaxAge): |
| Added. |
| * NetworkProcess/cache/NetworkCacheEntry.h: |
| Added the optional m_maxAgeCap. |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest): |
| Now gets the optional max age cap from the NetworkStorageSession and sends it |
| to Cache::storeRedirect(). |
| * NetworkProcess/cache/NetworkCacheStatistics.cpp: |
| (WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey): |
| Removed handling of UseDecision::NoDueToPrevalentResourceAgeCap. |
| |
| 2018-11-06 Per Arne Vollan <pvollan@apple.com> |
| |
| REGRESSION (r230523): Caps lock indicator not shown in password field |
| https://bugs.webkit.org/show_bug.cgi?id=190056 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Update cached modifier state in the WebProcess when WebKit::WebPage::keyEvent is called, and |
| when the window becomes active. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| (WebKit::WebPageProxy::updateCurrentModifierState): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::keyEvent): |
| (WebKit::WebPage::updateCurrentModifierState): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-11-06 Alex Christensen <achristensen@webkit.org> |
| |
| Add ObjC SPI equivalent of WKContextHandlesSafeBrowsing |
| https://bugs.webkit.org/show_bug.cgi?id=191329 |
| |
| Reviewed by Tim Horton. |
| |
| Like WKContextHandlesSafeBrowsing, this is so I can make one change in WebKit and enable safe browsing |
| in WKWebView and disable it in Safari at the same time without broken revisions between landing two changes |
| in two repositories. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (+[WKWebView handlesSafeBrowsing]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| 2018-11-06 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] User should not be prompted again after denying getDisplayMedia request |
| https://bugs.webkit.org/show_bug.cgi?id=191227 |
| <rdar://problem/45784512> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied): |
| (WebKit::UserMediaPermissionRequestManagerProxy::wasRequestDenied): |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| 2018-11-06 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [MediaStream] User should not be prompted again after denying getDisplayMedia request |
| https://bugs.webkit.org/show_bug.cgi?id=191227 |
| <rdar://problem/45784512> |
| |
| Unreviewed build fix of ports not ENABLE(MEDIA_STREAM). |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: Define getRequestAction only if ENABLE(MEDIA_STREAM). |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: Ditto. |
| |
| 2018-11-03 Alex Christensen <achristensen@webkit.org> |
| |
| [Mac] Implement safe browsing in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=188871 |
| |
| Reviewed by Tim Horton. |
| |
| * Platform/spi/Cocoa/SafeBrowsingSPI.h: |
| * Resources/SafeBrowsing.xcassets: Added. |
| * Resources/SafeBrowsing.xcassets/Contents.json: Added. |
| * Resources/SafeBrowsing.xcassets/WKSafeBrowsingWarningBackground.colorset: Added. |
| * Resources/SafeBrowsing.xcassets/WKSafeBrowsingWarningBackground.colorset/Contents.json: Added. |
| * Resources/SafeBrowsing.xcassets/WKSafeBrowsingWarningText.colorset: Added. |
| * Resources/SafeBrowsing.xcassets/WKSafeBrowsingWarningText.colorset/Contents.json: Added. |
| * Resources/SafeBrowsing.xcassets/WKSafeBrowsingWarningTitle.colorset: Added. |
| * Resources/SafeBrowsing.xcassets/WKSafeBrowsingWarningTitle.colorset/Contents.json: Added. |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/C/mac/WKContextPrivateMac.mm: |
| (WKContextHandlesSafeBrowsing): |
| * UIProcess/Cocoa/SafeBrowsingResultCocoa.mm: |
| (WebKit::malwareDetailsBase): |
| (WebKit::learnMore): |
| (WebKit::reportAnErrorBase): |
| (WebKit::localizedProvider): |
| (WebKit::SafeBrowsingResult::SafeBrowsingResult): |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.h: Added. |
| * UIProcess/Cocoa/WKSafeBrowsingWarning.mm: Added. |
| (confirmMalwareSentinel): |
| (visitUnsafeWebsiteSentinel): |
| (colorNamed): |
| (replace): |
| (addLinkAndReplace): |
| (-[WKSafeBrowsingExclamationPoint drawRect:]): |
| (-[WKSafeBrowsingExclamationPoint intrinsicContentSize]): |
| (reportAnErrorURL): |
| (malwareDetailsURL): |
| (titleText): |
| (warningText): |
| (detailsText): |
| (-[WKSafeBrowsingWarning initWithFrame:safeBrowsingResult:completionHandler:]): |
| (-[WKSafeBrowsingWarning dealloc]): |
| (-[WKSafeBrowsingWarning goBackClicked]): |
| (-[WKSafeBrowsingWarning clickedOnLink:]): |
| (-[WKSafeBrowsingWarning showDetailsClicked]): |
| (+[WKSafeBrowsingTextView viewWithAttributedString:linkTarget:]): |
| (+[WKSafeBrowsingTextView viewWithString:]): |
| (-[WKSafeBrowsingTextView intrinsicContentSize]): |
| (-[WKSafeBrowsingTextView clickedOnLink:atIndex:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::showSafeBrowsingWarning): |
| (WebKit::WebViewImpl::clearSafeBrowsingWarning): |
| (WebKit::WebViewImpl::setFrameSize): |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::showSafeBrowsingWarning): |
| (WebKit::PageClient::clearSafeBrowsingWarning): |
| * UIProcess/SafeBrowsingResult.h: |
| (WebKit::SafeBrowsingResult::url const): |
| (WebKit::SafeBrowsingResult::provider const): |
| (WebKit::SafeBrowsingResult::localizedProviderName const): |
| (WebKit::SafeBrowsingResult::malwareDetailsURLBase const): |
| (WebKit::SafeBrowsingResult::reportAnErrorURLBase const): |
| (WebKit::SafeBrowsingResult::learnMoreURL const): |
| (WebKit::SafeBrowsingResult::needsSafeBrowsingWarning const): |
| (WebKit::SafeBrowsingResult::isKnownToBeUnsafe const): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::showSafeBrowsingWarning): |
| (WebKit::PageClientImpl::clearSafeBrowsingWarning): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::setImpl): |
| (WebKit::PageClientImpl::showSafeBrowsingWarning): |
| (WebKit::PageClientImpl::clearSafeBrowsingWarning): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-11-05 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WPE] Remove BackingStore, BackingStoreCairo implementation files from build |
| https://bugs.webkit.org/show_bug.cgi?id=191269 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * SourcesWPE.txt: Drop the BackingStore.cpp and BackingStoreCairo.cpp |
| files from the WPE build. These are not used at all in WPE configuration |
| as they are only used by the GTK+ port for non-AC functionality. |
| |
| 2018-11-05 Chris Dumez <cdumez@apple.com> |
| |
| Use same limit for page cache and suspended pages |
| https://bugs.webkit.org/show_bug.cgi?id=191266 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Use same limit for page cache and suspended pages as they serve the same purpose. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _maximumSuspendedPageCount]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::updateMaxSuspendedPageCount): |
| (WebKit::WebProcessPool::setCacheModel): |
| (WebKit::WebProcessPool::addSuspendedPageProxy): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-11-05 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Allow WKWebView clients to customize bar button item groups in the accessory view when editing |
| https://bugs.webkit.org/show_bug.cgi?id=191240 |
| <rdar://problem/44872806> |
| |
| Reviewed by Tim Horton. |
| |
| Allow WKWebView clients to override WKContentView's default input assistant item by plumbing the call to |
| `-inputAssistantItem` through `-[WKWebView inputAssistantItem]`, such that if a client asks WKWebView for its |
| input assistant item and changes its leading or trailing bar button groups, the changes will be reflected by |
| WKContentView; additionally, this allows clients to achieve the same effect by overriding `-inputAssistantItem` |
| on WKWebView. |
| |
| Test: KeyboardInputTests.ModifyInputAssistantItemBarButtonGroups |
| KeyboardInputTests.OverrideInputAssistantItemBarButtonGroups |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView inputAssistantItem]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView inputAssistantItem]): |
| |
| Route the call to `[super inputAssistantItem]` through `-[WKWebView inputAssistantItem]`, so that the input |
| assistant item may be overridden via WKWebView. |
| |
| (-[WKContentView inputAssistantItemForWebView]): |
| |
| 2018-11-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r237785. |
| |
| Introduced layout test and API test failures on macOS and iOS. |
| |
| Reverted changeset: |
| |
| "[iOS] Issue initial paint soon after the visuallyNonEmpty |
| milestone is fired." |
| https://bugs.webkit.org/show_bug.cgi?id=191078 |
| https://trac.webkit.org/changeset/237785 |
| |
| 2018-11-05 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r237784 and r237788. |
| https://bugs.webkit.org/show_bug.cgi?id=191270 |
| |
| Caused mediastream layout test failures (Requested by |
| ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "[MediaStream] User should not be prompted again after denying |
| getDisplayMedia request" |
| https://bugs.webkit.org/show_bug.cgi?id=191227 |
| https://trac.webkit.org/changeset/237784 |
| |
| "[MediaStream] User should not be prompted again after denying |
| getDisplayMedia request" |
| https://bugs.webkit.org/show_bug.cgi?id=191227 |
| https://trac.webkit.org/changeset/237788 |
| |
| 2018-11-04 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [MediaStream] User should not be prompted again after denying getDisplayMedia request |
| https://bugs.webkit.org/show_bug.cgi?id=191227 |
| <rdar://problem/45784512> |
| |
| Unreviewed build fix of ports not ENABLE(MEDIA_STREAM). |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: Define getRequestAction only if ENABLE(MEDIA_STREAM). |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: Ditto. |
| |
| 2018-11-04 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS] Issue initial paint soon after the visuallyNonEmpty milestone is fired. |
| https://bugs.webkit.org/show_bug.cgi?id=191078 |
| <rdar://problem/45736178> |
| |
| Reviewed by Antti Koivisto. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::layerFlushThrottlingIsActive const): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::scheduleInitialDeferredPaint): |
| * WebProcess/WebPage/AcceleratedDrawingArea.h: |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::layerFlushThrottlingIsActive const): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): |
| (WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen): |
| (WebKit::RemoteLayerTreeDrawingArea::initialDeferredPaint): |
| (WebKit::RemoteLayerTreeDrawingArea::scheduleInitialDeferredPaint): |
| (WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush): |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::scheduleInitialDeferredPaint): |
| |
| 2018-11-04 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] User should not be prompted again after denying getDisplayMedia request |
| https://bugs.webkit.org/show_bug.cgi?id=191227 |
| <rdar://problem/45784512> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::userMediaAccessWasDenied): |
| (WebKit::UserMediaPermissionRequestManagerProxy::wasRequestDenied): |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| |
| 2018-11-03 Alex Christensen <achristensen@webkit.org> |
| |
| Mac production builds should sign the network process xpc service with entitlements |
| https://bugs.webkit.org/show_bug.cgi?id=191209 |
| <rdar://problem/45377609> |
| |
| Reviewed by Geoff Garen. |
| |
| * Configurations/Network-OSX.entitlements: Copied from Configurations/Network-OSX-sandbox.entitlements. |
| * Configurations/NetworkService.xcconfig: |
| Set CODE_SIGN_ENTITLEMENTS_COCOA_TOUCH_NO like we do for the web process, |
| except with the corresponoding network process entitlements file. |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _networkProcessHasEntitlementForTesting:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::networkProcessHasEntitlementForTesting): |
| * UIProcess/WebProcessPool.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| Add infrastructure to test that the network process actually has an entitlement. |
| |
| 2018-11-03 Philippe Normand <pnormand@igalia.com> |
| |
| [WPE] Add the WebKitVersion.h header |
| https://bugs.webkit.org/show_bug.cgi?id=191015 |
| <rdar://problem/45647211> |
| |
| Reviewed by Michael Catanzaro. |
| |
| * PlatformWPE.cmake: Install the generated header as well. |
| |
| 2018-11-02 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed, rolling out r237761. |
| |
| Makes most API tests timeout and WK2 tests crash |
| |
| Reverted changeset: |
| |
| "Mac production builds should sign the network process xpc |
| service with entitlements" |
| https://bugs.webkit.org/show_bug.cgi?id=191209 |
| https://trac.webkit.org/changeset/237761 |
| |
| 2018-11-02 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, attempt to fix the build with recent SDKs. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: |
| (WebKit::XPCServiceExit): |
| |
| 2018-11-02 Alex Christensen <achristensen@webkit.org> |
| |
| Mac production builds should sign the network process xpc service with entitlements |
| https://bugs.webkit.org/show_bug.cgi?id=191209 |
| <rdar://problem/45377609> |
| |
| Reviewed by Geoff Garen. |
| |
| * Configurations/NetworkService.xcconfig: |
| Set CODE_SIGN_ENTITLEMENTS_COCOA_TOUCH_NO like we do for the web process, |
| except with the corresponoding network process entitlements file. |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _networkProcessHasEntitlementForTesting:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::networkProcessHasEntitlementForTesting): |
| * UIProcess/WebProcessPool.h: |
| Add infrastructure to test that the network process actually has an entitlement. |
| |
| 2018-11-02 Daniel Bates <dabates@apple.com> |
| |
| [iOS] WebKit should dispatch DOM events when a modifier key is pressed |
| https://bugs.webkit.org/show_bug.cgi?id=190487 |
| |
| Reviewed by Tim Horton. |
| |
| Add support for modifier flags change events dispatched by UIKit. |
| |
| * Shared/ios/WebIOSEventFactory.mm: |
| (modifiersForEvent): Update for renamed enumerations. |
| (WebIOSEventFactory::createWebKeyboardEvent): Modifier keys do not have an associated |
| character and do not participate in key repeat. |
| * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): Update for renamed enumerations. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _interpretKeyEvent:isCharEvent:]): Return NO if the event represents a |
| modifier flags change to allow the default handling. |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]): Update for renamed enumerations. |
| |
| 2018-11-02 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Reuse SuspendedPages' process when possible, for performance |
| https://bugs.webkit.org/show_bug.cgi?id=191166 |
| |
| Reviewed by Geoffrey Garen. |
| |
| When process-swapping check if there is an existing SuspendedPage for the domain we're going to. |
| If there is, use this SuspendedPage's process for the navigation instead of a fresh new process. |
| This change should be beneficial for performance as it: |
| - Avoids spinning up a new process (CPU & memory cost) |
| - Likely better leverages caches since this process already loaded this domain in the past |
| |
| Due to current limitations, using a SuspendedPage's proxy may consume the SuspendedPage, which |
| means that it can no longer be used for PageCache on history navigations. We need to do this when |
| the SuspendedPageProxy in question was created for the current WebPageProxy because: |
| - This SuspendedPageProxy's process already has a suspended WebPage with this WebPageProxy's pageID |
| and |
| - We do not currently support having more than one WebPage with a given pageID within a single |
| WebProcess. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| 2018-11-01 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h |
| https://bugs.webkit.org/show_bug.cgi?id=189693 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * Shared/API/APIString.h: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>. |
| |
| 2018-11-01 Daniel Bates <dabates@apple.com> |
| |
| Cleanup: Extraneous platform guarding of -_setUpSQLiteDatabaseTrackerClient |
| https://bugs.webkit.org/show_bug.cgi?id=191124 |
| |
| Reviewed by Tim Horton. |
| |
| Remove the platform guard around the call to -_setUpSQLiteDatabaseTrackerClient as the |
| implementation of that message is already guarded. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _initializeWithConfiguration:]): |
| |
| 2018-11-01 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, attempt to fix the build with recent SDKs. |
| |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| (WebKit::XPCServiceInitializer): |
| |
| 2018-11-01 Sihui Liu <sihui_liu@apple.com> |
| |
| Add a storage limit for IndexedDB |
| https://bugs.webkit.org/show_bug.cgi?id=190598 |
| <rdar://problem/44654715> |
| |
| Reviewed by Chris Dumez. |
| |
| Add SPI for testing. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| (WebKit::NetworkProcess::idbServer): |
| (WebKit::NetworkProcess::setIDBPerOriginQuota): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextSetIDBPerOriginQuota): |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::setIDBPerOriginQuota): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-11-01 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] WebPageProxy::receivedNavigationPolicyDecision() should not schedule the new load asynchronously when process-swapping |
| https://bugs.webkit.org/show_bug.cgi?id=191076 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WebPageProxy::receivedNavigationPolicyDecision() should not schedule the new load asynchronously when process-swapping. |
| The client can request a new load synchronously after answering the policy decision, in which case we'd end up loading |
| the wrong URL. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-11-01 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Unable to submit a file in FormData cross-site |
| https://bugs.webkit.org/show_bug.cgi?id=191138 |
| |
| Reviewed by Alex Christensen. |
| |
| When PSON is enabled, we are unable to submit a file in FormData cross-site. Although we encode the |
| request body over IPC since r237639, we're missing the right sandbox extensions for its to work for |
| files. |
| |
| Update FormDataReference encoder to pass along the necessary sandbox extensions for files in the |
| FormData, and have its decoder consume those extensions so that the recipient has access to those |
| files. Also update LoadParameters's IPC encoder / decoder to encoder an IPC::FormDataReference |
| (which encodes both FormData and sandbox extensions) instead of a FormData. |
| |
| * Platform/IPC/FormDataReference.h: |
| (IPC::FormDataReference::encode const): |
| (IPC::FormDataReference::decode): |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| |
| 2018-11-01 Claudio Saavedra <csaavedra@igalia.com> |
| |
| ERROR: ResourceLoadStatisticsPersistentStorage: Unable to delete statistics file |
| https://bugs.webkit.org/show_bug.cgi?id=191152 |
| |
| Reviewed by Chris Dumez. |
| |
| The statistics file is not created unconditionally, so |
| make sure it exists before logging an error. |
| |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::clear): |
| Check that the file exists before logging an error. |
| |
| 2018-11-01 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [GLIB] Silent a build warning when not using Wayland |
| |
| Unreviewed. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| |
| 2018-11-01 Frederic Wang <fwang@igalia.com> |
| |
| [WebAuthN] Make AuthenticatorManager |
| https://bugs.webkit.org/show_bug.cgi?id=189279 |
| |
| Unreviewed build fix. |
| |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.h: Add missing headers. |
| |
| 2018-10-31 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| API test WKAttachmentTests.CopyAndPasteBetweenWebViews fails on macOS 10.13 |
| https://bugs.webkit.org/show_bug.cgi?id=191114 |
| <rdar://problem/45700410> |
| |
| Reviewed by Dean Jackson. |
| |
| Followup to r237648: also make sure that we insecurely unarchive NSFileWrapper on platforms that don't support |
| secure archiving of file wrappers. |
| |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::updateFromSerializedRepresentation): |
| |
| 2018-10-31 Dean Jackson <dino@apple.com> |
| |
| Forward original fragment identifier into System Preview |
| https://bugs.webkit.org/show_bug.cgi?id=191141 |
| <rdar://problem/45717542> |
| |
| Reviewed by Wenson Hsieh. |
| |
| If the URL used by the page includes a fragment identifier, use |
| it when telling QuickLook to open a local file. |
| |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didFinish): Append original fragment identifier |
| to the destination URL. |
| |
| 2018-10-31 Zalan Bujtas <zalan@apple.com> |
| |
| [iOS] Do not paint tap highlight unless it is above a certain threshold |
| https://bugs.webkit.org/show_bug.cgi?id=191134 |
| <rdar://problem/43615142> |
| |
| Flashing a large portion of the screen on every tap looks unpleasant. |
| This patch impoves the existing heuristic by adding area check and a % threshold. |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showTapHighlight]): |
| (highlightedQuadsAreSmallerThanRect): Deleted. |
| |
| 2018-10-31 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| API test WKAttachmentTests.CopyAndPasteBetweenWebViews fails on macOS 10.13 |
| https://bugs.webkit.org/show_bug.cgi?id=191114 |
| <rdar://problem/45700410> |
| |
| Reviewed by Dean Jackson. |
| |
| On macOS 10.12, we don't attempt secure archival at all because SECURE_ARCHIVER_API is turned off, and on macOS |
| 10.14, NSFileWrapper supports secure coding. However, on macOS 10.13, SECURE_ARCHIVER_API is on despite |
| NSFileWrapper not being securely codable, so we're unable to serialize attachment data. |
| |
| To fix this, we only use the secure archiver on ≥ macOS 10.14 and ≥ iOS 12. |
| |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::createSerializedRepresentation const): |
| |
| 2018-10-31 Zach Li <zacharyli323@gmail.com> |
| |
| Add credit card autofill button |
| https://bugs.webkit.org/show_bug.cgi?id=191051 |
| <rdar://problem/45657011> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: |
| (toAutoFillButtonType): |
| (toWKAutoFillButtonType): |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h: |
| Introduce a new button type for credit card autofill. |
| * WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: |
| (toAutoFillButtonType): |
| (toWKAutoFillButtonType): |
| * WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: |
| |
| 2018-10-31 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] When process-swapping for a POST request the HTTP body gets dropped |
| https://bugs.webkit.org/show_bug.cgi?id=191046 |
| <rdar://problem/45229732> |
| |
| Reviewed by Alex Christensen. |
| |
| For performance reasons, the ResourceRequest IPC encoder does not encode the request's HTTP body (aka form data). |
| When we decide to process-swap for a POST request in WebPageProxy::decidePolicyForNavigationAction(), the request |
| we pass the new WebProcess thus no longer has a HTTP body and the load will likely fail in the new process. |
| |
| To address the issue, we now pass the request body along with the request when sending the DecidePolicyForNavigationActionAsync |
| / DecidePolicyForNavigationActionSync IPC from the WebProcess to the UIProcess. No action is needed for the |
| LoadRequest IPC to the new WebProcess since the LoadParameters' IPC encoder takes care of encoding the request's |
| body already. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-10-31 Antti Koivisto <antti@apple.com> |
| |
| Stop using LayerFlushScheduler in WK2 |
| https://bugs.webkit.org/show_bug.cgi?id=191065 |
| |
| Reviewed by Tim Horton. |
| |
| Code gets more understandable when TiledCoreAnimationDrawingArea simply uses RunLoopObserver |
| directly for flush scheduling. LayerFlushScheduler can be later moved to WK1. |
| |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| (WebKit::TiledCoreAnimationDrawingArea::~TiledCoreAnimationDrawingArea): |
| (WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen): |
| (WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlush): |
| (WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition): |
| (WebKit::TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback): |
| (WebKit::TiledCoreAnimationDrawingArea::invalidateLayerFlushRunLoopObserver): |
| (WebKit::TiledCoreAnimationDrawingArea::scheduleLayerFlushRunLoopObserver): |
| |
| 2018-10-31 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE][GTK] Certificates loaded from the cache don't include the certificate chain |
| https://bugs.webkit.org/show_bug.cgi?id=190956 |
| |
| Reviewed by Youenn Fablet. |
| |
| Similarly to what was done for the IPC coders, serialize |
| the entire certificate chain in the cache coder. Bump |
| the cache version due to the caching format changes. |
| |
| * NetworkProcess/cache/NetworkCacheCoders.h: Add GRefPtr<GByteArray> coders. |
| * NetworkProcess/cache/NetworkCacheCodersSoup.cpp: |
| (WTF::Persistence::certificatesDataListFromCertificateInfo): |
| (WTF::Persistence::certificateFromCertificatesDataList): Helpers. |
| (WTF::Persistence::Coder<WebCore::CertificateInfo>::encode): |
| (WTF::Persistence::Coder<WebCore::CertificateInfo>::decode): |
| (WTF::Persistence::Coder<GRefPtr<GByteArray>>::encode): |
| (WTF::Persistence::Coder<GRefPtr<GByteArray>>::decode): |
| * NetworkProcess/cache/NetworkCacheStorage.h: Bump the cache version. |
| |
| 2018-10-30 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Attachment dropped from one web view to another is missing its file wrapper |
| https://bugs.webkit.org/show_bug.cgi?id=190530 |
| <rdar://problem/45232149> |
| |
| Reviewed by Tim Horton. |
| |
| See WebCore ChangeLog for more details. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<SerializedAttachmentData>::encode): |
| (IPC::ArgumentCoder<SerializedAttachmentData>::decode): |
| * Shared/WebCoreArgumentCoders.h: |
| |
| Add IPC encoding/decoding support for SerializedAttachmentData. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::createSerializedRepresentation const): |
| (API::Attachment::updateFromSerializedRepresentation): |
| * UIProcess/API/APIAttachment.h: |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::createSerializedRepresentation const): |
| |
| Add a method to serialize and return attachment info as a blob of data. |
| |
| (API::Attachment::updateFromSerializedRepresentation): |
| |
| Add a method to update the attachment, given a serialized blob of data. On Cocoa platforms, this fails |
| gracefully if the serialized data cannot be decoded. |
| |
| * UIProcess/Cocoa/PageClientImplCocoa.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::allocFileWrapperInstance const): |
| (WebKit::PageClientImplCocoa::serializableFileWrapperClasses const): |
| (WebKit::PageClientImplCocoa::allocFileWrapperInstance): Deleted. |
| |
| Add an additional hook to return the list of NSFileWrapper subclasses suitable for deserialization. This |
| array contains (at minimum) NSFileWrapper, but may additionally include a custom NSFileWrapper subclass, if |
| configured. |
| |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::allocFileWrapperInstance const): |
| (WebKit::PageClient::serializableFileWrapperClasses const): |
| (WebKit::PageClient::allocFileWrapperInstance): Deleted. |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::registerAttachmentsFromSerializedData): |
| |
| Registers the given serialized attachment data, creating new _WKAttachment instances if necessary. Currently, |
| this does not update the file wrappers of existing _WKAttachments; we should revisit this in the future to see |
| if we can additionally update file wrappers for existing attachments, without breaking the case where the user |
| copies and pastes or drags and drops attachments within a single web view and the client expects _WKAttachment |
| instances to be reused. |
| |
| (WebKit::WebPageProxy::serializedAttachmentDataForIdentifiers): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::registerAttachments): |
| (WebKit::WebEditorClient::serializedAttachmentDataForIdentifiers): |
| |
| Implement a new IPC hook to fetch an array of serialized attachment data blobs, given a list of attachment |
| identifiers. |
| |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| |
| 2018-10-30 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] View gesture snapshot gets taken down early when process-swapping |
| https://bugs.webkit.org/show_bug.cgi?id=191083 |
| <rdar://problem/45058738> |
| |
| Reviewed by Alex Christensen. |
| |
| When process-swapping, we would call WebViewImpl::processDidExit(), which would destroy |
| the ViewGestureController and thus take down the swipe navigation snapshot before it |
| should. We now call WebViewImpl::processDidSwap() instead, which does the same thing, |
| except for destroying the ViewGestureController. As a result, the view snapshot stays |
| visible as long as it is needed, even in case of process swap. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::handleProcessSwapOrExit): |
| (WebKit::WebViewImpl::processWillSwap): |
| (WebKit::WebViewImpl::processDidExit): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::processWillSwap): |
| |
| 2018-10-30 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] WebView renders with incorrect dimensions after back or forward |
| https://bugs.webkit.org/show_bug.cgi?id=191071 |
| <rdar://problem/45058950> |
| |
| Reviewed by Alex Christensen. |
| |
| Make sure WebPage::reinitializeWebPage() updates the page's dimensions if needed using the |
| WebPageCreationParameters it is provided. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| |
| 2018-10-30 Dewei Zhu <dewei_zhu@apple.com> |
| |
| Move 'ProcessSwapOnCrossSiteNavigationEnabled' to 'experimental' category. |
| https://bugs.webkit.org/show_bug.cgi?id=191049 |
| |
| Reviewed by Dean Jackson. |
| |
| Move the feature flag to experimental feature section. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-30 Alexey Proskuryakov <ap@apple.com> |
| |
| Enable InstallAPI for iOS unconditionally |
| https://bugs.webkit.org/show_bug.cgi?id=191043 |
| rdar://problem/32728423 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: Enabled it. Added NSURLDownloadSPI.h as an |
| excluded header - WebKit doesn't export NSURLDownload, so the definition |
| shouldn't be processed by InstallAPI. |
| |
| 2018-10-30 Alexey Proskuryakov <ap@apple.com> |
| |
| Clean up some obsolete MAX_ALLOWED macros |
| https://bugs.webkit.org/show_bug.cgi?id=190916 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded): |
| * Platform/spi/Cocoa/DeviceIdentitySPI.h: |
| * Platform/spi/ios/UIKitSPI.h: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (defaultCustomPasteboardDataEnabled): |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (WebKit::toPKPaymentRequest): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]): Deleted. |
| |
| 2018-10-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r237600 and r237604. |
| https://bugs.webkit.org/show_bug.cgi?id=191086 |
| |
| Breaks internal iOS builds (Requested by ryanhadd_ on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "Enable InstallAPI for iOS unconditionally" |
| https://bugs.webkit.org/show_bug.cgi?id=191043 |
| https://trac.webkit.org/changeset/237600 |
| |
| "Build fix attempt after enabling InstallAPI for iOS." |
| https://bugs.webkit.org/show_bug.cgi?id=191043 |
| https://trac.webkit.org/changeset/237604 |
| |
| 2018-10-30 Alexey Proskuryakov <ap@apple.com> |
| |
| Build fix attempt after enabling InstallAPI for iOS. |
| https://bugs.webkit.org/show_bug.cgi?id=191043 |
| rdar://problem/32728423 |
| |
| * Configurations/WebKit.xcconfig: Skip NSURLDownloadSPI.h here too. |
| |
| 2018-10-30 Alexey Proskuryakov <ap@apple.com> |
| |
| Enable InstallAPI for iOS unconditionally |
| https://bugs.webkit.org/show_bug.cgi?id=191043 |
| rdar://problem/32728423 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: Enabled it. |
| |
| 2018-10-30 Zan Dobersek <zdobersek@igalia.com> |
| |
| [CoordGraphics] CoordinatedLayerTreeHost::flushLayersAndForceRepaint() should schedule the flush |
| https://bugs.webkit.org/show_bug.cgi?id=191066 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::flushLayersAndForceRepaint): |
| Only schedule the layer flush in this call, don't perform it on the |
| spot. This avoids re-entry of the layer flushing process in cases when |
| the associated display refresh monitor is requested a callback during |
| the layout phase that's executed under the initial layer flush. |
| |
| 2018-10-29 Dewei Zhu <dewei_zhu@apple.com> |
| |
| Move 'ProcessSwapOnCrossSiteNavigationEnabled' to 'experimental' category. |
| https://bugs.webkit.org/show_bug.cgi?id=191049 |
| |
| Reviewed by Chris Dumez. |
| |
| Move 'ProcessSwapOnCrossSiteNavigationEnabled' from 'internal' to 'experimental' category. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-29 Youenn Fablet <youenn@apple.com> |
| |
| Handle MDNS resolution of candidates through libwebrtc directly |
| https://bugs.webkit.org/show_bug.cgi?id=190681 |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for AsyncResolver to resolve MDNS. |
| This basically reuse the code path used to resolve STUN server addresses. |
| Removed MDNS specific resolution. |
| Use existing CFHost resolution mechanism to do the actual resolution. |
| |
| Make sure that a resolver is kept alive while iterating through its clients when signaling done. |
| Some of its clients may indeed call Destroy() on the resolver during that iteration. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.messages.in: |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCResolver::Destroy): |
| (WebKit::LibWebRTCResolver::doDestroy): |
| (WebKit::LibWebRTCResolver::setResolvedAddress): |
| (WebKit::LibWebRTCResolver::setError): |
| (WebKit::LibWebRTCProvider::createPeerConnection): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: |
| * WebProcess/Network/webrtc/WebMDNSRegister.cpp: |
| * WebProcess/Network/webrtc/WebMDNSRegister.h: |
| * WebProcess/Network/webrtc/WebMDNSRegister.messages.in: |
| |
| 2018-10-29 Tim Horton <timothy_horton@apple.com> |
| |
| Modernize WebKit nibs and lprojs for localization's sake |
| https://bugs.webkit.org/show_bug.cgi?id=190911 |
| <rdar://problem/45349466> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Resources/WebContentProcess.xib: |
| * WebKit.xcodeproj/project.pbxproj: |
| * en.lproj/InfoPlist.strings: Renamed from Source/WebKit/English.lproj/InfoPlist.strings. |
| English->en |
| |
| 2018-10-29 Tim Horton <timothy_horton@apple.com> |
| |
| Make FindOptionsShowOverlay work on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=190551 |
| |
| Reviewed by Andy Estes. |
| |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::updateFindUIAfterPageScroll): |
| Update the find indicator after installing the page overlay for the find holes. |
| This ensures that if the find indicator mechanism also uses page overlays, |
| as it does on iOS, that they are installed in the correct order (because |
| order of installation directly affects z-order). |
| |
| (WebKit::FindController::findIndicatorRadius const): |
| (WebKit::FindController::shouldHideFindIndicatorOnScroll const): |
| Add two getters for design differences between find-in-page on iOS vs. other platforms. |
| |
| (WebKit::FindController::rectsForTextMatchesInRect): |
| Return FloatRects instead of IntRects for ease of use in the caller. |
| Don't clip rects for matches that intersect the current tile. We still |
| drop ones that don't intersect at all, but if they do intersect, we |
| provide the full rect (which may overlap a different tile), so that |
| e.g. border drawing will work correctly. |
| |
| (WebKit::FindController::drawRect): |
| Adopt shrink-wrapping for find holes. This has minimal impact on macOS, |
| where the holes don't have rounded corners, but on iOS this makes |
| overlapping or adjacent holes look great. We already do this for the indicator, |
| so it only makes sense to do the same for the holes. |
| |
| In order to support shrink-wrapping here, switch to using a Clear operator |
| with a path-fill instead of clearRect to clear out the holes. |
| |
| Avoid hiding the find indicator on scroll if the platform says not to. |
| |
| * WebProcess/WebPage/FindController.h: |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| (WebKit::FindController::findIndicatorRadius const): |
| (WebKit::FindController::shouldHideFindIndicatorOnScroll const): |
| Slightly adjust the find indicator's parameters to be compatible with having holes. |
| Reduce the horizontal margin by half a point so that it fits precisely in the hole. |
| Drop the "TightlyFitContent" text indicator parameter, because we want |
| rects that match the holes, and they do not tightly fit the content's height. |
| This matches macOS's behavior. |
| |
| 2018-10-29 Jer Noble <jer.noble@apple.com> |
| |
| CRASH in CoreGraphics: ERROR_CGDataProvider_BufferIsNotBigEnough |
| https://bugs.webkit.org/show_bug.cgi?id=190954 |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/cg/ShareableBitmapCG.cpp: |
| (WebKit::ShareableBitmap::makeCGImage): |
| |
| 2018-10-29 Youenn Fablet <youenn@apple.com> |
| |
| Guard H264 simulcast with a runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=191025 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-29 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] When Safari restores session state after launching, going back and forward does not swap processes |
| https://bugs.webkit.org/show_bug.cgi?id=190975 |
| <rdar://problem/45059256> |
| |
| Reviewed by Antti Koivisto. |
| |
| When deciding to process-swap or not on a history navigation, we normally check the BackForwardListItems' |
| process identifiers do check if they come from different WebProcesses or not. However, the check was invalid |
| in the case where the BackForwardListItems were restored by the client. After a session restore, the |
| items' process identifier is the UIProcess one. Therefore, we need to disable the BackForwardListItems' |
| process identifiers check if if the process identifier is the one of the UIProcess. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| 2018-10-29 Youenn Fablet <youenn@apple.com> |
| |
| [WebRTC] Enable VP8 by default |
| https://bugs.webkit.org/show_bug.cgi?id=190672 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-28 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WPE] Add the WebKitVersion.h header |
| https://bugs.webkit.org/show_bug.cgi?id=191015 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add the WebKitVersion.h API header for the WPE port. As with other |
| headers providing the GLib API, we have to provide a WPE-specific |
| version, but the implementation file can be shared with the GTK port, |
| and is moved under the UIProcess/API/glib/ directory accordingly. |
| |
| * PlatformWPE.cmake: |
| * SourcesWPE.txt: |
| * UIProcess/API/glib/WebKitVersion.cpp: Renamed from Source/WebKit/UIProcess/API/gtk/WebKitVersion.cpp. |
| * UIProcess/API/wpe/WebKitVersion.h.in: Added. |
| * UIProcess/API/wpe/webkit.h: |
| |
| 2018-10-26 Megan Gardner <megan_gardner@apple.com> |
| |
| Remove Unused WebSelectionAssistant |
| https://bugs.webkit.org/show_bug.cgi?id=190939 |
| |
| Reviewed by Tim Horton. |
| |
| We made webSelectionAssistant alwasys nil last year when we moved to using |
| the textSelectionAssistant for all text selection on the web. This patch merely |
| goes through and cleans out all the references to this object that is always nil. |
| No functionality should change. |
| |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _didExitStableState]): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView resignFirstResponderForWebView]): |
| (-[WKContentView _scrollingNodeScrollingWillBegin]): |
| (-[WKContentView _scrollingNodeScrollingDidEnd]): |
| (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): |
| (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): |
| (-[WKContentView _uiTextSelectionRects]): |
| (-[WKContentView _singleTapCommited:]): |
| (-[WKContentView _willStartScrollingOrZooming]): |
| (-[WKContentView _didEndScrollingOrZooming]): |
| (-[WKContentView _lookupForWebView:]): |
| (-[WKContentView _shareForWebView:]): |
| (-[WKContentView _addShortcutForWebView:]): |
| (-[WKContentView _showDictionary:]): |
| (selectionChangedWithGesture): |
| (selectionChangedWithTouch): |
| (-[WKContentView selectionInteractionAssistant]): |
| (-[WKContentView _stopAssistingNode]): |
| (-[WKContentView _updateChangedSelection:]): |
| (-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]): |
| (-[WKContentView _restoreCalloutBarIfNeeded]): |
| (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]): |
| (-[WKContentView webSelectionAssistant]): Deleted. |
| |
| 2018-10-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r237458. |
| https://bugs.webkit.org/show_bug.cgi?id=190973 |
| |
| broke internal iOS builds (Requested by zalan on #webkit). |
| |
| Reverted changeset: |
| |
| "Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI" |
| https://bugs.webkit.org/show_bug.cgi?id=190951 |
| https://trac.webkit.org/changeset/237458 |
| |
| 2018-10-26 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Only delay attaching drawingArea in case of process swap and drop DidCompletePageTransition IPC handshake |
| https://bugs.webkit.org/show_bug.cgi?id=190971 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Only delay attaching drawingArea in case of process swap and drop DidCompletePageTransition IPC handshake. |
| |
| Since r236257, the WebProcess would always delay attaching the drawing area when a new WebPage is created. The |
| WebProcess would send a DidCompletePageTransition IPC to the UIProcess when the page transition is complete and |
| the UIProcess would then send an IPC back to attach the drawing area. |
| |
| In the new design, WebPageCreationParameters contains a flag indicating if the WebPage should delay attaching |
| the drawing area or not. We only delay attaching in case of process swap and we've successfuly suspended the |
| previous page. Then when WebPage::didCompletePageTransition(), we stop sending the DidCompletePageTransition |
| IPC to the UIProcess and instead have the WebProcess attach the drawing area right away if we've delayed |
| attaching until then. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * UIProcess/DrawingAreaProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_shouldAttachDrawingAreaOnPageTransition): |
| (WebKit::WebPage::reinitializeWebPage): |
| (WebKit::WebPage::didCompletePageTransition): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| |
| 2018-10-26 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Avoid tearing down the drawing area when suspending a WebPage due to process-swap |
| https://bugs.webkit.org/show_bug.cgi?id=190879 |
| |
| Reviewed by Antti Koivisto. |
| |
| Avoid tearing down the drawing area when suspending a WebPage due to process-swap. We really only need to reset |
| the drawing area upon resuming the WebPage. There is no strict need to destroy the drawing area on suspension |
| and this has caused various crashes because code usually assumes we always have a drawing area. |
| |
| This patch also drops various drawing area null checks that were added to address PSON crashes. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess): Deleted. |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::didCompletePageTransition): |
| (WebKit::WebPageProxy::enterAcceleratedCompositingMode): |
| * UIProcess/WebPageProxy.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::invalidateContentsAndRootView): |
| (WebKit::WebChromeClient::invalidateContentsForSlowScroll): |
| (WebKit::WebChromeClient::contentsSizeChanged const): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: |
| (WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| (WebKit::WebPage::exitAcceleratedCompositingMode): |
| (WebKit::WebPage::setIsSuspended): |
| (WebKit::WebPage::tearDownDrawingAreaForSuspend): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-10-26 Antti Koivisto <antti@apple.com> |
| |
| Use random() instead of begin() to limit cache sizes |
| https://bugs.webkit.org/show_bug.cgi?id=190957 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::didCollectPrewarmInformation): |
| |
| 2018-10-26 Chris Dumez <cdumez@apple.com> |
| |
| Modernize / Simplify IPC::Connection::sendOutgoingMessage() |
| https://bugs.webkit.org/show_bug.cgi?id=190931 |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::Connection::sendOutgoingMessage): |
| |
| 2018-10-26 Jer Noble <jer.noble@apple.com> |
| |
| Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI |
| https://bugs.webkit.org/show_bug.cgi?id=190951 |
| <rdar://problem/45213065> |
| |
| Reviewed by Alex Christensen. |
| |
| Add an asyncronous reply request to VideoFullscreenManager. |
| |
| Drive-by fix: messages.py generates "WTFMove(*arg1, *arg2)" instead of "WTFMove(*arg1), WTFMove(*arg2)" |
| in its reply handler generation. |
| |
| * Platform/IPC/MessageSender.h: |
| (IPC::MessageSender::sendWithAsyncReply): |
| * Scripts/webkit/messages.py: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::requestRouteSharingPolicyAndContextUID): |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| * WebProcess/cocoa/VideoFullscreenManager.messages.in: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::requestRouteSharingPolicyAndContextUID): |
| |
| 2018-10-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, another try at fixing the GTK build with sandbox enabled |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::memfd_create): Deleted. |
| |
| 2018-10-25 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations CSS Integration off by default |
| https://bugs.webkit.org/show_bug.cgi?id=190901 |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-25 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, try to fix GTK build with sandbox enabled |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| |
| 2018-10-25 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE][GTK] Follow-up fixes to the certificate coders |
| https://bugs.webkit.org/show_bug.cgi?id=190900 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Cleanup the GRefPtr mess I created earlier. Also we now bail out |
| if any certificate in the chain has no data instead of returning a |
| cropped chain. |
| |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| (IPC::ArgumentCoder<CertificateInfo>::encode): |
| (IPC::ArgumentCoder<CertificateInfo>::decode): |
| |
| 2018-10-25 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK][AC] Resizing the window doesn't always update the visible rect |
| https://bugs.webkit.org/show_bug.cgi?id=189743 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Disassociate resizing that can be done on an AcceleratedSurface object |
| between "host resizes" and "client resizes". |
| |
| The former is done from ThreadedCoordinatedLayerTreeHost directly, and |
| is currently used only for GTK on X11, where a new pixmap object is |
| created on each resize, which affects the context ID that is based on |
| that pixmap object's address. |
| |
| The latter is done from the composition thread. It's used for GTK on |
| Wayland and WPE. In both cases, the underlying window object does not |
| change on each resize, but it's necessary to perform the actual resize |
| on the composition thread. |
| |
| So far it hasn't been performed there, which ended up pushing sizes of |
| the WebKit view and the underlying window object out of sync during |
| resizing, leaving parts of window unrendered. |
| |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp: |
| (WebKit::ThreadedCompositor::renderLayerTree): |
| * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: |
| * WebProcess/WebPage/AcceleratedSurface.cpp: |
| (WebKit::AcceleratedSurface::hostResize): |
| (WebKit::AcceleratedSurface::resize): Deleted. |
| * WebProcess/WebPage/AcceleratedSurface.h: |
| (WebKit::AcceleratedSurface::clientResize): |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp: |
| (WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): |
| (WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): |
| * WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h: |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp: |
| (WebKit::AcceleratedSurfaceWayland::clientResize): |
| (WebKit::AcceleratedSurfaceWayland::resize): Deleted. |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h: |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp: |
| (WebKit::AcceleratedSurfaceX11::hostResize): |
| (WebKit::AcceleratedSurfaceX11::resize): Deleted. |
| * WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h: |
| * WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp: |
| (WebKit::AcceleratedSurfaceWPE::clientResize): |
| (WebKit::AcceleratedSurfaceWPE::resize): Deleted. |
| * WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.h: |
| |
| 2018-10-24 Alexey Proskuryakov <ap@apple.com> |
| |
| Clean up some obsolete macOS version guards |
| https://bugs.webkit.org/show_bug.cgi?id=190887 |
| |
| Reviewed by Dan Bernstein. |
| |
| * PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| |
| 2018-10-24 Megan Gardner <megan_gardner@apple.com> |
| |
| Turn on Conic Gradients |
| https://bugs.webkit.org/show_bug.cgi?id=190810 |
| |
| Reviewed by Tim Horton. |
| |
| Remove conic gradients from experimental features and turn it on always. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-24 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Cleanup: MIMETypeRegistry functions |
| https://bugs.webkit.org/show_bug.cgi?id=190838 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| (-[WKWebViewContentProviderRegistry initWithConfiguration:]): |
| |
| 2018-10-24 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r237257): [iOS] Crashes in com.apple.WebKit: WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit |
| https://bugs.webkit.org/show_bug.cgi?id=190804 |
| |
| Reviewed by Alex Christensen. |
| |
| Fix null-dereference of the drawing area in RemoteScrollingCoordinator::scheduleTreeStateCommit. |
| With process-swap-on-navigation enabled, suspended pages' drawing area gets torn down. |
| |
| * WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: |
| (WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit): |
| |
| 2018-10-24 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE][GTK] Cleanups to the certificate decoder |
| https://bugs.webkit.org/show_bug.cgi?id=190867 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| (IPC::ArgumentCoder<CertificateInfo>::decode): |
| |
| 2018-10-24 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE][GTK] Cleanups to the certificate encoder |
| https://bugs.webkit.org/show_bug.cgi?id=190865 |
| |
| Reviewed by Žan Doberšek. |
| |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| (IPC::ArgumentCoder<CertificateInfo>::encode): |
| |
| 2018-10-23 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r237261. |
| |
| The layout test for this change crashes under GuardMalloc. |
| |
| Reverted changeset: |
| |
| "Handle MDNS resolution of candidates through libwebrtc |
| directly" |
| https://bugs.webkit.org/show_bug.cgi?id=190681 |
| https://trac.webkit.org/changeset/237261 |
| |
| 2018-10-23 David Kilzer <ddkilzer@apple.com> |
| |
| Fix false positive leaks when using custom -init methods that don't start with -init |
| <https://webkit.org/b/190818> |
| <rdar://problem/45476042> |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| (-[WKWebViewContentProvider web_initWithFrame:webView:mimeType:]): |
| Add attribute to make this behave like an -init method. |
| |
| 2018-10-23 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Add support for cross-site client-side redirects |
| https://bugs.webkit.org/show_bug.cgi?id=190806 |
| <rdar://problem/45047344> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * Shared/LoadParameters.cpp: |
| (WebKit::LoadParameters::encode const): |
| (WebKit::LoadParameters::decode): |
| * Shared/LoadParameters.h: |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::setLockHistory): |
| (API::Navigation::lockHistory const): |
| (API::Navigation::setLockBackForwardList): |
| (API::Navigation::lockBackForwardList const): |
| (API::Navigation::setClientRedirectSourceForHistory): |
| (API::Navigation::clientRedirectSourceForHistory const): |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::willPerformClientRedirect): |
| (API::NavigationClient::didPerformClientRedirect): |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::setNavigationDelegate): |
| (WebKit::NavigationState::NavigationClient::didPerformClientRedirect): |
| * UIProcess/FrameLoadState.h: |
| (WebKit::FrameLoadState::setURL): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadRequestWithNavigation): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::didPerformClientRedirect): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::loadRequest): |
| (WebKit::WebPage::setCurrentHistoryItemForReattach): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-10-23 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE][GTK] Pass full certificate chain in CertificateInfo coder |
| https://bugs.webkit.org/show_bug.cgi?id=190789 |
| |
| Reviewed by Michael Catanzaro. |
| |
| When the network process serializes certificate data to other |
| processes through the argument coders, the certificate chain, if |
| present, is lost. In practice this means that applications using |
| the public API to process certificate info have no details on the |
| certificate chain, other than the very basics included in the |
| certificate. Serialize the entire chain if available in the |
| certificate. |
| |
| * Shared/soup/WebCoreArgumentCodersSoup.cpp: |
| (IPC::ArgumentCoder<CertificateInfo>::encode): Encode the |
| certificate chain if present. |
| (IPC::ArgumentCoder<CertificateInfo>::decode): Decode the |
| entire certificate chain and rebuild it. |
| |
| 2018-10-22 Keith Rollin <krollin@apple.com> |
| |
| Use Location = "Relative to Build Products" rather than "Relative to Group" |
| https://bugs.webkit.org/show_bug.cgi?id=190781 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Almost all Derived Files are included in Xcode projects with the |
| Location attribute set to "Relative to Group". While this currently |
| works, the Derived Files can no longer be found when enabling XCBuild |
| (which has stricter requirements). Fix this by setting the Location |
| attribute to "Relative to Build Products". |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-10-22 Tim Horton <timothy_horton@apple.com> |
| |
| Don't waste time under -setupInteraction under -initWithFrame for unparented WKWebViews |
| https://bugs.webkit.org/show_bug.cgi?id=190801 |
| <rdar://problem/43674361> |
| |
| Reviewed by Megan Gardner. |
| |
| * UIProcess/ios/WKContentView.mm: |
| (-[WKContentView _commonInitializationWithProcessPool:configuration:]): |
| (-[WKContentView didMoveToWindow]): |
| Defer the first call to WKContentViewInteraction's -setupInteraction |
| until the view is parented. This avoids a few milliseconds of unnecessary |
| work for views that are never parented. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| Keep track of the current state of WKContentViewInteraction's gestures. |
| Use this to make it OK to call -setupInteraction multiple times. |
| |
| 2018-10-22 Chris Dumez <cdumez@apple.com> |
| |
| Deque's contains() and findIf() should be const |
| https://bugs.webkit.org/show_bug.cgi?id=190796 |
| |
| Reviewed by Antti Koivisto. |
| |
| Mark method as const now that Deque's implementation allows it to be. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::hasSuspendedPageProxyFor const): |
| (WebKit::WebProcessPool::hasSuspendedPageProxyFor): Deleted. |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-10-19 Brent Fulgham <bfulgham@apple.com> |
| |
| Allow WebContent process to check some file system features |
| https://bugs.webkit.org/show_bug.cgi?id=190768 |
| <rdar://problem/45377609> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| This patch unblocks some IOKit properties that are needed by lower level frameworks to make decisions |
| about how to efficiently use the file system. |
| |
| * WebProcess/com.apple.WebProcess.sb.in: |
| |
| 2018-10-19 Stephan Szabo <stephan.szabo@sony.com> |
| |
| [WinCairo] Search terms are not saved for <input type="search"> |
| https://bugs.webkit.org/show_bug.cgi?id=188174 |
| |
| Reviewed by Fujii Hironori. |
| |
| Add support for saving the search terms for <input |
| type="search"> to a SQLite database, replacing the |
| CF-based implementation for Windows and adding support |
| for non-legacy WebKit. |
| |
| * UIProcess/win/WebPageProxyWin.cpp: |
| (WebKit::WebPageProxy::saveRecentSearches): Use SQLite database |
| implementation in WebCore::SearchPopupMenuDB to save search |
| terms |
| (WebKit::WebPageProxy::loadRecentSearches): Use SQLite database |
| implementation in WebCore::SearchPopupMenuDB to load search |
| terms |
| |
| 2018-10-19 Alex Christensen <achristensen@webkit.org> |
| |
| WebDataListSuggestionsDropdown should use a WeakPtr |
| https://bugs.webkit.org/show_bug.cgi?id=190763 |
| <rdar://problem/45417449> |
| |
| Reviewed by Tim Horton. |
| |
| Nothing suspicious here. It's just good practice to not keep raw pointers that aren't reset when the object they point to are destroyed. |
| |
| * UIProcess/WebDataListSuggestionsDropdown.cpp: |
| (WebKit::WebDataListSuggestionsDropdown::WebDataListSuggestionsDropdown): |
| (WebKit::WebDataListSuggestionsDropdown::close): |
| * UIProcess/WebDataListSuggestionsDropdown.h: |
| (WebKit::WebDataListSuggestionsDropdown::Client::~Client): Deleted. |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WebDataListSuggestionsDropdownIOS.h: |
| * UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: |
| (WebKit::WebDataListSuggestionsDropdownIOS::create): |
| (WebKit::WebDataListSuggestionsDropdownIOS::WebDataListSuggestionsDropdownIOS): |
| (WebKit::WebDataListSuggestionsDropdownIOS::close): |
| (WebKit::WebDataListSuggestionsDropdownIOS::didSelectOption): |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.h: |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (WebKit::WebDataListSuggestionsDropdownMac::create): |
| (WebKit::WebDataListSuggestionsDropdownMac::WebDataListSuggestionsDropdownMac): |
| (WebKit::WebDataListSuggestionsDropdownMac::didSelectOption): |
| (WebKit::WebDataListSuggestionsDropdownMac::selectOption): |
| |
| 2018-10-19 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] [Datalist] Can't pick datalist suggestions in a stock WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=190621 |
| <rdar://problem/45310649> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by refactoring datalist suggestion information on iOS; currently, we override text suggestions on |
| _WKFormInputSession. This only works for a few internal clients (including Safari) that set a _WKInputDelegate |
| and also implement either -_webView:willStartInputSession: or -_webView:didStartInputSession:, which is |
| necessary in order to ensure that WebKit creates and maintains a form input session. |
| |
| The two pieces of information that datalist code needs to vend to WKContentView are a list of UITextSuggestions |
| and a custom input view, which are both currently properties of _WKFormInputSession. This patch lifts these out |
| of the input session and makes them properties of WKContentView, which are used in |
| WebDataListSuggestionsDropdownIOS. |
| |
| Test: fast/forms/datalist/datalist-textinput-suggestions-order.html |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| |
| Add new properties to WKContentView: an input view for datalist suggestions, and a list of text suggestions. |
| |
| (-[WKFormInputSession setSuggestions:]): |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView cleanupInteraction]): |
| (-[WKContentView _endEditing]): |
| |
| Pull out common logic when resigning first responder or tabbing to the next or previous text field into a new |
| helper. This helper notifies `_inputPeripheral`, `_formInputSession`, and `_dataListTextSuggestionsInputView` |
| when editing has ended; the input peripheral and suggestions input view use this chance to send the value of the |
| form control to the web process. |
| |
| (-[WKContentView resignFirstResponderForWebView]): |
| (-[WKContentView inputView]): |
| |
| If a custom input view is not set but we have an input view for a datalist's text suggestions, use the datalist |
| input view. |
| |
| (-[WKContentView accessoryTab:]): |
| (-[WKContentView _stopAssistingNode]): |
| |
| Clear datalist state on WKContentView. |
| |
| (-[WKContentView dataListTextSuggestionsInputView]): |
| (-[WKContentView dataListTextSuggestions]): |
| (-[WKContentView setDataListTextSuggestionsInputView:]): |
| (-[WKContentView setDataListTextSuggestions:]): |
| (-[WKContentView updateTextSuggestionsForInputDelegate]): |
| |
| Pull out logic for setting suggestions on UIKit's `inputDelegate` (i.e. UIKeyboardImpl). We now first consult |
| internally-vended text suggestions from _WKFormInputSession; if an internal client has not overridden our text |
| suggestions, then we simply use suggestions from the current datalist (if present). |
| |
| * UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: |
| (-[WKDataListSuggestionsPicker updateWithInformation:]): |
| (-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]): |
| (-[WKDataListSuggestionsPicker invalidate]): |
| (-[WKDataListSuggestionsPopover updateWithInformation:]): |
| (-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]): |
| (-[WKDataListSuggestionsPopover didSelectOptionAtIndex:]): |
| |
| Change all the places that currently manipulate WKContentView's form input session to directly set text |
| suggestions and the text suggestion input view on the content view instead. |
| |
| 2018-10-19 John Wilander <wilander@apple.com> |
| |
| Only cap lifetime of persistent cookies created client-side through document.cookie when resource load statistics is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=190687 |
| <rdar://problem/45349024> |
| |
| Reviewed by Alex Christensen. |
| |
| This patch adds the following: |
| - The WebProcessPool now tells the WebsiteDataStore when a network process has |
| been created. |
| - The WebsiteDataStore in turn tells the WebResourceLoadStatisticsStore when |
| a network process has been created. |
| - The WebResourceLoadStatisticsStore makes sure to update the network processes |
| with its cookie policy when it's notified that a network process has been |
| created. |
| |
| In addition, this patch changes the following: |
| - The ResourceLoadStatisticsMemoryStore no longer keeps track of which domains |
| it has told the network process to block cookies for. The reason is that |
| we cannot assume that there is only one network process so we should |
| always send complete blocking data. |
| - The ResourceLoadStatisticsMemoryStore's functions for communicating cookie |
| blocking state to the network process no longer take and forward the |
| "clear first" parameter. This is because complete data is sent every time |
| and thus the network process' set is always cleared on an update. |
| - Removes WebsiteDataStore::networkProcessDidCrash() and |
| WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset() since |
| the call site---WebProcessPool::ensureNetworkProcess()---now calls |
| WebsiteDataStore::didCreateNetworkProcess() after a network process |
| crash and the state sync for cookie blocking is triggered. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::updatePrevalentDomainsToBlockCookiesFor): |
| (WebKit::NetworkProcess::setShouldCapLifetimeForClientSideCookies): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor): |
| (WebKit::NetworkProcessProxy::setShouldCapLifetimeForClientSideCookies): |
| (WebKit::NetworkProcessProxy::didSetShouldCapLifetimeForClientSideCookies): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::clear): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking): |
| (WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlockingForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::clearBlockingStateForDomains): |
| (WebKit::ResourceLoadStatisticsMemoryStore::resetCookieBlockingState): Deleted. |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::didCreateNetworkProcess): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler): |
| (WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset): Deleted. |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor): |
| (WebKit::WebsiteDataStore::setShouldCapLifetimeForClientSideCookies): |
| (WebKit::WebsiteDataStore::didCreateNetworkProcess): |
| (WebKit::WebsiteDataStore::networkProcessDidCrash): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-10-19 Alex Christensen <achristensen@webkit.org> |
| |
| Rebase python tests. |
| |
| * Scripts/webkit/messages_unittest.py: |
| |
| 2018-10-19 Alex Christensen <achristensen@webkit.org> |
| |
| Rebase python tests. |
| |
| * Scripts/Makefile: |
| * Scripts/webkit/MessageReceiver-expected.cpp: |
| * Scripts/webkit/Messages-expected.h: |
| |
| 2018-10-19 Alex Christensen <achristensen@webkit.org> |
| |
| Mark LegacySync IPC messages |
| https://bugs.webkit.org/show_bug.cgi?id=190759 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: |
| * Platform/IPC/HandleMessage.h: |
| (IPC::handleMessageLegacySync): |
| * PluginProcess/PluginControllerProxy.messages.in: |
| * Scripts/webkit/messages.py: |
| * Shared/Plugins/NPObjectMessageReceiver.messages.in: |
| * UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| * UIProcess/Plugins/PluginProcessProxy.messages.in: |
| * UIProcess/WebFullScreenManagerProxy.messages.in: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * UIProcess/WebProcessPool.messages.in: |
| * UIProcess/WebProcessProxy.messages.in: |
| * UIProcess/WebStorage/StorageManager.messages.in: |
| * UIProcess/mac/SecItemShimProxy.messages.in: |
| * WebProcess/Plugins/PluginProcessConnection.messages.in: |
| * WebProcess/Plugins/PluginProxy.messages.in: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-10-19 Alex Christensen <achristensen@webkit.org> |
| |
| Update and add python tests after r237294 |
| https://bugs.webkit.org/show_bug.cgi?id=190746 |
| |
| * Scripts/Makefile: Added to help updating expectations. |
| * Scripts/webkit/LegacyMessageReceiver-expected.cpp: |
| * Scripts/webkit/MessageReceiverSuperclass-expected.cpp: |
| (Messages::WebPage::TestAsyncMessage::callReply): |
| (Messages::WebPage::TestAsyncMessage::cancelReply): |
| (Messages::WebPage::TestAsyncMessage::send): |
| (WebKit::WebPage::didReceiveMessage): |
| * Scripts/webkit/MessagesSuperclass-expected.h: |
| (Messages::WebPage::TestAsyncMessage::receiverName): |
| (Messages::WebPage::TestAsyncMessage::name): |
| (Messages::WebPage::TestAsyncMessage::asyncMessageReplyName): |
| (Messages::WebPage::TestAsyncMessage::TestAsyncMessage): |
| (Messages::WebPage::TestAsyncMessage::arguments const): |
| * Scripts/webkit/test-superclass-messages.in: |
| Adding the extra newline made python tests fail. |
| I also added more tests for the new functionality introduced in r237924. |
| |
| 2018-10-19 Alex Christensen <achristensen@webkit.org> |
| |
| Introduce CompletionHandler-based Async IPC messages with replies |
| https://bugs.webkit.org/show_bug.cgi?id=190746 |
| |
| Reviewed by Tim Horton. |
| |
| Before this patch, to make an asynchronous IPC message with a reply you had to find two objects that |
| can talk to each other, make two new message types, send a generated identifier, keep track of that |
| identifier, make a HashMap somewhere to store the object waiting for the response, and hook it all up. |
| What a mess. No wonder people take shortcuts and make strange design decisions. |
| |
| Now, you can just use a CompletionHandler and mark the reply as Async in *.messages.in. |
| I've adopted this with a message whose behavior is covered by the storage/indexeddb/modern/blob-cursor.html |
| layout test and many others. I intent to refine and further adopt this incrementally. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::getSandboxExtensionsForBlobFiles): |
| (WebKit::NetworkProcess::didGetSandboxExtensionsForBlobFiles): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| This is representative of how code will be simplified with greater adoption. |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::decode): |
| Modernize HandleArray decoding. |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::dispatchMessage): |
| (IPC::nextAsyncReplyHandlerID): |
| (IPC::asyncReplyHandlerMap): |
| Handle async replies when looking at incoming messages from the sending process. |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::sendWithAsyncReply): |
| Send a message with an async reply and prepare the reply receiver. |
| * Platform/IPC/Encoder.h: |
| Make the uint64_t encoder public so we can use it when encoding the listenerID. |
| * Platform/IPC/HandleMessage.h: |
| (IPC::handleMessageAsync): |
| Handle an asynchronous message with a reply from the receiving process. |
| This is similar to how DelayedReply messages are handled, but the listenerID is automatically captured and sent back. |
| * Scripts/webkit/messages.py: |
| Generate code for async message replies. |
| * Shared/Databases/IndexedDB/WebIDBResult.cpp: |
| (WebKit::WebIDBResult::decode): |
| * Shared/SandboxExtension.h: |
| (WebKit::SandboxExtension::HandleArray::at): |
| (WebKit::SandboxExtension::HandleArray::decode): |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/mac/SandboxExtensionMac.mm: |
| (WebKit::SandboxExtension::HandleArray::decode): |
| Modernize the decoding of HandleArray to work with generated decoding. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getSandboxExtensionsForBlobFiles): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| This is also representative of how code will be simplified with greater adoption. |
| * WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp: |
| (WebKit::MediaDeviceSandboxExtensions::decode): |
| Modernize HandleArray decoding. |
| |
| 2018-10-19 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] WebPageProxy::didCompletePageTransition() may interact with a SuspendedPageProxy from a previous navigation |
| https://bugs.webkit.org/show_bug.cgi?id=190717 |
| |
| Reviewed by Antti Koivisto. |
| |
| WebPageProxy::didCompletePageTransition() may interact with a SuspendedPageProxy from a previous navigation. We need |
| to reset m_lastSuspendedPage whenever the page starts a new navigation as m_lastSuspendedPage is only updated when |
| we process-swap otherwise. |
| |
| Also rename the data member to m_pageSuspendedDueToCurrentNavigation for clarity. |
| |
| In a follow-up, I will see if I can get rid of this data member entirely or maybe move it to the Navigation |
| object. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::didCompletePageTransition): |
| (WebKit::WebPageProxy::enterAcceleratedCompositingMode): |
| |
| 2018-10-18 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow ports to optionally do screen capture in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=190728 |
| <rdar://problem/45376824> |
| |
| Reviewed by Jer Noble and Tim Horton. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): Encode shouldCaptureDisplayInUIProcess. |
| (WebKit::WebProcessCreationParameters::decode): Decode shouldCaptureDisplayInUIProcess. |
| * Shared/WebProcessCreationParameters.h: |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): Copy shouldCaptureDisplayInUIProcess. |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::SourceProxy::remoteVideoSampleAvailable): |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): Remove |
| RealtimeMediaSource::Type parameter, CaptureDevice has the same information. Deal with display |
| capture "devices". |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): Copy shouldCaptureDisplayInUIProcess. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::Source): Only allocate a ring buffer for Audio sources. |
| (WebKit::UserMediaCaptureManager::Source::~Source): Same for deallocate. |
| (WebKit::UserMediaCaptureManager::Source::storage): m_ringBuffer is a pointer. |
| (WebKit::UserMediaCaptureManager::Source::setStorage): Ditto. |
| (WebKit::UserMediaCaptureManager::Source::setRingBufferFrameBounds): Ditto. |
| (WebKit::UserMediaCaptureManager::Source::audioSamplesAvailable): Ditto. |
| (WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable): Create a |
| PixelBuffer-backed media sample and call videoSampleAvailable. |
| (WebKit::UserMediaCaptureManager::~UserMediaCaptureManager): Clear the audio and display capture |
| factory overrides. |
| (WebKit::UserMediaCaptureManager::initialize): Set the audio and display capture factory overrides. |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| (WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| * WebProcess/cocoa/UserMediaCaptureManager.messages.in: |
| |
| 2018-10-18 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r237272. |
| |
| Broke on device iOS builds and Windows builds |
| |
| Reverted changeset: |
| |
| "[MediaStream] Allow ports to optionally do screen capture in |
| the UI process" |
| https://bugs.webkit.org/show_bug.cgi?id=190728 |
| https://trac.webkit.org/changeset/237272 |
| |
| 2018-10-18 Jer Noble <jer.noble@apple.com> |
| |
| Enable WKPreferences._lowPowerVideoAudioBufferSizeEnabled by default |
| https://bugs.webkit.org/show_bug.cgi?id=190315 |
| |
| Reviewed by Eric Carlson. |
| |
| This preference is disabled for WebKitLegacy because it can interact poorly with clients' own use of audio. |
| It can be enabled for WebKit since it will only affect the WebProcess and not the client process. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-18 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Allow ports to optionally do screen capture in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=190728 |
| <rdar://problem/45376824> |
| |
| Reviewed by Jer Noble and Tim Horton. |
| |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): Encode shouldCaptureDisplayInUIProcess. |
| (WebKit::WebProcessCreationParameters::decode): Decode shouldCaptureDisplayInUIProcess. |
| * Shared/WebProcessCreationParameters.h: |
| |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): Copy shouldCaptureDisplayInUIProcess. |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::SourceProxy::remoteVideoSampleAvailable): |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): Remove |
| RealtimeMediaSource::Type parameter, CaptureDevice has the same information. Deal with display |
| capture "devices". |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::initializeNewWebProcess): Copy shouldCaptureDisplayInUIProcess. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::Source): Only allocate a ring buffer for Audio sources. |
| (WebKit::UserMediaCaptureManager::Source::~Source): Same for deallocate. |
| (WebKit::UserMediaCaptureManager::Source::storage): m_ringBuffer is a pointer. |
| (WebKit::UserMediaCaptureManager::Source::setStorage): Ditto. |
| (WebKit::UserMediaCaptureManager::Source::setRingBufferFrameBounds): Ditto. |
| (WebKit::UserMediaCaptureManager::Source::audioSamplesAvailable): Ditto. |
| (WebKit::UserMediaCaptureManager::Source::remoteVideoSampleAvailable): Create a |
| PixelBuffer-backed media sample and call videoSampleAvailable. |
| (WebKit::UserMediaCaptureManager::~UserMediaCaptureManager): Clear the audio and display capture |
| factory overrides. |
| (WebKit::UserMediaCaptureManager::initialize): Set the audio and display capture factory overrides. |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| (WebKit::UserMediaCaptureManager::remoteVideoSampleAvailable): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| * WebProcess/cocoa/UserMediaCaptureManager.messages.in: |
| |
| 2018-10-18 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] SuspendedPages do not report meaningful domains in Activity Monitor |
| https://bugs.webkit.org/show_bug.cgi?id=190721 |
| <rdar://problem/45059699> |
| |
| Reviewed by Alex Christensen. |
| |
| SuspendedPages do not report meaningful domains in Activity Monitor, which makes |
| debugging harder. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::origin): |
| (WebKit::WebProcess::updateActivePages): |
| |
| 2018-10-18 Alexey Proskuryakov <ap@apple.com> |
| |
| Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY) |
| https://bugs.webkit.org/show_bug.cgi?id=190729 |
| |
| Reviewed by Tim Horton. |
| |
| * DerivedSources.make: |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::resume): |
| * NetworkProcess/NetworkActivityTracker.h: |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/cache/NetworkCacheFileSystem.cpp: |
| (WebKit::NetworkCache::isSafeToUseMemoryMapForPath): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::updateTaskWithFirstPartyForSameSiteCookies): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa): |
| (WebKit::NetworkProcess::sourceApplicationAuditData const): |
| (WebKit::NetworkProcess::platformSyncAllCookies): |
| * NetworkProcess/cocoa/NetworkSessionCocoa.h: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]): |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| * Platform/IPC/mac/ConnectionMac.mm: |
| (IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog): |
| (IPC::Connection::receiveSourceEventHandler): |
| (IPC::AccessibilityProcessSuspendedNotification): |
| * Platform/ios/AccessibilityIOS.mm: |
| * Platform/mac/LayerHostingContext.mm: |
| (WebKit::LayerHostingContext::createForExternalHostingProcess): |
| * Platform/spi/Cocoa/DeviceIdentitySPI.h: |
| * Platform/spi/ios/CelestialSPI.h: |
| * Platform/spi/ios/FrontBoardServicesSPI.h: |
| * PluginProcess/mac/PluginProcessShim.mm: |
| * Shared/API/Cocoa/WKDataDetectorTypesInternal.h: |
| * Shared/API/Cocoa/WebKit.m: |
| * Shared/AssistedNodeInformation.cpp: |
| * Shared/AssistedNodeInformation.h: |
| * Shared/CacheModel.cpp: |
| (WebKit::calculateURLCacheSizes): |
| * Shared/ChildProcess.cpp: |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * Shared/Cocoa/WebKit2InitializeCocoa.mm: |
| (WebKit::runInitializationCode): |
| * Shared/DrawingAreaInfo.h: |
| * Shared/EditorState.cpp: |
| (WebKit::EditorState::encode const): |
| (WebKit::EditorState::decode): |
| (WebKit::EditorState::PostLayoutData::encode const): |
| (WebKit::EditorState::PostLayoutData::decode): |
| (WebKit::operator<<): |
| * Shared/EditorState.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm: |
| (WebKit::XPCServiceInitializerDelegate::checkEntitlements): |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: |
| (WebKit::XPCServiceMain): |
| * Shared/NativeWebKeyboardEvent.h: |
| * Shared/NativeWebMouseEvent.h: |
| * Shared/NativeWebTouchEvent.h: |
| * Shared/PrintInfo.cpp: |
| (WebKit::PrintInfo::encode const): |
| (WebKit::PrintInfo::decode): |
| * Shared/PrintInfo.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.h: |
| * Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm: |
| (WebKit::RemoteLayerTreePropertyApplier::applyProperties): |
| * Shared/SessionState.cpp: |
| (WebKit::FrameState::encode const): |
| (WebKit::FrameState::decode): |
| * Shared/SessionState.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/WebEvent.h: |
| * Shared/WebEventConversion.cpp: |
| (WebKit::WebKit2PlatformTouchEvent::WebKit2PlatformTouchEvent): |
| * Shared/WebKeyboardEvent.cpp: |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| * Shared/WebPlatformTouchPoint.cpp: |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.cpp: |
| (defaultPassiveTouchListenersAsDefaultOnDocument): |
| (defaultCustomPasteboardDataEnabled): |
| * Shared/WebPreferencesDefaultValues.h: |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * Shared/WebTouchEvent.cpp: |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): |
| (IPC::decode): |
| * Shared/cf/ArgumentCodersCF.h: |
| * Shared/ios/ChildProcessIOS.mm: |
| * Shared/ios/InteractionInformationAtPosition.h: |
| * Shared/ios/InteractionInformationAtPosition.mm: |
| * Shared/ios/InteractionInformationRequest.cpp: |
| * Shared/ios/InteractionInformationRequest.h: |
| * Shared/ios/NativeWebKeyboardEventIOS.mm: |
| * Shared/ios/NativeWebMouseEventIOS.mm: |
| * Shared/ios/NativeWebTouchEventIOS.mm: |
| * Shared/ios/WebIOSEventFactory.h: |
| * Shared/ios/WebIOSEventFactory.mm: |
| * Shared/ios/WebIconUtilities.h: |
| * Shared/ios/WebIconUtilities.mm: |
| * Shared/mac/ArgumentCodersMac.h: |
| * Shared/mac/ArgumentCodersMac.mm: |
| * Shared/mac/SandboxExtensionMac.mm: |
| * Shared/mac/SecItemShim.cpp: |
| (WebKit::initializeSecItemShim): |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::copy const): |
| * UIProcess/API/APIPageConfiguration.h: |
| * UIProcess/API/APIProcessPoolConfiguration.cpp: |
| (API::ProcessPoolConfiguration::copy): |
| * UIProcess/API/APIProcessPoolConfiguration.h: |
| * UIProcess/API/APIUIClient.h: |
| * UIProcess/API/C/WKInspector.cpp: |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetIgnoresViewportScaleLimits): |
| * UIProcess/API/C/mac/WKContextPrivateMac.mm: |
| (WKContextIsPlugInUpdateAvailable): |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| * UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm: |
| (API::WebsiteDataStore::defaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultApplicationCacheDirectory): |
| (API::WebsiteDataStore::legacyDefaultJavaScriptConfigurationDirectory): |
| * UIProcess/API/Cocoa/WKNavigationAction.mm: |
| (-[WKNavigationAction description]): |
| * UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm: |
| * UIProcess/API/Cocoa/WKPreviewElementInfo.mm: |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (IGNORE_WARNINGS_BEGIN): |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _pluginProcessCount]): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (shouldRequireUserGestureToLoadVideo): |
| (validate): |
| (-[WKWebView _initializeWithConfiguration:]): |
| (-[WKWebView _setUpSQLiteDatabaseTrackerClient]): |
| (-[WKWebView dealloc]): |
| (-[WKWebView allowsLinkPreview]): |
| (-[WKWebView setAllowsLinkPreview:]): |
| (-[WKWebView _countStringMatches:options:maxCount:]): |
| (-[WKWebView _findString:options:maxCount:]): |
| (-[WKWebView _hideFindUI]): |
| (-[WKWebView _scrollPerformanceData]): |
| (-[WKWebView _allowsMediaDocumentInlinePlayback]): |
| (-[WKWebView _setAllowsMediaDocumentInlinePlayback:]): |
| (-[WKWebView _contentsOfUserInterfaceItem:]): |
| (-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]): |
| (-[WKWebView _doAfterNextVisibleContentRectUpdate:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration init]): |
| (-[WKWebViewConfiguration encodeWithCoder:]): |
| (-[WKWebViewConfiguration initWithCoder:]): |
| (-[WKWebViewConfiguration copyWithZone:]): |
| (defaultApplicationNameForUserAgent): |
| * UIProcess/API/Cocoa/WKWebViewConfigurationInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: |
| (-[_WKActivatedElementInfo _initWithType:URL:location:title:ID:rect:image:userInfo:]): |
| * UIProcess/API/Cocoa/_WKActivatedElementInfoInternal.h: |
| * UIProcess/API/Cocoa/_WKAttachment.mm: |
| * UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm: |
| * UIProcess/API/Cocoa/_WKElementAction.mm: |
| * UIProcess/API/Cocoa/_WKElementActionInternal.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm: |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: |
| * UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: |
| (-[WKPaymentAuthorizationViewControllerDelegate invalidate]): |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didAuthorizePayment:handler:]): |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:handler:]): |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:handler:]): |
| (-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:handler:]): |
| (WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard): |
| (WebKit::toPKPaymentRequest): |
| (WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession): |
| (WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection): |
| (WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection): |
| (WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection): |
| * UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: |
| * UIProcess/ApplicationStateTracker.h: |
| * UIProcess/ApplicationStateTracker.mm: |
| * UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm: |
| * UIProcess/Automation/ios/WebAutomationSessionIOS.mm: |
| * UIProcess/BackgroundProcessResponsivenessTimer.cpp: |
| (WebKit::BackgroundProcessResponsivenessTimer::shouldBeActive const): |
| * UIProcess/ChildProcessProxy.cpp: |
| (WebKit::ChildProcessProxy::shutDownProcess): |
| * UIProcess/Cocoa/DownloadClient.h: |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::takeActivityToken): |
| (WebKit::DownloadClient::releaseActivityTokenIfNecessary): |
| * UIProcess/Cocoa/LayerRepresentation.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationState): |
| (WebKit::NavigationState::didChangeIsLoading): |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): |
| * UIProcess/Cocoa/VersionChecks.h: |
| * UIProcess/Cocoa/VersionChecks.mm: |
| (WebKit::linkedOnOrAfter): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID): |
| (WebKit::VideoFullscreenManagerProxy::exitFullscreen): |
| (WebKit::VideoFullscreenManagerProxy::preparedToReturnToInline): |
| (WebKit::VideoFullscreenManagerProxy::setVideoLayerFrame): |
| * UIProcess/Cocoa/ViewGestureController.h: |
| * UIProcess/Cocoa/WKShareSheet.mm: |
| (-[WKShareSheet presentWithParameters:completionHandler:]): |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.h: |
| * UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| * UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions): |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| (WebKit::WebProcessPool::registerNotificationObservers): |
| (WebKit::WebProcessPool::unregisterNotificationObservers): |
| * UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm: |
| (WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider): |
| * UIProcess/Gamepad/ios/UIGamepadProviderIOS.mm: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::shouldLeakBoost): |
| (WebKit::systemDirectoryPath): |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didFinishLaunching): |
| * UIProcess/PageClient.h: |
| * UIProcess/ProcessAssertion.cpp: |
| * UIProcess/ProcessAssertion.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::~RemoteLayerTreeDrawingAreaProxy): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::indicatorLocation const): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateActivityState): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::clearLayers): |
| (WebKit::RemoteLayerTreeHost::detachRootLayer): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: |
| (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidScroll): |
| * UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: |
| (WebKit::RemoteScrollingTree::createScrollingTreeNode): |
| * UIProcess/RemoteLayerTree/RemoteScrollingTree.h: |
| * UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm: |
| * UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h: |
| * UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| * UIProcess/WKImagePreviewViewController.h: |
| * UIProcess/WKImagePreviewViewController.mm: |
| * UIProcess/WKInspectorHighlightView.h: |
| * UIProcess/WKInspectorHighlightView.mm: |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: |
| (WebKit::LocalAuthenticatorInternal::buildAuthData): |
| (WebKit::LocalAuthenticator::makeCredential): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested): |
| (WebKit::LocalAuthenticator::getAssertion): |
| (WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: |
| (WebKit::LocalConnection::getUserConsent const): |
| (WebKit::LocalConnection::getAttestation const): |
| * UIProcess/WebAuthentication/Cocoa/LocalService.mm: |
| (WebKit::LocalService::isAvailable): |
| * UIProcess/WebFullScreenManagerProxy.cpp: |
| (WebKit::WebFullScreenManagerProxy::supportsFullScreen): |
| * UIProcess/WebGeolocationManagerProxy.cpp: |
| * UIProcess/WebGeolocationManagerProxy.h: |
| * UIProcess/WebInspectorProxy.cpp: |
| * UIProcess/WebOpenPanelResultListenerProxy.cpp: |
| * UIProcess/WebOpenPanelResultListenerProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::viewDidLeaveWindow): |
| (WebKit::WebPageProxy::updateThrottleState): |
| (WebKit::WebPageProxy::waitForDidUpdateActivityState): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::exitFullscreenImmediately): |
| (WebKit::WebPageProxy::runJavaScriptAlert): |
| (WebKit::WebPageProxy::runJavaScriptConfirm): |
| (WebKit::WebPageProxy::runJavaScriptPrompt): |
| (WebKit::WebPageProxy::pageDidScroll): |
| (WebKit::WebPageProxy::processDidTerminate): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::requestGeolocationPermissionForFrame): |
| (WebKit::WebPageProxy::hasActiveVideoForControlsManager const): |
| (WebKit::WebPageProxy::requestControlledElementID const): |
| (WebKit::WebPageProxy::isPlayingVideoInEnhancedFullscreen const): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebPasteboardProxy.h: |
| * UIProcess/WebPasteboardProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::initializeNewWebProcess): |
| (WebKit::WebProcessPool::updateProcessAssertions): |
| (WebKit::WebProcessPool::reinstateNetworkProcessAssertionState): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::isMainThreadOrCheckDisabled): |
| (WebKit::WebProcessProxy::didFinishLaunching): |
| (WebKit::WebProcessProxy::didSetAssertionState): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp: |
| (WebKit::LocalStorageDatabaseTracker::databasePath const): |
| * UIProcess/WebStorage/LocalStorageDatabaseTracker.h: |
| * UIProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm: |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| * UIProcess/_WKWebViewPrintFormatter.mm: |
| * UIProcess/_WKWebViewPrintFormatterInternal.h: |
| * UIProcess/ios/DragDropInteractionState.h: |
| * UIProcess/ios/DragDropInteractionState.mm: |
| * UIProcess/ios/InputViewUpdateDeferrer.h: |
| * UIProcess/ios/InputViewUpdateDeferrer.mm: |
| * UIProcess/ios/LayerRepresentation.mm: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| * UIProcess/ios/ProcessAssertionIOS.mm: |
| * UIProcess/ios/ResourceLoadStatisticsPersistentStorageIOS.mm: |
| * UIProcess/ios/SmartMagnificationController.h: |
| * UIProcess/ios/SmartMagnificationController.messages.in: |
| * UIProcess/ios/SmartMagnificationController.mm: |
| * UIProcess/ios/TextCheckerIOS.mm: |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| * UIProcess/ios/WKActionSheet.h: |
| * UIProcess/ios/WKActionSheet.mm: |
| * UIProcess/ios/WKActionSheetAssistant.h: |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| * UIProcess/ios/WKApplicationStateTrackingView.h: |
| * UIProcess/ios/WKApplicationStateTrackingView.mm: |
| * UIProcess/ios/WKContentView.mm: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/ios/WKGeolocationProviderIOS.h: |
| * UIProcess/ios/WKGeolocationProviderIOS.mm: |
| * UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm: |
| * UIProcess/ios/WKInspectorNodeSearchGestureRecognizer.h: |
| * UIProcess/ios/WKInspectorNodeSearchGestureRecognizer.mm: |
| * UIProcess/ios/WKKeyboardScrollingAnimator.h: |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| * UIProcess/ios/WKPDFPageNumberIndicator.h: |
| * UIProcess/ios/WKPDFPageNumberIndicator.mm: |
| * UIProcess/ios/WKPasswordView.h: |
| * UIProcess/ios/WKPasswordView.mm: |
| * UIProcess/ios/WKScrollView.h: |
| * UIProcess/ios/WKScrollView.mm: |
| * UIProcess/ios/WKSyntheticClickTapGestureRecognizer.h: |
| * UIProcess/ios/WKSyntheticClickTapGestureRecognizer.m: |
| * UIProcess/ios/WKWebEvent.h: |
| * UIProcess/ios/WKWebEvent.mm: |
| * UIProcess/ios/WebDataListSuggestionsDropdownIOS.h: |
| * UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| * UIProcess/ios/WebProcessProxyIOS.mm: |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.h: |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| * UIProcess/ios/forms/WKFileUploadPanel.h: |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| * UIProcess/ios/forms/WKFormColorControl.h: |
| * UIProcess/ios/forms/WKFormColorControl.mm: |
| * UIProcess/ios/forms/WKFormColorPicker.h: |
| * UIProcess/ios/forms/WKFormColorPicker.mm: |
| * UIProcess/ios/forms/WKFormInputControl.h: |
| * UIProcess/ios/forms/WKFormInputControl.mm: |
| * UIProcess/ios/forms/WKFormPopover.h: |
| * UIProcess/ios/forms/WKFormPopover.mm: |
| * UIProcess/ios/forms/WKFormSelectControl.h: |
| * UIProcess/ios/forms/WKFormSelectControl.mm: |
| * UIProcess/ios/forms/WKFormSelectPicker.h: |
| * UIProcess/ios/forms/WKFormSelectPicker.mm: |
| * UIProcess/ios/forms/WKFormSelectPopover.h: |
| * UIProcess/ios/forms/WKFormSelectPopover.mm: |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.cpp: |
| * UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.h: |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h: |
| * UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.h: |
| * UIProcess/ios/fullscreen/WKFullscreenStackView.mm: |
| * UIProcess/mac/LegacySessionStateCoding.cpp: |
| (WebKit::encodeFrameStateNode): |
| (WebKit::decodeBackForwardTreeNode): |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| * UIProcess/mac/ViewSnapshotStore.mm: |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| * WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm: |
| (WebContentServiceInitializer): |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::videoControlsManagerDidChange): |
| (WebKit::WebFullScreenManager::willEnterFullScreen): |
| (WebKit::WebFullScreenManager::didEnterFullScreen): |
| (WebKit::WebFullScreenManager::willExitFullScreen): |
| * WebProcess/Geolocation/WebGeolocationManager.cpp: |
| * WebProcess/Geolocation/WebGeolocationManager.h: |
| * WebProcess/Geolocation/WebGeolocationManager.messages.in: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| * WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm: |
| * WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm: |
| (-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]): |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toFrameState): |
| (WebKit::applyFrameState): |
| * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::windowRect): |
| (WebKit::WebChromeClient::enterVideoFullscreenForVideoElement): |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDidLayout): |
| (WebKit::WebFrameLoaderClient::saveViewStateToItem): |
| (WebKit::WebFrameLoaderClient::restoreViewState): |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| (WebKit::WebFrameLoaderClient::objectContentType): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::highlight): |
| (WebKit::WebInspectorClient::hideHighlight): |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.h: |
| * WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm: |
| * WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm: |
| * WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| * WebProcess/WebPage/DrawingArea.cpp: |
| (WebKit::DrawingArea::create): |
| * WebProcess/WebPage/DrawingArea.h: |
| * WebProcess/WebPage/FindController.cpp: |
| (WebKit::FindController::findString): |
| * WebProcess/WebPage/FindController.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm: |
| (WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea): |
| (WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect): |
| * WebProcess/WebPage/ViewGestureGeometryCollector.cpp: |
| (WebKit::ViewGestureGeometryCollector::dispatchDidCollectGeometryForSmartMagnificationGesture): |
| (WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture): |
| (WebKit::ViewGestureGeometryCollector::mainFrameDidLayout): |
| * WebProcess/WebPage/ViewGestureGeometryCollector.h: |
| * WebProcess/WebPage/ViewGestureGeometryCollector.messages.in: |
| * WebProcess/WebPage/ViewUpdateDispatcher.cpp: |
| * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.h: |
| * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm: |
| * WebProcess/WebPage/WebFrame.h: |
| * WebProcess/WebPage/WebOpenPanelResultListener.cpp: |
| * WebProcess/WebPage/WebOpenPanelResultListener.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| (WebKit::WebPage::~WebPage): |
| (WebKit::WebPage::scalePage): |
| (WebKit::WebPage::setUseFixedLayout): |
| (WebKit::WebPage::disabledAdaptationsDidChange): |
| (WebKit::WebPage::viewportPropertiesDidChange): |
| (WebKit::WebPage::pageDidScroll): |
| (WebKit::WebPage::mouseEvent): |
| (WebKit::WebPage::updatePreferences): |
| (WebKit::WebPage::willCommitLayerTree): |
| (WebKit::WebPage::didFlushLayerTreeAtTime): |
| (WebKit::WebPage::mainFrameDidLayout): |
| (WebKit::WebPage::resetAssistedNodeForFrame): |
| (WebKit::WebPage::elementDidFocus): |
| (WebKit::WebPage::elementDidBlur): |
| (WebKit::WebPage::willReplaceMultipartContent): |
| (WebKit::WebPage::didReplaceMultipartContent): |
| (WebKit::WebPage::didCommitLoad): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/ios/FindControllerIOS.mm: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::updateScrolledExposedRect): |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::WebProcess): |
| (WebKit::WebProcess::initializeConnection): |
| (WebKit::WebProcess::initializeWebProcess): |
| (WebKit::WebProcess::actualPrepareToSuspend): |
| (WebKit::WebProcess::cancelPrepareToSuspend): |
| (WebKit::WebProcess::processDidResume): |
| * WebProcess/WebProcess.h: |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.messages.in: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| * WebProcess/cocoa/VideoFullscreenManager.messages.in: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::supportsVideoFullscreen const): |
| (WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const): |
| (WebKit::VideoFullscreenManager::didSetupFullscreen): |
| (WebKit::VideoFullscreenManager::didExitFullscreen): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::platformInitializeWebProcess): |
| (WebKit::WebProcess::initializeProcessName): |
| (WebKit::registerWithAccessibility): |
| (WebKit::WebProcess::sourceApplicationAuditData const): |
| (WebKit::WebProcess::initializeSandbox): |
| * WebProcess/mac/SecItemShimLibrary.mm: |
| * config.h: |
| |
| 2018-10-18 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up FrameLoader two-state enums |
| https://bugs.webkit.org/show_bug.cgi?id=190731 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Shared/WebCoreArgumentCoders.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::willPerformClientRedirectForFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-10-18 Youenn Fablet <youenn@apple.com> |
| |
| Handle MDNS resolution of candidates through libwebrtc directly |
| https://bugs.webkit.org/show_bug.cgi?id=190681 |
| |
| Reviewed by Eric Carlson. |
| |
| Add support for AsyncResolver to resolve MDNS. |
| This basically reuse the code path used to resolve STUN server addresses. |
| Removed MDNS specific resolution. |
| Use existing CFHost resolution mechanism to do the actual resolution. |
| |
| * NetworkProcess/webrtc/NetworkMDNSRegister.cpp: |
| (WebKit::NetworkMDNSRegister::registerMDNSName): |
| * NetworkProcess/webrtc/NetworkMDNSRegister.messages.in: |
| * WebProcess/Network/webrtc/LibWebRTCProvider.cpp: |
| (WebKit::LibWebRTCProvider::createPeerConnection): |
| * WebProcess/Network/webrtc/LibWebRTCProvider.h: |
| * WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: |
| * WebProcess/Network/webrtc/WebMDNSRegister.cpp: |
| * WebProcess/Network/webrtc/WebMDNSRegister.h: |
| * WebProcess/Network/webrtc/WebMDNSRegister.messages.in: |
| |
| 2018-10-18 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Cap number of SuspendedPageProxy objects and allow a WebPageProxy to have more than one |
| https://bugs.webkit.org/show_bug.cgi?id=190688 |
| <rdar://problem/45354095> |
| |
| Reviewed by Antti Koivisto. |
| |
| Cap number of SuspendedPageProxy objects to 3 to avoid accumulating too many "suspended" processes. |
| |
| Also allow a WebPageProxy to have more than one SuspendedPageProxy so that PageCache now works for |
| more than 1 history navigation (up to 3 with the suspended page limit in this patch). |
| |
| The following cleanup / refactoring was made to support this: |
| - The SuspendedPageProxy objects are now owned by the WebProcessPool instead of the WebPageProxy. |
| The WebProcessPool is in charge of limiting the number of SuspendedPageProxy objects by dropping |
| the oldest one whenever a WebPageProxy tries to add a new one and we've already reached the limit. |
| - WebProcessProxy no longer needs to know anything about suspended pages, which simplifies the |
| code quite a bit. Instead, the SuspendedPageProxy objects now register themselves as |
| IPC::MessageReceivers with their WebProcessProxy. The SuspendedPageProxy also take care of |
| calling maybeShutdown() on their WebProcessProxy when they get destroyed. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess): |
| (WebKit::SuspendedPageProxy::unsuspend): |
| (WebKit::SuspendedPageProxy::didFinishLoad): |
| (WebKit::SuspendedPageProxy::didReceiveSyncMessage): |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::suspendCurrentPageIfPossible): |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::didCompletePageTransition): |
| (WebKit::WebPageProxy::enterAcceleratedCompositingMode): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::disconnectProcess): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| (WebKit::WebProcessPool::addSuspendedPageProxy): |
| (WebKit::WebProcessPool::removeAllSuspendedPageProxiesForPage): |
| (WebKit::WebProcessPool::takeSuspendedPageProxy): |
| (WebKit::WebProcessPool::hasSuspendedPageProxyFor): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didReceiveMessage): |
| (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): |
| (WebKit::WebProcessProxy::canTerminateChildProcess): |
| (WebKit::WebProcessProxy::requestTermination): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-10-17 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Enable the datalist element by default on iOS and macOS |
| https://bugs.webkit.org/show_bug.cgi?id=190594 |
| <rdar://problem/45281159> |
| |
| Reviewed by Ryosuke Niwa and Tim Horton. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Platform/spi/ios/UIKitSPI.h: |
| |
| Add SPI to UITextSuggestion. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/mac/WebDataListSuggestionsDropdownMac.mm: |
| (-[WKDataListSuggestionCell setText:]): |
| (-[WKDataListSuggestionTable initWithElementRect:]): |
| |
| Fix the 32-bit macOS build with ENABLE(DATALIST_ELEMENT). |
| |
| 2018-10-17 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Increment the API version to 5 |
| https://bugs.webkit.org/show_bug.cgi?id=190686 |
| <rdar://problem/45348523> |
| |
| Reviewed by Simon Fraser. |
| |
| * WebProcess/ApplePay/WebPaymentCoordinator.cpp: |
| (WebKit::WebPaymentCoordinator::supportsVersion): |
| |
| 2018-10-17 Alex Christensen <achristensen@webkit.org> |
| |
| BackForwardClient needs to be able to support UIProcess-only back/forward lists |
| https://bugs.webkit.org/show_bug.cgi?id=190675 |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::itemAtIndex const): |
| (WebKit::WebBackForwardList::backListCount const): |
| (WebKit::WebBackForwardList::forwardListCount const): |
| * UIProcess/WebBackForwardList.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::backForwardBackListCount): |
| (WebKit::WebPageProxy::backForwardForwardListCount): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::itemAtIndex): |
| (WebKit::WebBackForwardListProxy::backListCount const): |
| (WebKit::WebBackForwardListProxy::forwardListCount const): |
| * WebProcess/WebPage/WebBackForwardListProxy.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::dumpHistoryForTesting): |
| |
| 2018-10-17 Ali Juma <ajuma@chromium.org> |
| |
| Flaky IntersectionObserver web platform tests involving style updates |
| https://bugs.webkit.org/show_bug.cgi?id=189091 |
| |
| Reviewed by Simon Fraser. |
| |
| Add a WebPage::willDisplayPage bottleneck that gets called when flushing layers |
| or, in the non-composited case, when rendering the page into a bitmap. |
| |
| * WebProcess/WebPage/AcceleratedDrawingArea.cpp: |
| (WebKit::AcceleratedDrawingArea::updateBackingStoreState): |
| * WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp: |
| (WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired): |
| * WebProcess/WebPage/DrawingAreaImpl.cpp: |
| (WebKit::DrawingAreaImpl::display): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::willDisplayPage): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::flushLayers): |
| |
| 2018-10-16 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Fix xdg-desktop-portal permissions from a sandbox |
| https://bugs.webkit.org/show_bug.cgi?id=190619 |
| |
| Reviewed by Michael Catanzaro. |
| |
| We have to generate a /.flatpak-info file for xdg-desktop-portal |
| to properly treat us as a sandboxed application. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::createSealedMemFdWithData): |
| (WebKit::argsToFd): |
| (WebKit::XDGDBusProxyLauncher::setPermissions): |
| (WebKit::createFlatpakInfo): |
| (WebKit::bubblewrapSpawn): |
| |
| 2018-10-16 Sihui Liu <sihui_liu@apple.com> |
| |
| Add a switch for Web SQL |
| https://bugs.webkit.org/show_bug.cgi?id=190271 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetWebSQLDisabled): |
| (WKPreferencesGetWebSQLDisabled): |
| * UIProcess/API/C/WKPreferencesRef.h: |
| |
| 2018-10-16 Alex Christensen <achristensen@webkit.org> |
| |
| Remove InjectedBundleBackForwardList |
| https://bugs.webkit.org/show_bug.cgi?id=190640 |
| |
| Reviewed by Chris Dumez. |
| |
| These objects are only used in testing now, so I made a replacement to be used for testing, |
| WKBundlePageDumpHistoryForTesting and WKBundleClearHistoryForTesting. |
| The existence of these objects is problematic with process swapping and the true back/forward list being in the UIProcess. |
| |
| * Sources.txt: |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.cpp: |
| (WKBundleBackForwardListGetTypeID): |
| (WKBundleBackForwardListCopyItemAtIndex): |
| (WKBundleBackForwardListGetBackListCount): |
| (WKBundleBackForwardListGetForwardListCount): |
| (WKBundleBackForwardListClear): |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardList.h: |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp: |
| (WKBundleBackForwardListItemGetTypeID): |
| (WKBundleBackForwardListItemIsSame): |
| (WKBundleBackForwardListItemCopyURL): |
| (WKBundleBackForwardListItemCopyTarget): |
| (WKBundleBackForwardListItemIsTargetItem): |
| (WKBundleBackForwardListItemCopyChildren): |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageDumpHistoryForTesting): |
| (WKBundleClearHistoryForTesting): |
| (WKBundlePageGetBackForwardList): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp: Removed. |
| * WebProcess/InjectedBundle/InjectedBundleBackForwardList.h: Removed. |
| * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp: Removed. |
| * WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.h: Removed. |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::~WebPage): |
| (WebKit::dumpHistoryItem): |
| (WebKit::WebPage::dumpHistoryForTesting): |
| (WebKit::WebPage::clearHistory): |
| (WebKit::WebPage::didReceiveSyncMessage): |
| (WebKit::WebPage::backForwardList): Deleted. |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-10-16 Timothy Hatcher <timothy@apple.com> |
| |
| Add <meta name="supported-color-schemes"> to control what color schemes the page supports |
| https://bugs.webkit.org/show_bug.cgi?id=190526 |
| rdar://problem/45230140 |
| |
| Reviewed by Dean Jackson. |
| |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView drawRect:]): Update use of LocalDefaultSystemAppearance. |
| * WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp: |
| (WebKit::InjectedBundleRangeHandle::renderedImage): Ditto. |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::paintControlForLayerInContext): Ditto. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::drawRect): Ditto. |
| |
| 2018-10-16 Justin Michaud <justin_michaud@apple.com> |
| |
| Implement feature flag and bindings for CSS Painting API |
| https://bugs.webkit.org/show_bug.cgi?id=190237 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-10-16 Philippe Normand <pnormand@igalia.com> |
| |
| [GLib] Build error with RemoteInspector disabled |
| https://bugs.webkit.org/show_bug.cgi?id=190623 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Compilation guards added to ensure the build still works when the |
| Remote WebInspector has been disabled. |
| |
| * UIProcess/API/glib/WebKitAutomationSession.cpp: |
| * UIProcess/API/glib/WebKitAutomationSessionPrivate.h: |
| * UIProcess/RemoteWebInspectorProxy.cpp: |
| |
| 2018-10-16 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Fix sandbox on distros with suid bubblewrap |
| https://bugs.webkit.org/show_bug.cgi?id=190616 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: |
| (WebKit::bubblewrapSpawn): |
| |
| 2018-10-16 Alex Christensen <achristensen@webkit.org> |
| |
| Replace HistoryItem* with HistoryItem& where possible |
| https://bugs.webkit.org/show_bug.cgi?id=190617 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/WebCoreSupport/SessionStateConversion.h: |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WK2NotifyHistoryItemChanged): |
| (WebKit::WebBackForwardListProxy::goToItem): |
| * WebProcess/WebPage/WebBackForwardListProxy.h: |
| |
| 2018-10-16 Philippe Normand <pnormand@igalia.com> |
| |
| Unreviewed, another GTK build fix after r237146 |
| |
| * UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp: |
| (WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow): |
| |
| 2018-10-15 Justin Fan <justin_fan@apple.com> |
| |
| Add WebGPU 2018 feature flag and experimental feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=190509 |
| |
| Reviewed by Dean Jackson. |
| |
| Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature |
| for the 2018 WebGPU prototype. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Fix API tests after r237146 |
| |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::decode): |
| I accidentally changed the decoder. |
| |
| 2018-10-15 Sihui Liu <sihui_liu@apple.com> |
| |
| HSTS cache entries cannot be removed by origin |
| https://bugs.webkit.org/show_bug.cgi?id=190455 |
| <rdar://problem/45181322> |
| |
| Reviewed by Chris Dumez. |
| |
| The SPI _CFNetworkResetHSTS does not recognize url without protocol, so we need to add protocol manually. |
| |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::deleteHSTSCacheForHostNames): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Fix GTK build, even though bots are not working right now. |
| |
| * UIProcess/gtk/WebInspectorProxyGtk.cpp: |
| (WebKit::WebInspectorProxy::platformCreateFrontendPage): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Fix WinCairo build after r237146 |
| |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| (WebKit::WebInspectorProxy::platformCreateFrontendPage): |
| |
| 2018-10-15 Chris Dumez <cdumez@apple.com> |
| |
| REGRESSION (r236512): [ Mac WK2 ] Layout Test editing/undo/undo-smart-delete-word.html is flaky |
| https://bugs.webkit.org/show_bug.cgi?id=190375 |
| <rdar://problem/45177807> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| The test is doing the following: |
| > document.execCommand("Delete"); document.execCommand("Undo"); |
| |
| Both operation are synchronous and rely on synchronous IPC from the WebProcess to the UIProcess. |
| However, for the undo operation to succeed, the first command need to have been registered with |
| with the UIProcess via the WebPageProxy::RegisterEditCommandForUndo IPC to the UIProcess, which |
| is asynchronous. |
| |
| After r236512, the UIProcess no longer processes incoming sync / async IPC in order and thus, |
| it is possible for the WebPageProxy::ExecuteUndoRedo synchronous IPC to get processed by the |
| UIProcess *before* the WebPageProxy::RegisterEditCommandForUndo asynchronous IPC for the |
| previous "Delete" command. As a result, canUndo would return false and we would fail to undo. |
| |
| To address the issue, use SendOption::DispatchMessageEvenWhenWaitingForSyncReply flag when sending |
| the WebPageProxy::RegisterEditCommandForUndo IPC, so that it gets processed in order with regards |
| to surrounding synchronous IPC. |
| |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::registerUndoStep): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Modernize BackForwardClient.h |
| https://bugs.webkit.org/show_bug.cgi?id=190610 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp: |
| (WebKit::InjectedBundleBackForwardList::clear): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::installServiceWorker): |
| * WebProcess/WebPage/WebBackForwardListProxy.cpp: |
| (WebKit::WebBackForwardListProxy::WebBackForwardListProxy): |
| (WebKit::WebBackForwardListProxy::backListCount const): |
| (WebKit::WebBackForwardListProxy::forwardListCount const): |
| (WebKit::WebBackForwardListProxy::backListCount): Deleted. |
| (WebKit::WebBackForwardListProxy::forwardListCount): Deleted. |
| * WebProcess/WebPage/WebBackForwardListProxy.h: |
| (WebKit::WebBackForwardListProxy::create): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| (WebKit::WebPage::restoreSessionInternal): |
| |
| 2018-10-15 Timothy Hatcher <timothy@apple.com> |
| |
| Add support for prefers-color-scheme media query |
| https://bugs.webkit.org/show_bug.cgi?id=190499 |
| rdar://problem/45212025 |
| |
| Reviewed by Dean Jackson. |
| |
| * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS. |
| * Shared/WebPreferences.yaml: Added DarkModeCSSEnabled as experimental. |
| |
| 2018-10-15 Patrick Griffis <pgriffis@igalia.com> |
| |
| Remove StorageProcess leftover |
| https://bugs.webkit.org/show_bug.cgi?id=190591 |
| |
| Reviewed by Michael Catanzaro. |
| |
| The process was deleted. |
| |
| * Shared/ChildProcess.h: |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::processStorageClass): |
| (WebKit::sandboxDirectory): |
| * UIProcess/ChildProcessProxy.cpp: |
| (WebKit::ChildProcessProxy::getLaunchOptions): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| * UIProcess/Launcher/mac/ProcessLauncherMac.mm: |
| (WebKit::serviceName): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused parameters of WebPageGroupData |
| https://bugs.webkit.org/show_bug.cgi?id=190600 |
| |
| Reviewed by Chris Dumez. |
| |
| visibleToInjectedBundle and visibleToHistoryClient are both always true. |
| This removes a mysterious check in the history code. |
| |
| * Shared/WebPageGroupData.cpp: |
| (WebKit::WebPageGroupData::encode const): |
| (WebKit::WebPageGroupData::decode): |
| * Shared/WebPageGroupData.h: |
| * UIProcess/WebPageGroup.cpp: |
| (WebKit::WebPageGroup::create): |
| (WebKit::pageGroupData): |
| (WebKit::WebPageGroup::WebPageGroup): |
| * UIProcess/WebPageGroup.h: |
| (WebKit::WebPageGroup::WebPageGroup): |
| (WebKit::WebPageGroup::create): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::updateGlobalHistory): |
| (WebKit::WebFrameLoaderClient::updateGlobalHistoryRedirectLinks): |
| (WebKit::WebFrameLoaderClient::setTitle): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::create): |
| (WebKit::WebPage::close): |
| * WebProcess/WebPage/WebPageGroupProxy.cpp: |
| (WebKit::WebPageGroupProxy::create): |
| * WebProcess/WebPage/WebPageGroupProxy.h: |
| (WebKit::WebPageGroupProxy::pageGroupID const): |
| (WebKit::WebPageGroupProxy::isVisibleToInjectedBundle const): Deleted. |
| (WebKit::WebPageGroupProxy::isVisibleToHistoryClient const): Deleted. |
| |
| 2018-10-15 Chris Dumez <cdumez@apple.com> |
| |
| Experiment: target=_blank on anchors should imply rel=noopener |
| https://bugs.webkit.org/show_bug.cgi?id=190481 |
| |
| Reviewed by Alex Christensen. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove unused parameters from FrameLoaderClient::createFrame |
| https://bugs.webkit.org/show_bug.cgi?id=190587 |
| |
| Reviewed by Chris Dumez. |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::createFrame): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-10-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Can't select text after dismissing the keyboard when changing focus |
| https://bugs.webkit.org/show_bug.cgi?id=190563 |
| <rdar://problem/44613559> |
| |
| Reviewed by Tim Horton. |
| |
| In r230686, we switched from using UIWKSelectionAssistant to UIWKTextInteractionAssistant for handling selection |
| in non-editable content on iOS; as such, when an editable element loses focus, instead of switching from the |
| text interaction assistant to the web selection assistant as we've previously done, we now reset our text |
| interaction assistant by calling `-[UIWKTextInteractionAssistant setGestureRecognizers]`, which removes all of |
| the current text selection gesture recognizers from WKContentView and regenerates them by building up a tree of |
| `UITextInteraction`s and adding them to the assistant (see `-[UITextInteractionAssistant |
| addGestureRecognizersToView:]`). In particular, `_UITextSelectionForceGesture` is the gesture recognizer used to |
| trigger text selection when long pressing. |
| |
| After dismissing the keyboard by tapping the "Done" button, the UITextInteractions and gesture recognizers on |
| the interaction assistant include: |
| |
| <UITextInteraction> |
| … |
| <UITextIndirectNonEditableInteraction> |
| <_UIKeyboardBasedNonEditableTextSelectionInteraction> |
| ↳ "_UIKeyboardTextSelectionGestureForcePress" → <_UITextSelectionForceGesture> |
| |
| However, after the keyboard dismisses due to an editable element losing focus, the UITextInteractions on the |
| interaction assistant look like this: |
| |
| <UITextInteraction> |
| … |
| <UITextIndirectNonEditableInteraction> |
| |
| Subsequently, the lack of a `_UIKeyboardBasedNonEditableTextSelectionInteraction` makes text selection by long |
| pressing impossible, since the `_UITextSelectionForceGesture` is never introduced to `WKContentView`. In UIKit, |
| `UITextIndirectNonEditableInteraction` only adds `_UIKeyboardBasedNonEditableTextSelectionInteraction` as a |
| child if the text input view — in our case, WKContentView — is missing an input delegate (see `-initWithView:`). |
| In the case where the Done button is used to dismiss the keyboard, WKContentView loses first responder, and the |
| input delegate of WKContentView is cleared out early on, before we call `-stopAssistingKeyboard`: |
| |
| -[WKContentView(WKInteraction) setInputDelegate:] |
| -[UIKeyboardImpl setDelegate:force:] |
| -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] |
| -[UIResponder _finishResignFirstResponder] |
| -[UIResponder resignFirstResponder] |
| -[WKContentView(WKInteraction) resignFirstResponderForWebView] |
| -[UIKeyboardImpl dismissKeyboard] |
| |
| However, in the case where the focused element is blurred, we end up clearing out the delegate in |
| `-_stopAssistingNode`, *after* we've already called `-setGestureRecognizers` on the interaction assistant. This |
| means UIKit will skip adding `_UIKeyboardBasedNonEditableTextSelectionInteraction` to the text interaction |
| assistant. |
| |
| -[WKContentView(WKInteraction) setInputDelegate:] |
| -[UIKeyboardImpl setDelegate:force:] |
| -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] |
| -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] |
| -[WKContentView(WKInteraction) _stopAssistingNode] |
| |
| To fix this, we simply reset our `inputDelegate` earlier in `_stopAssistingKeyboard` instead of waiting until |
| we reload input views. This ensures that UIKit sets up the text interaction assistant's gestures when changing |
| focus in the same way as we would when the keyboard is dismissed via `-resignFirstResponder` (e.g. when pressing |
| the Done button). |
| |
| Test: editing/selection/ios/select-text-after-changing-focus.html |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| (-[WKContentView setUpTextSelectionAssistant]): |
| (-[WKContentView _startAssistingKeyboard]): |
| (-[WKContentView _stopAssistingKeyboard]): |
| (-[WKContentView useSelectionAssistantWithGranularity:]): Deleted. |
| |
| Additionally rename this to -setUpTextSelectionAssistant and remove the selection granularity argument. This was |
| previously used to switch between web and text interaction assistants. |
| |
| 2018-10-15 Remy Demarest <rdemarest@apple.com> |
| |
| Web Inspector: RDM: Toolbar hidden in when Inspector is docked to side. |
| https://bugs.webkit.org/show_bug.cgi?id=190545 |
| rdar://problem/44674500 |
| |
| Reviewed by Brian Burg. |
| |
| When the inspector is placed next to the web view it uses its _topContentInset and _totalHeightOfBanners |
| to lay out the inspector so it does not underlap the window toolbar, but this technique does not work when |
| in responsive design mode because of the different attachment view. This patch fixes the issue by using |
| -[NSWindow contentLayoutRect] to figure out the height of the inspector instead of relying on the content |
| insets of the web view. This requires observing -contentLayoutRect and ensure we only observe its changes |
| when the view is actually on the screen. |
| |
| * UIProcess/WebInspectorProxy.h: |
| Declare helpers to add/remove observer on the attached inspector window. |
| |
| * UIProcess/mac/WKInspectorViewController.h: |
| * UIProcess/mac/WKInspectorViewController.mm: |
| (-[WKInspectorViewController inspectorWKWebView:willMoveToWindow:]): |
| (-[WKInspectorViewController inspectorWKWebViewDidMoveToWindow:]): |
| |
| * UIProcess/mac/WKInspectorWKWebView.h: |
| * UIProcess/mac/WKInspectorWKWebView.mm: |
| (-[WKInspectorWKWebView viewWillMoveToWindow:]): |
| (-[WKInspectorWKWebView viewDidMoveToWindow]): |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (-[WKWebInspectorProxyObjCAdapter observeValueForKeyPath:ofObject:change:context:]): Update inspector layout |
| whenever the contentLayoutRect changes. Except when live resizing since the attachment view also sends |
| notifications at the same time. |
| (-[WKWebInspectorProxyObjCAdapter inspectorViewController:willMoveToWindow:]): |
| (-[WKWebInspectorProxyObjCAdapter inspectorViewControllerDidMoveToWindow:]): |
| (WebKit::WebInspectorProxy::attachmentWillMoveFromWindow): Remove the observer only if we set it up before. |
| (WebKit::WebInspectorProxy::attachmentDidMoveToWindow): Set up the observer and immediately update the frame |
| of the inspector since it just moved to its final destination. |
| (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): Adjust the frame of the attached inspector based |
| on the contentLayoutRect of the window rather than the topContentInset of the web view. |
| |
| 2018-10-15 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Changing view scale should zoom to initial scale if the page is already at initial scale |
| https://bugs.webkit.org/show_bug.cgi?id=190570 |
| <rdar://problem/45261877> |
| |
| Reviewed by Tim Horton. |
| |
| r237087 added support for changing the view scale on iOS, by making it possible to let the minimum layout size |
| be a factor of the view size; this allows internal clients to change page zoom levels on iOS. Currently, |
| changing the page zoom level automatically zooms to the new initial scale only if the user has not manually |
| scaled the page before, even if the page is already at initial scale (e.g. after the user double taps to zoom on |
| a small element, and double taps again to zoom back out to initial scale). |
| |
| This patch makes some minor adjustments to automatically zoom to the new initial scale after changing the view |
| scale, as long as the page was at initial scale when changing zoom levels. |
| |
| Test: fast/viewport/ios/initial-scale-after-changing-view-scale.html |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::areEssentiallyEqualAsFloat): |
| |
| Move this function further up in the file, so that we can use it in `setViewportConfigurationViewLayoutSize`. |
| |
| (WebKit::WebPage::setViewportConfigurationViewLayoutSize): |
| |
| If the page is near initial scale and the zoom level changes, zoom to the new initial scale. |
| |
| (WebKit::WebPage::viewportConfigurationChanged): |
| |
| Make this take a new enum argument that determines whether we want to zoom to initial scale as a result of the |
| viewport configuration change (`No` by default). |
| |
| 2018-10-15 Chris Dumez <cdumez@apple.com> |
| |
| Restrict browsing context lookup by name to frames that are related to one another |
| https://bugs.webkit.org/show_bug.cgi?id=190475 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/Plugins/PluginView.cpp: |
| (WebKit::PluginView::performJavaScriptURLRequest): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Fix assertion after r237102 |
| https://bugs.webkit.org/show_bug.cgi?id=190459 |
| |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| (WebKit::InjectedBundlePageLoaderClient::InjectedBundlePageLoaderClient): |
| Shipping Safari still uses shouldGoToBackForwardListItem, so only assert on |
| newer platforms like we do in WKPageSetPageLoaderClient. |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Shrink more enum classes |
| https://bugs.webkit.org/show_bug.cgi?id=190540 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * Shared/Authentication/AuthenticationChallengeDisposition.h: |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/AuthenticationManager.messages.in: |
| * Shared/DragControllerAction.h: |
| * Shared/LayerTreeContext.h: |
| * Shared/UndoOrRedo.h: |
| * UIProcess/Authentication/AuthenticationDecisionListener.h: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/Notifications/WebNotification.h: |
| * UIProcess/Notifications/WebNotificationManagerProxy.h: |
| * UIProcess/PageClient.h: |
| * UIProcess/UserContent/WebUserContentControllerProxy.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.h: |
| * WebProcess/Automation/WebAutomationSessionProxy.messages.in: |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.h: |
| * WebProcess/Storage/WebSWClientConnection.messages.in: |
| * WebProcess/UserContent/InjectUserScriptImmediately.h: |
| * WebProcess/UserContent/WebUserContentController.h: |
| * WebProcess/UserContent/WebUserContentController.messages.in: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-10-15 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Add new files missing from previous commit. |
| |
| * Source/cmake/FindLibseccomp.cmake: Added. |
| |
| 2018-10-15 Patrick Griffis <pgriffis@igalia.com> |
| |
| [GTK][WPE] Implement subprocess sandboxing |
| https://bugs.webkit.org/show_bug.cgi?id=188568 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This implements sandboxing of WebKitWebProcesses. |
| |
| The sandbox is opt-in at runtime as it is a behavior change. |
| See webkit_web_context_set_sandbox_enabled() and the |
| WEBKIT_FORCE_SANDBOX env var for developers. |
| |
| This is Linux specific using Namespaces, Seccomp, and a DBus proxy service. |
| This introduces three new dependencies: |
| |
| - bwrap executable |
| - libseccomp library |
| - xdg-dbus-proxy executable |
| |
| The use of xdg-dbus-proxy will ideally be replaced once upstream DBus |
| gains the same filtering abilities which is a work in progress. |
| |
| Currently the sandbox is not completed and there are a few large holes: |
| |
| - Pulseaudio: The Pipewire project will solve this. |
| - DRI device access: No immediate solutions planned. |
| - Webcam device access: Pipewire will also solve this. |
| - Webprocess network access: Will require GStreamer changes. |
| - DConf access: Custom proxy planned. |
| - X11 access: Wayland solves this. |
| |
| That is not an exhaustive list but are the noteworthy ones. Filesystem access |
| is still an evolving list as problems are found as is specific DBus name access. |
| |
| * PlatformGTK.cmake: |
| * PlatformWPE.cmake: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * UIProcess/API/glib/WebKitWebContext.cpp: |
| (webkit_web_context_set_sandbox_enabled): |
| (webkit_web_context_get_sandbox_enabled): |
| * UIProcess/API/gtk/WebKitWebContext.h: |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/wpe/WebKitWebContext.h: |
| * UIProcess/ChildProcessProxy.cpp: |
| (WebKit::ChildProcessProxy::getLaunchOptions): |
| * UIProcess/ChildProcessProxy.h: |
| (WebKit::ChildProcessProxy::platformGetLaunchOptions): |
| * UIProcess/Launcher/ProcessLauncher.h: |
| * UIProcess/Launcher/glib/BubblewrapLauncher.cpp: Added. |
| (WebKit::memfd_create): |
| (WebKit::argsToFd): |
| (WebKit::XDGDBusProxyLauncher::setAddress): |
| (WebKit::XDGDBusProxyLauncher::isRunning const): |
| (WebKit::XDGDBusProxyLauncher::path const): |
| (WebKit::XDGDBusProxyLauncher::proxyPath const): |
| (WebKit::XDGDBusProxyLauncher::setPermissions): |
| (WebKit::XDGDBusProxyLauncher::launch): |
| (WebKit::XDGDBusProxyLauncher::childSetupFunc): |
| (WebKit::XDGDBusProxyLauncher::makeProxyPath): |
| (WebKit::XDGDBusProxyLauncher::dbusAddressToPath): |
| (WebKit::bindIfExists): |
| (WebKit::bindDBusSession): |
| (WebKit::bindX11): |
| (WebKit::bindDconf): |
| (WebKit::bindWayland): |
| (WebKit::bindPulse): |
| (WebKit::bindFonts): |
| (WebKit::bindGtkData): |
| (WebKit::bindA11y): |
| (WebKit::bindPathVar): |
| (WebKit::bindGStreamerData): |
| (WebKit::bindOpenGL): |
| (WebKit::bindV4l): |
| (WebKit::bindSymlinksRealPath): |
| (WebKit::setupSeccomp): |
| (WebKit::bubblewrapSpawn): |
| * UIProcess/Launcher/glib/BubblewrapLauncher.h: Added. |
| * UIProcess/Launcher/glib/FlatpakLauncher.cpp: Added. |
| (WebKit::flatpakSpawn): |
| * UIProcess/Launcher/glib/FlatpakLauncher.h: Added. |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::isInsideFlatpak): |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/Plugins/PluginProcessProxy.cpp: |
| (WebKit::PluginProcessProxy::getLaunchOptions): |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): |
| * UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp: |
| (WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::platformGetLaunchOptions): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/glib/WebProcessProxyGLib.cpp: Added. |
| (WebKit::WebProcessProxy::platformGetLaunchOptions): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Add a temporarily off by default preference for doing safe browsing checks |
| https://bugs.webkit.org/show_bug.cgi?id=190522 |
| |
| Reviewed by Chris Dumez. |
| |
| Safe browsing development has taken longer than anticipated. |
| To prevent the unused possible contacting the safe browsing provider for no benefit, make this off by default for now. |
| I'll make it on by default when it's actually used. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setSafeBrowsingEnabled:]): |
| (-[WKPreferences _safeBrowsingEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Include EnumTraits.h less |
| https://bugs.webkit.org/show_bug.cgi?id=190535 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkSessionCreationParameters.h: |
| * Shared/Authentication/AuthenticationChallengeDisposition.h: |
| * Shared/CoordinateSystem.h: |
| * Shared/LayerTreeContext.h: |
| * Shared/UndoOrRedo.h: |
| * Shared/WebsiteAutoplayPolicy.h: |
| * Shared/WebsitePopUpPolicy.h: |
| * UIProcess/API/APIWebsitePolicies.h: |
| * WebProcess/UserContent/InjectUserScriptImmediately.h: |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Remove InjectedBundle processing of back/forward lists |
| https://bugs.webkit.org/show_bug.cgi?id=190459 |
| |
| Reviewed by Chris Dumez. |
| |
| * Shared/API/c/WKDeprecated.h: |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::willGoToBackForwardListItem): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::willGoToBackForwardListItem): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h: |
| (API::InjectedBundle::PageLoaderClient::shouldGoToBackForwardListItem): Deleted. |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.cpp: |
| (WKBundleBackForwardListItemCopyOriginalURL): |
| (WKBundleBackForwardListItemCopyTitle): |
| (WKBundleBackForwardListItemIsTargetItem): |
| (WKBundleBackForwardListItemIsInPageCache): |
| (WKBundleBackForwardListItemHasCachedPageExpired): |
| * WebProcess/InjectedBundle/API/c/WKBundleBackForwardListItem.h: |
| * WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h: |
| * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp: |
| (WebKit::InjectedBundlePageLoaderClient::InjectedBundlePageLoaderClient): |
| (WebKit::InjectedBundlePageLoaderClient::shouldGoToBackForwardListItem): Deleted. |
| * WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::shouldGoToHistoryItem const): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| WebPageProxy should always have a HistoryClient |
| https://bugs.webkit.org/show_bug.cgi?id=190450 |
| |
| Reviewed by Chris Dumez. |
| |
| This will make it so we don't forget to null check it. |
| No change in behavior because the default HistoryClient does nothing. |
| |
| * UIProcess/API/APIHistoryClient.h: |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::createHistoryClient): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): |
| (WebKit::WebPageProxy::setHistoryClient): |
| (WebKit::WebPageProxy::didNavigateWithNavigationData): |
| (WebKit::WebPageProxy::didPerformClientRedirect): |
| (WebKit::WebPageProxy::didPerformServerRedirect): |
| (WebKit::WebPageProxy::didUpdateHistoryTitle): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-10-15 Alex Christensen <achristensen@webkit.org> |
| |
| Use std::optional<size_t> for a WebBackForwardList's current index |
| https://bugs.webkit.org/show_bug.cgi?id=190448 |
| |
| Reviewed by Chris Dumez. |
| |
| Also remove m_capacity, which was immutable. |
| |
| * UIProcess/WebBackForwardList.cpp: |
| (WebKit::WebBackForwardList::WebBackForwardList): |
| (WebKit::WebBackForwardList::~WebBackForwardList): |
| (WebKit::WebBackForwardList::pageClosed): |
| (WebKit::WebBackForwardList::addItem): |
| (WebKit::WebBackForwardList::goToItem): |
| (WebKit::WebBackForwardList::currentItem const): |
| (WebKit::WebBackForwardList::backItem const): |
| (WebKit::WebBackForwardList::forwardItem const): |
| (WebKit::WebBackForwardList::itemAtIndex const): |
| (WebKit::WebBackForwardList::backListCount const): |
| (WebKit::WebBackForwardList::forwardListCount const): |
| (WebKit::WebBackForwardList::backListAsAPIArrayWithLimit const): |
| (WebKit::WebBackForwardList::forwardListAsAPIArrayWithLimit const): |
| (WebKit::WebBackForwardList::removeAllItems): |
| (WebKit::WebBackForwardList::clear): |
| (WebKit::WebBackForwardList::backForwardListState const): |
| (WebKit::WebBackForwardList::restoreFromState): |
| (WebKit::WebBackForwardList::loggingString): |
| * UIProcess/WebBackForwardList.h: |
| (WebKit::WebBackForwardList::currentIndex const): Deleted. |
| |
| 2018-10-14 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| [JSC] Remove Option::useAsyncIterator |
| https://bugs.webkit.org/show_bug.cgi?id=190567 |
| |
| Reviewed by Saam Barati. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-10-12 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Allow SPI clients to lay out at arbitrarily scaled sizes and scale to fit the view |
| https://bugs.webkit.org/show_bug.cgi?id=190504 |
| <rdar://problem/45117760> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for _setViewScale: and _viewScale on iOS. While similar in concept to macOS, changing this property |
| on iOS uses viewport configurations to change the minimum layout size of the document and apply view scaling. |
| Setting the view scale on iOS to a value `s` multiplies the minimium layout size by a factor `1 / s`, but also |
| multiplies the initial, minimum and maximum scales by a factor of `s`. The net effect of applying this scale |
| causes the page to lay out at a larger width and shrink (or a smaller width and expand) to fit the viewport. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| Send `viewportConfigurationLayoutSizeScaleFactor` alongside `viewportConfigurationViewLayoutSize`. |
| |
| (-[WKWebView _dispatchSetViewLayoutSize:]): |
| (-[WKWebView _viewScale]): |
| (-[WKWebView _setViewScale:]): |
| |
| Provide a different implementation of `_setViewScale:` on iOS, by scaling the effective minimum layout size. |
| (See above for more detail). |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Add missing API availability annotations for the _viewScale property. |
| |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _setViewScale:]): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| |
| Both -[WKView _setViewScale:] and -[WKWebView _setViewScale:] throw Objective C exceptions upon receiving a bad |
| argument (e.g. scale <= 0). However, logic for throwing this exception is specific to iOS in WKWebView, and |
| handled in WebViewImpl on macOS. To make this less confusing, move the exception throwing code out of |
| !PLATFORM(MAC) in WKWebView, and move the path for raising this exception in WKView on macOS from WebViewImpl to |
| WKView. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::layoutSizeScaleFactor const): |
| |
| Tie the notion of "view scale" on iOS to `layoutSizeScaleFactor`. As its name suggests, this is a scale factor |
| by which we transform the layout size. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize): |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| Plumb the layout size scale factor over to the web process, along with the layout size. |
| |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::setViewportConfigurationViewLayoutSize): |
| |
| 2018-10-12 Alex Christensen <achristensen@webkit.org> |
| |
| Allow encoding of small enum classes |
| https://bugs.webkit.org/show_bug.cgi?id=190531 |
| |
| Reviewed by Tim Horton. |
| |
| * NetworkProcess/NetworkLoadClient.h: |
| * Scripts/webkit/messages.py: |
| * Scripts/webkit/parser.py: |
| (parse_parameters_string): |
| * UIProcess/API/APINavigation.h: |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| * UIProcess/WebNavigationState.h: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-10-12 Rob Buis <rbuis@igalia.com> |
| |
| Solve the confusion around blankURL() and isBlankURL() in URL |
| https://bugs.webkit.org/show_bug.cgi?id=158988 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueWillSendRequest): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::logUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::clearUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction): |
| (WebKit::WebResourceLoadStatisticsStore::setLastSeen): |
| (WebKit::WebResourceLoadStatisticsStore::setPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::setVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::isVeryPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource): |
| (WebKit::WebResourceLoadStatisticsStore::setGrandfathered): |
| (WebKit::WebResourceLoadStatisticsStore::isGrandfathered): |
| (WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo): |
| (WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom): |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo): |
| (WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom): |
| |
| 2018-10-12 Youenn Fablet <youenn@apple.com> |
| |
| Cache API tests are flaky due to file writing failing from time to time |
| https://bugs.webkit.org/show_bug.cgi?id=190321 |
| |
| Reviewed by Chris Dumez. |
| |
| Make NetworkCache::Storage::store callback return an error in case of writing failure. |
| Use this to surface this error at Cache API level. |
| |
| Minor clean-up to make Storage::clear take a completion handler. |
| |
| Make also sure to create the folder before writing the file in CacheStorageEngine. |
| As can be seen from some logging, it does happen that writing the 'origin' file sometimes fail with Posix error 9, |
| which might mean the folder is not present. |
| |
| Changes are covered by current tests, flaky tests like http/wpt/cache-storage/cache-put-keys.https.any.worker.html |
| will show a "failed writing data to the file system" error message. |
| |
| * NetworkProcess/cache/CacheStorageEngine.cpp: |
| (WebKit::CacheStorage::Engine::writeFile): |
| * NetworkProcess/cache/CacheStorageEngine.h: |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::storeOrigin): |
| (WebKit::CacheStorage::Caches::writeCachesToDisk): |
| (WebKit::CacheStorage::Caches::writeRecord): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::WriteOperation::WriteOperation): |
| (WebKit::NetworkCache::Storage::dispatchWriteOperation): |
| (WebKit::NetworkCache::Storage::finishWriteOperation): |
| (WebKit::NetworkCache::Storage::store): |
| (WebKit::NetworkCache::Storage::clear): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| (WebKit::NetworkCache::Storage::store): |
| |
| 2018-10-11 Youenn Fablet <youenn@apple.com> |
| |
| IOS 12 - Service worker cache not shared when added to homescreen |
| https://bugs.webkit.org/show_bug.cgi?id=190269 |
| <rdar://problem/45009961> |
| |
| Reviewed by Alex Christensen. |
| |
| NetworkProcessProxy does not always have all its stores in its hash map. |
| Make sure to check for the default web process pool store when grabbing cache storage parameters from a given session ID. |
| |
| Add a way to remove the default website data for testing. |
| This is used in the new API test. |
| |
| * UIProcess/API/APIWebsiteDataStore.cpp: |
| (API::WebsiteDataStore::deleteDefaultDataStoreForTesting): |
| * UIProcess/API/APIWebsiteDataStore.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStore.mm: |
| (+[WKWebsiteDataStore _deleteDefaultDataStoreForTesting]): |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::retrieveCacheStorageParameters): |
| |
| 2018-10-10 Simon Fraser <simon.fraser@apple.com> |
| |
| Hide RenderLayer z-order and normal flow lists behind iterators |
| https://bugs.webkit.org/show_bug.cgi?id=190457 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Expose the positive z-order, negative z-order and normal flow lists |
| from RenderLayer as iterators rather than vectors of raw pointers. |
| |
| Use a lambda function to get access to the private constructor, while not having |
| to refer to the nested RenderLayer::LayerIterator class in the header. |
| |
| * Shared/WebRenderLayer.cpp: |
| (WebKit::WebRenderLayer::WebRenderLayer): |
| (WebKit::WebRenderLayer::createArrayFromLayerList): Deleted. |
| * Shared/WebRenderLayer.h: |
| |
| 2018-10-11 Tim Horton <timothy_horton@apple.com> |
| |
| iOS: Scrolling using the arrow keys doesn't show the scroll indicator like it does on macOS |
| https://bugs.webkit.org/show_bug.cgi?id=190478 |
| <rdar://problem/22194031> |
| |
| Reviewed by Megan Gardner. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| Add some SPI. |
| |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]): |
| Do a persistent flash when scrolling continuously. |
| |
| (-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]): |
| Do a single flash when doing a scroll-to-top/bottom. |
| |
| 2018-10-11 Tim Horton <timothy_horton@apple.com> |
| |
| Clicking on bookmarklet crashes at NavigationState::willRecordNavigationSnapshot |
| https://bugs.webkit.org/show_bug.cgi?id=190476 |
| <rdar://problem/32757191> |
| |
| Reviewed by Megan Gardner. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _saveBackForwardSnapshotForItem:]): |
| The WKBackForwardListItem can be nil. Then we retrieve a reference from it. |
| An Objective-C method that returns a reference is a great way to get |
| a null reference. Other code then assumes it's not null and crashes. |
| Add a nil check. |
| |
| 2018-10-11 Tim Horton <timothy_horton@apple.com> |
| |
| Hardware keyboard arrow keys/spacebar don't scroll PDFs (works for web content) |
| https://bugs.webkit.org/show_bug.cgi?id=190495 |
| <rdar://problem/22734616> |
| |
| Reviewed by Andy Estes. |
| |
| Hook up WKKeyboardScrollViewAnimator to the scroll view when |
| WKPDFView is installed. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| Move _inputFlags to the IPI section so we can remove it |
| from WKContentViewInteraction. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/ios/WKWebEvent.h: |
| * UIProcess/ios/WKWebEvent.mm: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView handleKeyEvent:]): |
| (-[WKWebEvent dealloc]): Deleted. |
| * WebKit.xcodeproj/project.pbxproj: |
| Move WKWebEvent out of WKContentViewInteraction. |
| We tend to prefer one file per class. |
| Also, move the code to make a WKWebEvent from a UIEvent into |
| -initWithEvent:, instead of being ad-hoc in WKContentViewInteraction. |
| Adopt RetainPtr for the WKWebEvent's uiEvent property. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _handleKeyUIEvent:]): |
| * UIProcess/Cocoa/WKWebViewContentProvider.h: |
| Plumb hardware keyboard events to custom content views, if they want them. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView dealloc]): |
| (-[WKPDFView web_handleKeyEvent:]): |
| (-[WKPDFView web_initWithFrame:webView:mimeType:]): |
| Install a WKKeyboardScrollViewAnimator and plumb key events to it. |
| |
| 2018-10-11 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Allow iOS to also control toggling Web Animations CSS Integration |
| https://bugs.webkit.org/show_bug.cgi?id=190489 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setWebAnimationsCSSIntegrationEnabled:]): |
| (-[WKPreferences _webAnimationsCSSIntegrationEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-10-11 Keith Rollin <krollin@apple.com> |
| |
| CURRENT_ARCH should not be used in Run Script phase. |
| https://bugs.webkit.org/show_bug.cgi?id=190407 |
| <rdar://problem/45133556> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| CURRENT_ARCH is used in a number of Xcode Run Script phases. However, |
| CURRENT_ARCH is not well-defined during this phase (and may even have |
| the value "undefined") since this phase is run just once per build |
| rather than once per supported architecture. Migrate away from |
| CURRENT_ARCH in favor of ARCHS, either by iterating over ARCHS and |
| performing an operation for each value, or by picking the first entry |
| in ARCHS and using that as a representative value. |
| |
| * DerivedSources.make: When forming TARGET_TRIPLE_FLAGS, grab the |
| first entry in ARCHS rather than use CURRENT_ARCH. |
| |
| 2018-10-11 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON): Deal with the drawing area potentially being null under WebChromeClient::contentsSizeChanged() |
| https://bugs.webkit.org/show_bug.cgi?id=190474 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| (WebKit::WebChromeClient::contentsSizeChanged const): |
| |
| 2018-10-11 Alejandro G. Castro <alex@igalia.com> |
| |
| [GTK][WPE] Add mediaDevices.enumerateDevices support |
| https://bugs.webkit.org/show_bug.cgi?id=185761 |
| |
| Reviewed by Youenn Fablet. |
| |
| Implemented the enumerateDevices API using a new WebKit class |
| (DeviceIdHashSaltStorage) that generates and stores the device ids |
| hash salts per origin, used to avoid fingerprinting in the |
| webpages. |
| |
| The patch also adds a new type of data for the WebsiteDataStore. |
| That way the users can call the WebsiteDataStore to show what |
| origins have hash salt generated and remove them at some point. |
| |
| For the moment just GTK+ and WPE ports are using this class to |
| generate the hash salts. The patch adds code to the |
| checkUserMediaPermissionForOrigin API implementation, it was empty |
| until now for these ports. In this function we create an instance |
| of a new class WebKitDeviceInfoPermissionRequest that implements |
| the WebKitPermissionRequestIface interface, that allows the ports |
| to use the current permission managers implemented in the |
| embedders to handle this new kind of request the way they like |
| it. The default implementation is deny. |
| |
| The class WebKitDeviceInfoPermissionRequest takes care of |
| contacting the DeviceIdHashSaltStorage and request/regenerate the |
| hash salts accordingly. |
| |
| Persistency is still not implemented, we will add it in a |
| future patch. |
| |
| * Shared/WebsiteData/WebsiteDataType.h: Added the new type of |
| webside data: DeviceIdHashSalt. |
| * Sources.txt: Added new files to compilation. |
| * SourcesGTK.txt: Ditto. |
| * SourcesWPE.txt: Ditto. |
| * UIProcess/API/glib/WebKitDeviceInfoPermissionRequest.cpp: Added |
| this class to represent a request of permission to access the |
| devices information. This is specific for glib ports and implements |
| the policies regarding the hash salts when the embedder allows or |
| denies the access using the DeviceIdHashSaltStorage class. |
| (webkitDeviceInfoPermissionRequestAllow): Get the device hash salt |
| when the origin is allowed and set it in the original request. |
| (webkitDeviceInfoPermissionRequestDeny): Regenerate the device id |
| hash salt when the user does not allow to access the device information. |
| (webkit_permission_request_interface_init): |
| (webkitDeviceInfoPermissionRequestDispose): |
| (webkit_device_info_permission_request_class_init): |
| (webkitDeviceInfoPermissionRequestCreate): Create the class using |
| the proxy request from the webprocess and a reference to the |
| DeviceIdHashSaltStorage. |
| * UIProcess/API/glib/WebKitDeviceInfoPermissionRequestPrivate.h: |
| Ditto. |
| * UIProcess/API/glib/WebKitUIClient.cpp: Added the implementation |
| for the checkUserMediaPermissionForOrigin API for the glib ports, |
| it creates the device info request and calls the permission |
| request API. |
| * UIProcess/API/glib/WebKitWebsiteData.cpp: |
| (recordContainsSupportedDataTypes): Added the DeviceIdHashSalt |
| type. |
| (toWebKitWebsiteDataTypes): Added the conversion from the WebKit |
| types to the glib types for the WebsiteDataType::DeviceIdHashSalt. |
| * UIProcess/API/glib/WebKitWebsiteDataManager.cpp: |
| (toWebsiteDataTypes): Added the conversion from the glib type |
| WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT to the WebKit type. |
| (webkit_website_data_manager_remove): Make sure we remote the |
| DeviceIdHashSalt if the Cookies are selected. |
| * UIProcess/API/gtk/WebKitDeviceInfoPermissionRequest.h: Added |
| this new class that represents a permission request for the device |
| information in the GTK+ port. |
| * UIProcess/API/gtk/WebKitWebsiteData.h: Added the new type of |
| website that in the GTK+ port: |
| WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT. |
| * UIProcess/API/wpe/WebKitDeviceInfoPermissionRequest.h: Added |
| this new class that represents a permission request for the device |
| information in the WPE port. |
| * UIProcess/API/wpe/WebKitWebsiteData.h: Added the new type of |
| website that in the WPE port: |
| WEBKIT_WEBSITE_DATA_DEVICE_ID_HASH_SALT. |
| * UIProcess/DeviceIdHashSaltStorage.cpp: Added this new class that |
| handles how to generate and store the hash salts inside |
| WebKit. Persistency is still not implemented, we will add it in a |
| future patch. |
| (WebKit::DeviceIdHashSaltStorage::create): |
| (WebKit::DeviceIdHashSaltStorage::deviceIdentifierHashSaltForOrigin): |
| Check the map to get the hash salt for an origin, if there is none |
| create a new random one. |
| (WebKit::DeviceIdHashSaltStorage::regenerateDeviceIdentifierHashSaltForOrigin): |
| Delete the hash salt of an origin if it already exists and create a new one. |
| (WebKit::DeviceIdHashSaltStorage::getDeviceIdHashSaltOrigins): |
| Returns the list of origins that have a hash salt generated for |
| them. It is used in the WebsiteDataStore. |
| (WebKit::DeviceIdHashSaltStorage::deleteDeviceIdHashSaltForOrigins): |
| Deletes the hash salts in the map for an origin. |
| (WebKit::DeviceIdHashSaltStorage::deleteDeviceIdHashSaltOriginsModifiedSince): |
| Delete the origins that have not been modified since a time. |
| * UIProcess/DeviceIdHashSaltStorage.h: Ditto. |
| * UIProcess/UserMediaPermissionCheckProxy.h: Remove uneeded class |
| definition. |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: Added support to |
| return and remove the origins with a generate hash salt used to |
| generate the device ids. |
| (WebKit::WebsiteDataStore::WebsiteDataStore): Added the new |
| reference to the DeviceIdHashSaltStorage class, used to handle the |
| hash salts. |
| (WebKit::WebsiteDataStore::fetchDataAndApply): Get the list of |
| origins with a hash salts in the DeviceIdHashSaltStorage. |
| (WebKit::WebsiteDataStore::removeData): Remove the hash salts in |
| DeviceIdHashSaltStorage for an origin. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: Ditto. |
| (WebKit::WebsiteDataStore::deviceIdHashSaltStorage): |
| * WebKit.xcodeproj/project.pbxproj: Added the |
| DeviceIdHashSaltStorage to the compilation. |
| |
| 2018-10-10 Tim Horton <timothy_horton@apple.com> |
| |
| Safari crashes when attempting to share a YouTube video while in full-screen |
| https://bugs.webkit.org/show_bug.cgi?id=190456 |
| <rdar://problem/45130748> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/Cocoa/WKShareSheet.mm: |
| (-[WKShareSheet presentWithParameters:completionHandler:]): |
| Allow the share sheet to present centered, since we don't have enough |
| context to put it in a more sensible place. |
| |
| 2018-10-10 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r236935): Layout test fast/events/ios/keyboard-scrolling-distance.html is timing out |
| https://bugs.webkit.org/show_bug.cgi?id=190444 |
| <rdar://problem/45110698> |
| |
| Reviewed by Simon Fraser. |
| |
| There's a race in WKKeyboardScrollingAnimator that's exacerbated by HIDEventGenerator |
| being much faster than a human finger. We get our "begin" events from interpretKeyEvent, |
| after the Web Content process has had its way with it, but currently the |
| back-channel "handle" events (e.g. for key up, which doesn't go to interpretKeyEvent) |
| are retrieved from handleKeyWebEvent in the UI process, which is *before* |
| the Web Content process has had a swing at it. |
| |
| If you lose the race (an insanely short tap like you get from HIDEventGenerator, |
| or with a very busy Web Content process), we see handle(keyDown), handle(keyUp), begin(keyDown), |
| and get stuck scrolling! |
| |
| Instead, retrieve the out-of-band "handle" events from _didHandleKeyEvent, |
| so that they're sensibly and strictly ordered with respect to the timing of interpretKeyEvent/"begin". |
| |
| Also, hook up didFinishScrolling, so that UIScriptController's callbacks work correctly. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView handleKeyWebEvent:]): |
| (-[WKContentView _didHandleKeyEvent:eventWasHandled:]): |
| (-[WKContentView keyboardScrollViewAnimatorDidFinishScrolling:]): |
| * UIProcess/ios/WKKeyboardScrollingAnimator.h: |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollingAnimator handleKeyEvent:]): |
| (-[WKKeyboardScrollingAnimator displayLinkFired:]): |
| (-[WKKeyboardScrollViewAnimator setDelegate:]): |
| (-[WKKeyboardScrollViewAnimator handleKeyEvent:]): |
| (-[WKKeyboardScrollViewAnimator didFinishScrolling]): |
| |
| 2018-10-10 Tim Horton <timothy_horton@apple.com> |
| |
| Share more WKShareSheet code between macOS and iOS, and fix a few bugs |
| https://bugs.webkit.org/show_bug.cgi?id=190420 |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _resolutionForShareSheetImmediateCompletionForTesting]): |
| (-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): |
| (-[WKWebView _invokeShareSheetWithResolution:]): Deleted. |
| Add a new mechanism to tell the share sheet up-front that it should |
| immediately dismiss with a particular resolution, for testing. |
| See the Tools ChangeLog for justification. |
| We keep the bit on WKWebView instead of WKShareSheet so that it can be |
| called prior to invoking the share sheet. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/WKShareSheet.h: |
| * UIProcess/Cocoa/WKShareSheet.mm: |
| (-[WKShareSheet initWithView:]): |
| (-[WKShareSheet presentWithParameters:completionHandler:]): |
| (-[WKShareSheet sharingServicePicker:didChooseSharingService:]): |
| (-[WKShareSheet _didCompleteWithSuccess:]): |
| (-[WKShareSheet dismiss]): |
| (-[WKShareSheet dispatchDidDismiss]): |
| (-[WKShareSheet initWithView:initWithView:]): Deleted. |
| (-[WKShareSheet _dispatchDidDismiss]): Deleted. |
| (-[WKShareSheet _cancel]): Deleted. |
| (-[WKShareSheet _dismissDisplayAnimated:]): Deleted. |
| (-[WKShareSheet _presentFullscreenViewController:animated:]): Deleted. |
| (-[WKShareSheet invokeShareSheetWithResolution:]): Deleted. |
| Reduce the number of extraneous members, methods, and #ifdefs. |
| Try to share as much of WKShareSheet between the platforms as makes sense. |
| The interface is now totally identical on the two platforms. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::showShareSheet): |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showShareSheet:completionHandler:]): |
| (-[WKContentView invokeShareSheetWithResolution:]): Deleted. |
| Instead of silently failing (without even calling the completion handler!) |
| if we try to present one share sheet on top of another, dismiss the first |
| and present the new one. This is important because there are (separately |
| filed) bugs on both platforms where the completion handler is not called; |
| now, instead of a tab getting stuck forever, we'll reject the promise |
| when another share takes place. |
| |
| 2018-10-10 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r236678): Keyboard scrolling with arrow keys doesn't work on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=190433 |
| <rdar://problem/45111986> |
| |
| Reviewed by Simon Fraser. |
| |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]): |
| (-[WKKeyboardScrollingAnimator beginWithEvent:]): Deleted. |
| (-[WKKeyboardScrollViewAnimator beginWithEvent:]): Deleted. |
| r236678 changes the characters in charactersIgnoringModifiers to match AppKit. |
| We similarly need to update WKKeyboardScrollingAnimator's comparison. |
| |
| 2018-10-10 Yusuke Suzuki <yusukesuzuki@slowstart.org> |
| |
| [JSC] Rename createXXX to tryCreateXXX if it can return RefPtr |
| https://bugs.webkit.org/show_bug.cgi?id=190429 |
| |
| Reviewed by Saam Barati. |
| |
| Use `tryCreate` or new `create`. If we use new `create`, we can use Ref<> and remove null check. |
| |
| * Shared/API/c/WKString.cpp: |
| (WKStringCopyJSString): |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::toJSValue): |
| (WebKit::callPropertyFunction): |
| (WebKit::WebAutomationSessionProxy::scriptObjectForFrame): |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (WebKit::PDFPlugin::runScriptsInPDFDocument): |
| |
| 2018-10-10 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON): Assertion hit under WebPageProxy::didNavigateWithNavigationData() |
| https://bugs.webkit.org/show_bug.cgi?id=190418 |
| <rdar://problem/45059769> |
| |
| Reviewed by Geoffrey Garen. |
| |
| When process swapping and "suspending" the previous WebProcess in a SuspendedPageProxy, |
| we need to keep around the main frame's ID that still exists on in this process. This |
| is needed so that we can re-create a UI-side WebFrameProxy for the WebFrame that exists |
| in the WebProcess, if we ever swap back to this suspended process (see login in |
| WebPageProxy::swapToWebProcess()). |
| |
| The bug was that the main frame ID was stored on the WebPageProxy via m_mainFrameID instead of the |
| SuspendedPageProxy. This means that m_mainFrameID would get overriden when navigating in the new |
| WebProcess with the value 1 (because WebFrame identifiers start at 1 and are per-WebProcess). |
| This would lead to us constructing a WebFrameProxy with the wrong frame identifier in |
| WebPageProxy::swapToWebProcess(), which would override an existing unrelated WebFrame in the |
| WebProcessProxy's HashMap of frames. This would lead to crashes later on as the WebFrame |
| would not be associated to the WebPageProxy we expect. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| * UIProcess/SuspendedPageProxy.h: |
| (WebKit::SuspendedPageProxy::mainFrameID const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::swapToWebProcess): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::suspendWebPageProxy): |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-10-10 Antti Koivisto <antti@apple.com> |
| |
| Do domain prewarming for processes for new tabs |
| https://bugs.webkit.org/show_bug.cgi?id=190425 |
| |
| Reviewed by Chris Dumez. |
| |
| We currently only do domain prewarming for navigation process swaps. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| Do domain prewarming when using an existing but so far unused process. |
| |
| (WebKit::WebProcessPool::tryPrewarmWithDomainInformation): |
| |
| Factor into a function. |
| |
| * UIProcess/WebProcessPool.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| |
| This didn't usually get invoked. |
| |
| (WebKit::WebPage::didReceivePolicyDecision): |
| (WebKit::WebPage::didFinishLoad): |
| |
| Update prewarm information when a top level load finishes. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::sendPrewarmInformation): |
| * WebProcess/WebProcess.h: |
| |
| 2018-10-09 Antoine Quint <graouts@apple.com> |
| |
| Remove the frames() timing function |
| https://bugs.webkit.org/show_bug.cgi?id=190034 |
| <rdar://problem/44827544> |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<FramesTimingFunction>::encode): Deleted. |
| (IPC::ArgumentCoder<FramesTimingFunction>::decode): Deleted. |
| * Shared/WebCoreArgumentCoders.h: |
| * WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm: |
| (WebKit::PlatformCAAnimationRemote::Properties::encode const): |
| (WebKit::PlatformCAAnimationRemote::Properties::decode): |
| |
| 2018-10-09 Youenn Fablet <youenn@apple.com> |
| |
| ASSERTION FAILED: m_cachesLocks.contains(sessionID) in WebKit::CacheStorageEngineConnection::dereference(PAL::SessionID, unsigned long long) |
| https://bugs.webkit.org/show_bug.cgi?id=190373 |
| <rdar://problem/45106402> |
| |
| Reviewed by Alex Christensen. |
| |
| This assertion can be hit if: |
| - WebProcess has a DOMCache |
| - NetworkProcess crashes |
| - WebProcess navigates and dereference DOMCache. |
| Remove this assertion as it is hit when a test is using testRunner.terminateNetworkProcess(). |
| |
| * NetworkProcess/cache/CacheStorageEngineConnection.cpp: |
| (WebKit::CacheStorageEngineConnection::dereference): |
| |
| 2018-10-09 Jer Noble <jer.noble@apple.com> |
| |
| Crash when closing WKWebView during enter fullscreen animation |
| https://bugs.webkit.org/show_bug.cgi?id=190412 |
| |
| Reviewed by Brian Burg. |
| |
| We need a valid _webView if, during -[NSWindow close], we catch a notification saying we failed to enter |
| fullscreen and try to replace the placeholder with the actual _webView. |
| |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController close]): |
| |
| 2018-10-09 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r231663) loading in hidden WKWebViews stalls because WebProcess is suspended |
| https://bugs.webkit.org/show_bug.cgi?id=190417 |
| <rdar://problem/43391014> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::didChangeIsLoading): |
| Revert r321663, but keep the change to TestWKWebView.mm because that made the tests more reliable. |
| |
| 2018-10-09 Chris Dumez <cdumez@apple.com> |
| |
| Allow behavior when the parent process IPC::Connection closes to be overridden by ChildProcess subclasses |
| https://bugs.webkit.org/show_bug.cgi?id=190294 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Allow behavior when the parent process IPC::Connection closes to be overridden by ChildProcess subclasses. |
| This will be useful to allow the NetworkProcess to not exit if it still has pending downloads. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::callExitSoon): |
| (WebKit::NetworkProcess::initializeConnection): |
| * NetworkProcess/NetworkProcess.h: |
| * PluginProcess/PluginProcess.cpp: |
| (WebKit::callExit): |
| (WebKit::PluginProcess::initializeConnection): |
| * PluginProcess/PluginProcess.h: |
| * Shared/ChildProcess.cpp: |
| (WebKit::ChildProcess::didClose): |
| (WebKit::ChildProcess::initialize): |
| (WebKit::callExitNow): Deleted. |
| (WebKit::callExitSoon): Deleted. |
| * Shared/ChildProcess.h: |
| (WebKit::ChildProcess::shouldCallExitWhenConnectionIsClosed const): Deleted. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::callExit): |
| (WebKit::WebProcess::initializeConnection): |
| |
| 2018-10-09 Jer Noble <jer.noble@apple.com> |
| |
| WebDriver: thrown ObjC exception under -[WKFullScreenWindowController windowDidFailToEnterFullScreen:] when session is terminated |
| https://bugs.webkit.org/show_bug.cgi?id=190098 |
| <rdar://problem/42822671> |
| |
| Reviewed by Brian Burg. |
| |
| Forcibly exit fullscreen in resetState(), while the VideoFullscreenManagerProxy is still valid. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::resetState): |
| |
| 2018-10-09 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Ignore some deprecated declarations |
| https://bugs.webkit.org/show_bug.cgi?id=190371 |
| |
| Reviewed by Dan Bernstein. |
| |
| * UIProcess/ios/WKActionSheet.mm: |
| (-[WKActionSheet init]): |
| (-[WKActionSheet presentSheet:]): |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (-[WKActionSheetAssistant presentSheet]): |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| * UIProcess/ios/forms/WKFormSelectPicker.mm: |
| (-[WKMultipleSelectPicker initWithView:]): |
| * UIProcess/ios/forms/WKFormSelectPopover.mm: |
| (-[WKSelectTableViewController initWithView:hasGroups:]): |
| |
| 2018-10-09 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE] Explicitly link against gmodule where used |
| https://bugs.webkit.org/show_bug.cgi?id=190398 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * PlatformWPE.cmake: |
| |
| 2018-10-09 Chris Dumez <cdumez@apple.com> |
| |
| PSON: Doing a cross-site navigation via the URL bar does not swap process on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=190378 |
| <rdar://problem/45059466> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Process swapping was sometimes not happening via URL bar navigation on iOS due to top-hit preloading, |
| which would use a new WKWebView for the speculative load and rely on the _relatedWebView SPI to use |
| the same WebContent process as the view currently on screen. |
| |
| To address the issue, if the source URL is empty and the page has a related page, use the related |
| page's URL as source URL when doing the process-swap decision. |
| |
| * UIProcess/API/APIPageConfiguration.cpp: |
| (API::PageConfiguration::relatedPage const): |
| (API::PageConfiguration::relatedPage): Deleted. |
| * UIProcess/API/APIPageConfiguration.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| 2018-10-09 Andy Estes <aestes@apple.com> |
| |
| [iOS] Replace @"UIPreviewDataAttachmentListIsContentManaged" with a UIKit constant |
| https://bugs.webkit.org/show_bug.cgi?id=190400 |
| <rdar://problem/35442879> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Also fixed the iOS version check in WKContentViewInteraction.mm. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _dataForPreviewItemController:atPosition:type:]): |
| |
| 2018-10-09 Tim Horton <timothy_horton@apple.com> |
| |
| REGRESSION (r232416): Can not scroll after swiping back on quoteunquoteapps.com |
| https://bugs.webkit.org/show_bug.cgi?id=190377 |
| <rdar://problem/45108222> |
| |
| Reviewed by Andy Estes. |
| |
| Introduce the notion of 'pausing' to SnapshotRemovalTracker. |
| Reimplement r232416 in terms of this: the SnapshotRemovalTracker |
| starts out paused (not accepting events), and un-pauses when |
| we get a provisional load or same-document navigation. |
| This way, we don't lose the watchdog timer in cases where we get |
| no provisional load, same-document navigation, or main frame load |
| (which is the separate root cause for this bug -- this just papers |
| over it with a timeout). |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::didStartProvisionalLoadForMainFrame): |
| (WebKit::ViewGestureController::didSameDocumentNavigationForMainFrame): |
| Resume the snapshot removal tracker. |
| |
| (WebKit::ViewGestureController::didReachMainFrameLoadTerminalState): |
| If we didn't see a provisional load or same document navigation, |
| but somehow got to the terminal load state, immediately remove the snapshot. |
| |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::resume): |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::start): |
| Start the SnapshotRemovalTracker out in the paused state; it will be |
| resumed in the same places we previously would call the |
| provisionalOrSameDocumentLoadCallback. |
| |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent): |
| Ignore (but debug log) incoming events while paused. |
| |
| * UIProcess/Cocoa/ViewGestureController.h: |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::pause): |
| (WebKit::ViewGestureController::SnapshotRemovalTracker::isPaused const): |
| Add the pausing bit. |
| |
| * UIProcess/ios/ViewGestureControllerIOS.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| * UIProcess/mac/ViewGestureControllerMac.mm: |
| (WebKit::ViewGestureController::endSwipeGesture): |
| Remove m_provisionalOrSameDocumentLoadCallback. |
| |
| 2018-10-09 Antti Koivisto <antti@apple.com> |
| |
| Prewarm FontDatabase on process swap |
| https://bugs.webkit.org/show_bug.cgi?id=190312 |
| |
| Reviewed by Chris Dumez. |
| |
| Add mechanism for caching prewarm information per domain on UI process side. This information |
| is then passed to newly initialized web processes that are being used for the same domain. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| Pass prewarm information on process swap to the new process. |
| |
| (WebKit::WebProcessPool::didCollectPrewarmInformation): |
| |
| UI process side cache. |
| |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::didCollectPrewarmInformation): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): |
| (WebKit::WebPage::didReceivePolicyDecision): |
| |
| Collect and cache prewarm information for the previous process on process swap. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::prewarmGlobally): |
| |
| Renamed for clarity. |
| |
| (WebKit::WebProcess::prewarmWithDomainInformation): |
| (WebKit::WebProcess::sendPrewarmInformation): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-10-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] [WK2] Add support for text alignment and text lists in font attributes |
| https://bugs.webkit.org/show_bug.cgi?id=190342 |
| <rdar://problem/44767118> |
| |
| Reviewed by Tim Horton. |
| |
| Add encoding and decoding for text alignment and text lists in FontAttributes. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<FontAttributes>::encode): |
| (IPC::ArgumentCoder<FontAttributes>::decode): |
| |
| 2018-10-08 Justin Fan <justin_fan@apple.com> |
| |
| WebGPU: Rename old WebGPU prototype to WebMetal |
| https://bugs.webkit.org/show_bug.cgi?id=190325 |
| <rdar://problem/44990443> |
| |
| Reviewed by Dean Jackson. |
| |
| Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-10-08 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| Followup to r236942: Make input type=color an internal feature |
| https://bugs.webkit.org/show_bug.cgi?id=189162 |
| |
| Rubber-stamped by Dean Jackson. |
| |
| I've learned from Dean that an internal feature is more suitable than an experimental feature in this scenario. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-08 Aditya Keerthi <akeerthi@apple.com> |
| |
| Make <input type=color> a runtime enabled (on-by-default) feature |
| https://bugs.webkit.org/show_bug.cgi?id=189162 |
| |
| Reviewed by Wenson Hsieh and Tim Horton. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| * Shared/WebPreferences.yaml: |
| |
| Add an experimental feature flag for input type=color. |
| |
| * UIProcess/mac/WebColorPickerMac.mm: |
| (-[WKPopoverColorWell webDelegate]): |
| (-[WKPopoverColorWell setWebDelegate:]): |
| |
| 2018-10-08 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build |
| |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| |
| 2018-10-08 Brian Burg <bburg@apple.com> |
| |
| [Mac] Web Automation: some keyboard interactions don't generate events, causing event simulation to stall |
| https://bugs.webkit.org/show_bug.cgi?id=190316 |
| <rdar://problem/42833290> |
| |
| Reviewed by Tim Horton. |
| |
| Some users have reported that Cmd-A for Select All no longer works in safaridriver. |
| Instead, this hangs the session. This happens because the WebAutomationSession class |
| assumes that each call to simulateKeyboardInteraction causes keyboard events to be processed, |
| but in corner cases like Cmd-A, some events that we simulate are swallowed by AppKit and |
| never make it back to WebKit. Because the session never gets the "keyboard events flushed" |
| callback, it assumes the interaction is still ongoing, and never returns, causing a hang. |
| |
| This patch consists of two parts: |
| - Add logging of important state changes and events when simulating user input. |
| - Make code more robust when simulating key actions that generate no events on macOS. |
| |
| This change progresses WPT test key_shortcuts.py::test_mod_a_and_backspace_deletes_all_text on Mac. |
| |
| * Platform/Logging.h: Add a logging channel. |
| * UIProcess/Automation/SimulatedInputDispatcher.cpp: |
| (WebKit::SimulatedInputDispatcher::keyFrameTransitionDurationTimerFired): |
| (WebKit::SimulatedInputDispatcher::transitionBetweenKeyFrames): |
| (WebKit::SimulatedInputDispatcher::transitionInputSourceToState): |
| (WebKit::SimulatedInputDispatcher::run): |
| (WebKit::SimulatedInputDispatcher::finishDispatching): |
| Add a bunch of logging so its easier to figure out where things get stuck. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::simulateKeyboardInteraction): |
| In some cases, no keyboard events need to be processed for the simulated interaction. |
| When that happens, early exit rather than waiting for keyboard events to be flushed. |
| |
| * UIProcess/Automation/mac/WebAutomationSessionMac.mm: |
| (WebKit::WebAutomationSession::sendSynthesizedEventsToPage): Logging. |
| (WebKit::WebAutomationSession::platformSimulateKeyboardInteraction): |
| On Mac, if you tap a character key while Command is held down, only a KeyDown event |
| is forwarded to the first responder by AppKit, even if you send a KeyUp event too. |
| In this case don't send an NSEvent since it won't ever be delivered back to WebKit. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::isProcessingKeyboardEvents const): Expose this state for keyboard |
| events too. |
| |
| 2018-10-08 Youenn Fablet <youenn@apple.com> |
| |
| NetworkCache::Storage should be WTF::DestructionThread::Main |
| https://bugs.webkit.org/show_bug.cgi?id=190324 |
| |
| Reviewed by Alex Christensen. |
| |
| Use WTF::DestructionThread::Main to make sure that Storage is destroyed in the main thread. |
| Remove the code that was making sure that any ref was destroyed in the main thread. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: Make sure the completion handler is not null. |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation): Make it clear that a ref is taken. |
| (WebKit::NetworkCache::Storage::Storage): |
| (WebKit::NetworkCache::Storage::synchronize): Protect 'this' when dispatching back to the main thread. |
| Move the code that was after dispatch before dispatch to allow moving protectedThis in the dispatch lambda. |
| (WebKit::NetworkCache::Storage::remove): |
| (WebKit::NetworkCache::Storage::traverse): |
| (WebKit::NetworkCache::Storage::clear): |
| (WebKit::NetworkCache::Storage::deleteOldVersions): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| 2018-10-08 Tim Horton <timothy_horton@apple.com> |
| |
| Adjust keyboard scrolling animator to springy and semiphysical |
| https://bugs.webkit.org/show_bug.cgi?id=190345 |
| <rdar://problem/43494393> |
| |
| Reviewed by Simon Fraser. |
| |
| Introduce WKKeyboardScrollViewAnimator, which wraps WKKeyboardScrollingAnimator |
| and provides a reasonable set of default behaviors for UIScrollView. |
| This is the first step on the way to WKKeyboardScrollingAnimator |
| being platform- and toolkit-agnostic, and helps avoid adding a whole |
| bunch of code to WKContentView. |
| |
| Adopt UIKit's scroll-to-top animation curve for whole-document scrolls. |
| |
| Adjust WKKeyboardScrollingAnimator's physics; it now simulates a spring |
| attached to the page when decelerating. When a key is pressed, it applies |
| a constant force to the page (up to some maximum velocity). When released, |
| the spring causes the page to decelerate smoothly. |
| |
| Add rubber-banding to keyboard scrolling, based on the same spring that |
| decelerates the page. |
| |
| Remove the initial bounce on keydown before starting the smooth scroll. |
| |
| Remove arrow key commands from WKContentView; this avoids double-processing |
| incoming arrow key events, makes the event stream make more sense, and was |
| entirely unnecessary. |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| Add a wide variety of useful SPI. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| Remove _scrollByContentOffset:animated: because it's only used by |
| the keyboard scrolling mechanism. |
| |
| Remove _arrowKey because we're removing the arrow key commands. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView setupInteraction]): |
| Create a WKKeyboardScrollViewAnimator (which knows how to directly |
| manipulate a UIScrollView) instead of a WKKeyboardScrollingAnimator |
| (which requires its clients to implement everything in terms of an |
| abstract interface. |
| |
| (-[WKContentView scrollViewWillStartPanOrPinchGesture]): |
| Inform the keyboard scrolling animator that the user is going to start |
| an interactive gesture that needs control of the scroll view, so it |
| can stop its current animated scroll. |
| |
| (-[WKContentView canPerformActionForWebView:withSender:]): |
| (-[WKContentView keyCommands]): |
| (-[WKContentView _arrowKeyForWebView:]): Deleted. |
| Remove arrow key commands. |
| |
| (-[WKContentView keyboardScrollViewAnimator:distanceForIncrement:]): |
| Scale from content to WKWebView coordinate space; the keyboard scrolling |
| animator operates in WKWebView coordinates. This was broken before. |
| |
| (-[WKContentView keyboardScrollViewAnimatorWillScroll:]): |
| (-[WKContentView isScrollableForKeyboardScrollViewAnimator:]): |
| (-[WKContentView isKeyboardScrollable]): Deleted. |
| (-[WKContentView distanceForScrollingIncrement:]): Deleted. |
| (-[WKContentView scrollByContentOffset:animated:]): Deleted. |
| Reimplement these as keyboardScrollViewAnimator delegate methods. |
| |
| * UIProcess/ios/WKKeyboardScrollingAnimator.h: |
| Add WKKeyboardScrollViewAnimator, hide the interface for |
| WKKeyboardScrollingAnimator itself in the implementation file. |
| |
| * UIProcess/ios/WKKeyboardScrollingAnimator.mm: |
| (-[WKKeyboardScrollingAnimator initWithScrollable:]): |
| (-[WKKeyboardScrollingAnimator parameters]): |
| (-[WKKeyboardScrollingAnimator invalidate]): |
| (unitVector): |
| Return a unit vector in the given direction. |
| |
| (perpendicularAbsoluteUnitVector): |
| Return a positive unit vector perpendicular to the axis of the given direction. |
| Useful for multiplying with another vector to remove the component in the |
| axis of the given direction. |
| |
| (boxSide): |
| Convert ScrollingDirection to WebCore::PhysicalBoxSide, for use with RectEdges. |
| |
| (-[WKKeyboardScrollingAnimator keyboardScrollForEvent:]): |
| Instead of just returning the desired increment, compute everything we'll need |
| for the lifetime of the scroll (including the force applied, maximum |
| velocity, etc.) and return them together. |
| |
| (-[WKKeyboardScrollingAnimator beginWithEvent:]): |
| Use the scrollable's native scroll-to-extent animation (e.g. UIScrollView's |
| scroll-to-top curve) for whole-document scrolls. |
| |
| Remove the first discrete scroll; start the smooth scroll immediately. |
| |
| (-[WKKeyboardScrollingAnimator handleKeyEvent:]): |
| (farthestPointInDirection): |
| (-[WKKeyboardScrollingAnimator stopAnimatedScroll]): |
| Stop the current scroll. Let the spring coast to its natural stopping |
| point given the system's current energy, unless that stopping point is |
| less than one increment from the starting point. In that case, we attach |
| the spring to /that/ point and let it run. |
| |
| (-[WKKeyboardScrollingAnimator startDisplayLinkIfNeeded]): |
| (-[WKKeyboardScrollingAnimator stopDisplayLink]): |
| (-[WKKeyboardScrollingAnimator willStartInteractiveScroll]): |
| Immediately stop all motion if the user touches the screen to scroll |
| or zoom with fingers. |
| |
| (-[WKKeyboardScrollingAnimator displayLinkFired:]): |
| Update the position of the scrollable based on the applied force and spring. |
| See the comments in this function for more details. |
| |
| (-[WKKeyboardScrollViewAnimator init]): |
| (-[WKKeyboardScrollViewAnimator initWithScrollView:]): |
| (-[WKKeyboardScrollViewAnimator dealloc]): |
| (-[WKKeyboardScrollViewAnimator invalidate]): |
| (-[WKKeyboardScrollViewAnimator setDelegate:]): |
| (-[WKKeyboardScrollViewAnimator willStartInteractiveScroll]): |
| (-[WKKeyboardScrollViewAnimator beginWithEvent:]): |
| (-[WKKeyboardScrollViewAnimator handleKeyEvent:]): |
| (-[WKKeyboardScrollViewAnimator isKeyboardScrollable]): |
| (-[WKKeyboardScrollViewAnimator distanceForIncrement:]): |
| (-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]): |
| (-[WKKeyboardScrollViewAnimator scrollWithScrollToExtentAnimationTo:]): |
| (-[WKKeyboardScrollViewAnimator contentOffset]): |
| (-[WKKeyboardScrollViewAnimator boundedContentOffset:]): |
| (-[WKKeyboardScrollViewAnimator interactiveScrollVelocity]): |
| (-[WKKeyboardScrollViewAnimator scrollableDirectionsFromOffset:]): |
| (-[WKKeyboardScrollViewAnimator rubberbandableDirections]): |
| Add WKKeyboardScrollViewAnimator, which wraps WKKeyboardScrollingAnimator |
| and provides animated keyboard scrolling for a UIScrollView without much |
| additional plumbing work. It contains reasonable default behaviors, |
| with a few optional delegate methods for customization. |
| |
| (-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]): Deleted. |
| (-[WKKeyboardScrollingAnimator startAnimatedScroll]): Deleted. |
| |
| 2018-10-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Remove dead code: VideoFullscreenModel::isVisible() |
| https://bugs.webkit.org/show_bug.cgi?id=190356 |
| |
| Reviewed by Jon Lee. |
| |
| Remove isVisible since it is no longer used. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::isVisible const): Deleted. |
| (WebKit::VideoFullscreenManagerProxy::isVisible const): Deleted. |
| |
| 2018-10-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Remove dead code: resetMediaState. |
| https://bugs.webkit.org/show_bug.cgi?id=190355 |
| |
| Reviewed by Jon Lee. |
| |
| Remove resetMediaState since it is no longer used. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.messages.in: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionManagerProxy::resetMediaState): Deleted. |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionInterfaceContext::resetMediaState): Deleted. |
| |
| 2018-10-08 Jeremy Jones <jeremyj@apple.com> |
| |
| Use MediaPlayerEnums::VideoGravity in VideoFullscreenModel. |
| https://bugs.webkit.org/show_bug.cgi?id=190357 |
| |
| Reviewed by Jon Lee. |
| |
| Use MediaPlayerEnums::VideoGravity instead of creating another identical enum in VideoFullscreenModel. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::setVideoLayerGravity): |
| (WebKit::VideoFullscreenManagerProxy::setVideoLayerGravity): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::setVideoLayerGravityEnum): |
| |
| 2018-10-08 Alex Christensen <achristensen@webkit.org> |
| |
| Remove WKBundleFileHandleRef |
| https://bugs.webkit.org/show_bug.cgi?id=190360 |
| |
| Reviewed by Tim Horton. |
| |
| WKBundleFrameGetJavaScriptWrapperForFileForWorld and WKBundleFileHandleCreateWithPath were only used in Mail |
| and were removed in rdar://problem/44955158 |
| I need to remove them for rdar://problem/24576194 |
| |
| * Shared/API/APIObject.h: |
| * Shared/API/c/WKDeprecated.h: |
| * Shared/API/c/WKDeprecatedFunctions.cpp: |
| (WKBundleFrameGetJavaScriptWrapperForFileForWorld): |
| (WKBundleFileHandleCreateWithPath): |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/InjectedBundle/API/c/WKBundleAPICast.h: |
| * WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.cpp: Removed. |
| * WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h: |
| * WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp: |
| (WKBundleFrameGetJavaScriptWrapperForFileForWorld): Deleted. |
| * WebProcess/InjectedBundle/API/c/WKBundleFrame.h: |
| * WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp: Removed. |
| * WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.h: Removed. |
| * WebProcess/WebPage/WebFrame.cpp: |
| * WebProcess/WebPage/WebFrame.h: |
| |
| 2018-10-08 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Validation in Connection::readBytesFromSocket() is too aggressive |
| https://bugs.webkit.org/show_bug.cgi?id=190281 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Since r217206 Connection::readBytesFromSocket() validates size of |
| control message. However, it compares cmsg_len with attachmentMaxAmount, |
| while Connection::sendOutgoingMessage() computes it as |
| CMSG_LEN(sizeof(int) * attachmentFDBufferLength) where |
| attachmentFDBufferLength <= attachmentMaxAmount. This mismatch between |
| sender and receiver leads to possibility of assertion failure with large |
| number of attachments, e.g. here 62 attachments have cmsg_length == 264. |
| |
| * Platform/IPC/unix/ConnectionUnix.cpp: |
| (IPC::readBytesFromSocket): |
| |
| 2018-10-08 Chris Dumez <cdumez@apple.com> |
| |
| Have DOMWindowProperty get is frame from its associated DOMWindow |
| https://bugs.webkit.org/show_bug.cgi?id=190341 |
| |
| Reviewed by Alex Christensen. |
| |
| * WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp: |
| (WebKit::InjectedBundleDOMWindowExtension::InjectedBundleDOMWindowExtension): |
| |
| 2018-10-07 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix HAVE(LINK_PREVIEW) iOS builds. |
| |
| * UIProcess/WKImagePreviewViewController.mm: |
| (-[WKImagePreviewViewController previewActions]): |
| |
| 2018-10-06 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the macOS Mojave build. |
| |
| * UIProcess/API/Cocoa/LegacyBundleForClass.mm: |
| |
| 2018-10-06 Dan Bernstein <mitz@apple.com> |
| |
| WebKit part of [Xcode] Update some build settings as recommended by Xcode 10 |
| https://bugs.webkit.org/show_bug.cgi?id=190250 |
| |
| Reviewed by Andy Estes. |
| |
| * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, |
| CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF, and |
| CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED. |
| |
| * WebKit.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck. |
| |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| * UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: |
| * UIProcess/API/Cocoa/WKConnection.mm: |
| * UIProcess/API/Cocoa/WKNavigationData.mm: |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| * UIProcess/API/Cocoa/WKTypeRefWrapper.mm: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: |
| * UIProcess/API/mac/WKView.mm: |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| |
| Suppressed -Wdeprecated-implementations around some class, category and method |
| implementations the above files. |
| |
| 2018-10-05 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(r236154) Page loads are not drawn when loaded in shipped Safari11/12 |
| https://bugs.webkit.org/show_bug.cgi?id=190202 |
| |
| Reviewed by Youenn Fablet. |
| |
| Safari11/12 had a WKPageLoaderClient and a WKPageNavigationClient. |
| It did not actually draw the page until its WKPageNavigationClient.renderingProgressDidChange was called. |
| r236154 made it so we only call WKPageLoaderClient.didLayout if an application has both clients. |
| This fixes open source WebKit running with shipped Safari. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didReachLayoutMilestone): |
| |
| 2018-10-05 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Drop snapshotting workaround introduced in r235898 |
| https://bugs.webkit.org/show_bug.cgi?id=190314 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Drop snapshotting workaround introduced in r235898 as it is no longer needed now |
| that the flashing bug has been fixed. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| |
| 2018-10-05 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] RealtimeMediaSource should be able to vend hashed IDs |
| https://bugs.webkit.org/show_bug.cgi?id=190142 |
| <rdar://problem/44911109> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<MediaConstraints>::encode): |
| (IPC::ArgumentCoder<MediaConstraints>::decode): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::Source): |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| |
| 2018-10-03 Jer Noble <jer.noble@apple.com> |
| |
| Add support for reporting "display composited video frames" through the VideoPlaybackQuality object. |
| https://bugs.webkit.org/show_bug.cgi?id=190266 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a new preference to control the visibility of displayCompositedVideoFrames in the VideoPlaybackQualityObject. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setVideoQualityIncludesDisplayCompositingEnabled:]): |
| (-[WKPreferences _videoQualityIncludesDisplayCompositingEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-10-05 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r236866. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Add support for reporting "display composited video frames" |
| through the VideoPlaybackQuality object." |
| https://bugs.webkit.org/show_bug.cgi?id=190266 |
| https://trac.webkit.org/changeset/236866 |
| |
| 2018-10-05 Zach Li <zachli@apple.com> |
| |
| Expose whether WKWebProcessPlugInNodeHandle is a select element to clients |
| https://bugs.webkit.org/show_bug.cgi?id=190302 |
| <rdar://problem/45031469> |
| |
| Reviewed by Tim Horton. |
| |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h: |
| Introduce a new property `isSelectElement`. |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: |
| (-[WKWebProcessPlugInNodeHandle isSelectElement]): |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp: |
| (WebKit::InjectedBundleNodeHandle::isSelectElement const): |
| Check whether the node is a select element. |
| * WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h: |
| |
| 2018-10-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] [WK2] Expose some more editing SPI on WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=190232 |
| <rdar://problem/44963368> |
| |
| Reviewed by Tim Horton. |
| |
| Exposes a few additional editing commands as SPI on WKWebView, by defining a new extension on WKWebView that |
| also conforms to <UIResponderStandardEditActions>. This patch implements nearly all of the remaining |
| unimplemented methods on UIResponderStandardEditActions, and the new extension augments this set of editing |
| methods by adding additional editing helpers that don't currently exist on iOS (e.g. toggleStrikeThrough and |
| insertUnorderedList). The names of these new methods have been largely been borrowed from their counterparts on |
| macOS (see: `NSResponder.h`). |
| |
| The new edit actions are added in this patch on iOS are: |
| |
| ``` |
| - (void)alignCenter:(id)sender; |
| - (void)alignJustified:(id)sender; |
| - (void)alignLeft:(id)sender; |
| - (void)alignRight:(id)sender; |
| - (void)indent:(id)sender; |
| - (void)insertOrderedList:(id)sender; |
| - (void)insertUnorderedList:(id)sender; |
| - (void)outdent:(id)sender; |
| - (void)toggleStrikeThrough:(id)sender; |
| - (void)setFont:(UIFont *)font sender:(id)sender; |
| - (void)setFontSize:(CGFloat)fontSize sender:(id)sender; |
| - (void)setTextColor:(UIColor *)color sender:(id)sender; |
| ``` |
| |
| Tests: WKWebViewEditActions.ListInsertion |
| WKWebViewEditActions.ChangeIndentation |
| WKWebViewEditActions.SetAlignment |
| WKWebViewEditActions.ToggleStrikeThrough |
| WKWebViewEditActions.ChangeFontSize |
| WKWebViewEditActions.SetTextColor |
| WKWebViewEditActions.SetFontFamily |
| |
| * Platform/spi/ios/UIKitSPI.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView canPerformAction:withSender:]): |
| |
| Update this to handle the new editing actions. For now, we simply treat all of the new edit actions in the same |
| way as we currently treat bold, italic and underline: that is, they are enabled only when the user is in a |
| richly contenteditable element. |
| |
| (-[WKWebView setFont:sender:]): |
| (-[WKWebView setFontSize:sender:]): |
| |
| Construct and send a set of FontChanges. |
| |
| (-[WKWebView setTextColor:sender:]): |
| |
| Invoke "ForeColor" with the serialized color representation. This allows us to handle `rgba()` color values, |
| which hex format would not permit. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| |
| Add the new SPI. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::changeFontAttributes): |
| (WebKit::WebPageProxy::changeFont): |
| |
| Pull logic for applying font and font attribute style changes out of macOS-specific code, and into |
| platform-agnostic code in WebPage and WebPageProxy. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WKContentViewInteraction.h: |
| |
| Add the new supported editing commands as supported actions in WKWebView. The only new editing commands that |
| aren't present in this list are -setFont:sender:, -setColor:sender:, and -setFontSize:sender: which are manually |
| handled in places where the `FOR_EACH_WKCONTENTVIEW_ACTION` macro is otherwise used. In a followup, we could |
| consider augmenting `FOR_EACH_WKCONTENTVIEW_ACTION` to handle actions with multiple arguments. |
| |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| |
| Define a new helper macro here to define boilerplate implementations of the -…ForWebView edit command |
| implementations that turn around and invoke `_page->executeEditCommand` with no additional arguments, and an |
| edit command name matching that of the WebCore edit command. |
| |
| (-[WKContentView toggleStrikeThroughForWebView:]): |
| (-[WKContentView increaseSizeForWebView:]): |
| (-[WKContentView decreaseSizeForWebView:]): |
| (-[WKContentView setFontForWebView:sender:]): |
| (-[WKContentView setFontSizeForWebView:sender:]): |
| (-[WKContentView setTextColorForWebView:sender:]): |
| (-[WKContentView canPerformActionForWebView:sender:]): |
| |
| Add …ForWebView plumbing for the new editing actions, so they turn around and call into WKContentView by |
| default, but behavior may be overridden in WKWebView. |
| |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::changeFontAttributes): Deleted. |
| (WebKit::WebPageProxy::changeFont): Deleted. |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::changeFontAttributes): |
| (WebKit::WebPage::changeFont): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::WebPage::changeFontAttributes): Deleted. |
| (WebKit::WebPage::changeFont): Deleted. |
| |
| 2018-10-04 Jer Noble <jer.noble@apple.com> |
| |
| Add support for reporting "display composited video frames" through the VideoPlaybackQuality object. |
| https://bugs.webkit.org/show_bug.cgi?id=190266 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a new preference to control the visibility of displayCompositedVideoFrames in the VideoPlaybackQualityObject. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setVideoQualityIncludesDisplayCompositingEnabled:]): |
| (-[WKPreferences _videoQualityIncludesDisplayCompositingEnabled]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| 2018-10-04 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [Cocoa] Add SPI to expose typing attributes at the current selection on WKWebView |
| https://bugs.webkit.org/show_bug.cgi?id=190119 |
| <rdar://problem/44767062> |
| |
| Reviewed by Tim Horton. |
| |
| Add support for new WebKit2 SPI to notify the UI delegate about font attributes when the editor state changes |
| (e.g. due to selection changes, or executing an edit command). See below for more detail. |
| |
| Test: FontAttributes.FontAttributesAfterChangingSelection |
| |
| * Shared/EditorState.cpp: |
| (WebKit::EditorState::PostLayoutData::encode const): |
| (WebKit::EditorState::PostLayoutData::decode): |
| * Shared/EditorState.h: |
| |
| Add a new optional `FontAttributes` member to EditorState's post-layout data. FontAttributes are computed and |
| sent over IPC only if the UI delegate implements the new delegate hook which requires information about font |
| attributes. |
| |
| * Shared/WebPageCreationParameters.cpp: |
| (WebKit::WebPageCreationParameters::encode const): |
| (WebKit::WebPageCreationParameters::decode): |
| * Shared/WebPageCreationParameters.h: |
| |
| Add a new flag for the UI process to let a new web page know whether it should additionally compute font |
| attributes when computing editor state. |
| |
| * UIProcess/API/APIUIClient.h: |
| (API::UIClient::needsFontAttributes const): |
| (API::UIClient::didChangeFontAttributes): |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _didChangeEditorState]): |
| * UIProcess/Cocoa/UIDelegate.h: |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::setDelegate): |
| (WebKit::UIDelegate::UIClient::didChangeFontAttributes): |
| |
| Call out to the UI delegate with a font attribute dictionary, created via FontAttributes on EditorState's |
| post-layout data. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::setUIClient): |
| |
| Update whether or not the UI process needs to know about font attributes. The UI process only requires font |
| attribute information if the UI delegate implements `-_webView:didChangeFontAttributes:`. |
| |
| (WebKit::WebPageProxy::setNeedsFontAttributes): |
| (WebKit::WebPageProxy::creationParameters): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::editorStateChanged): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::editorStateChanged): |
| |
| Update the cached font attributes in the UI process when receiving a new editor state update. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::m_cpuLimit): |
| (WebKit::WebPage::editorState const): |
| (WebKit::WebPage::setNeedsFontAttributes): |
| |
| Add a new IPC hook to update whether or not the page should additionally compute font attributes. In the case |
| where the UI delegate changes from something that does not require font attributes to one that does, we |
| additionally schedule an editor state update. |
| |
| (WebKit::WebPage::updateFontAttributesAfterEditorStateChange): |
| |
| Private helper function to plumb FontAttributes to the UI client after an editor state change. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-10-04 Jeremy Jones <jeremyj@apple.com> |
| |
| Unify implementation in VideoFullscreenInterfaceAVKit |
| https://bugs.webkit.org/show_bug.cgi?id=190091 |
| rdar://problem/44734523 |
| |
| Reviewed by Jer Noble. |
| |
| Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include |
| any changes that had been made in the old path. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const): |
| (WebKit::VideoFullscreenManager::didSetupFullscreen): |
| (WebKit::VideoFullscreenManager::didExitFullscreen): |
| |
| 2018-10-04 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r236730. |
| |
| This caused a consistent crash in test http/tests/media/media- |
| stream/get-display-media-prompt.html. |
| |
| Reverted changeset: |
| |
| "[MediaStream] RealtimeMediaSource should be able to vend |
| hashed IDs" |
| https://bugs.webkit.org/show_bug.cgi?id=190142 |
| https://trac.webkit.org/changeset/236730 |
| |
| 2018-10-04 Brian Burg <bburg@apple.com> |
| |
| Web Automation: clear pending callbacks when the session terminates |
| https://bugs.webkit.org/show_bug.cgi?id=190259 |
| <rdar://problem/44958352> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| WebAutomationSession::terminate() can be called at any time to nuke the session. |
| However, it's possible that the session is in the midst of simulating keyboard/mouse |
| events. While in that state, there are some CompletionHandler objects waiting |
| for key/mouse events to be flushed. We need to empty out callback maps with |
| CompletionHandler instances so that they do not assert because they were never called. |
| |
| I was able to test this manually by running a test that erroneously hangs |
| while waiting for keyboard input. While the test was hung, I killed the NetworkProcess |
| manually to trigger WebAutomationSession::terminate(). From there, I saw that the |
| Perform Actions REST API call gets cancelled with the appropriate error code. |
| |
| * UIProcess/Automation/WebAutomationSession.cpp: |
| (WebKit::WebAutomationSession::terminate): |
| |
| 2018-10-04 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Move time out control from WebProcess to UIProcess |
| https://bugs.webkit.org/show_bug.cgi?id=189642 |
| <rdar://problem/44476765> |
| |
| Reviewed by Chris Dumez. |
| |
| Besides adding a time out timer in the AuthenticatorManager, this patch also adds a new |
| option in MockWebAuthenticationConfiguration to turn on silent failure which is the |
| default policy of treating authenticators' error as suggested by spec. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: |
| (WebKit::AuthenticatorManagerInternal::collectTransports): |
| (WebKit::AuthenticatorManager::makeCredential): |
| (WebKit::AuthenticatorManager::getAssertion): |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::initTimeOutTimer): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: |
| (WebKit::AuthenticatorManager::requestTimeOutTimer): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: |
| (WebKit::MockAuthenticatorManager::respondReceivedInternal): |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: |
| |
| 2018-10-04 Yuhan Wu <yuhan_wu@apple.com> |
| |
| runtime flag and IDL for MediaRecorder |
| https://bugs.webkit.org/show_bug.cgi?id=190018 |
| |
| Reviewed by Youenn Fablet and Chris Dumez. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-03 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix non-Cocoa, ENABLE(ATTACHMENT_ELEMENT) builds after r236822. |
| |
| * UIProcess/PageClient.h: |
| |
| 2018-10-03 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Let clients specify an NSFileWrapper subclassed to be used for _WKAttachment |
| https://bugs.webkit.org/show_bug.cgi?id=190270 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| (-[WKWebViewConfiguration copyWithZone:]): Copy new _attachmentFileWrapperClass ivar. |
| (-[WKWebViewConfiguration _attachmentFileWrapperClass]): Added this getter. |
| (-[WKWebViewConfiguration _setAttachmentFileWrapperClass:]): Added this setter, which raises |
| an exception if the argument is not an NSFileWrapper subclass. |
| |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: Declared new property. |
| |
| * UIProcess/Cocoa/PageClientImplCocoa.h: |
| * UIProcess/Cocoa/PageClientImplCocoa.mm: |
| (WebKit::PageClientImplCocoa::allocFileWrapperInstance): Added. Allocates an instance of |
| the class specified in the configuration, or NSFileWrapper if no custom class is specified. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::platformRegisterAttachment): Use PageClient::allocFileWrapperInstance |
| instead of allocating an NSFileWrapper instance. |
| |
| * UIProcess/PageClient.h: |
| (WebKit::PageClient::allocFileWrapperInstance): Defined new function. The default |
| implementation returns nil. |
| |
| 2018-10-03 Youenn Fablet <youenn@apple.com> |
| |
| Add VP8 support to WebRTC |
| https://bugs.webkit.org/show_bug.cgi?id=189976 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-10-03 Zamiul Haque <zhaque@apple.com> |
| |
| Search does not cancel after number of matching terms exceed set max limit |
| https://bugs.webkit.org/show_bug.cgi?id=190020 |
| <rdar://problem/39585214> |
| |
| Reviewed by Andy Estes. |
| |
| When searching a PDF document on MobileSafari, the maximum number of matching |
| terms are limited to a set constant. Beyond this limit, a PDF document should not |
| be searched, since the UI will not be updated correspondingly. To this effect, |
| a new SPI was made to cancel a search when the maximum limit of matching terms |
| is reached. This is done without clearing the highlighting for the all the terms |
| that were found under the limit. This bug was a result of not having implemented |
| the new SPI in WKPDFView. |
| |
| This will be tested in a follow-up patch, after re-enabling WKPDFView tests |
| on iOS 12. |
| |
| * UIProcess/ios/WKPDFView.mm: |
| (-[WKPDFView pdfHostViewController:findStringUpdate:done:]): |
| |
| 2018-10-03 Brian Burg <bburg@apple.com> |
| |
| [Cocoa] REGRESSION: web content process paused in debugger is considered to be unresponsive if WebKit client is sandboxed |
| https://bugs.webkit.org/show_bug.cgi?id=190256 |
| <rdar://problem/44957921> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Instead of giving up when the client is sandboxed, check whether it has the |
| exception that's necessary to get process information. If it is possible, |
| proceed to check whether the web content process has a debugger attached. |
| |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::platformIsBeingDebugged const): |
| Check 'process-info-pidinfo' to see if the sysctl call would be allowed. |
| |
| 2018-10-03 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [WPE][GTK] Enable MSE by default |
| https://bugs.webkit.org/show_bug.cgi?id=190243 |
| |
| Reviewed by Xabier Rodriguez-Calvar. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_class_init): |
| |
| 2018-10-02 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate WKConnection |
| https://bugs.webkit.org/show_bug.cgi?id=190147 |
| |
| Reviewed by Andy Estes. |
| |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * UIProcess/API/Cocoa/WKConnection.h: |
| * UIProcess/API/Cocoa/WKConnection.mm: |
| (didReceiveMessage): |
| (didClose): |
| * UIProcess/API/Cocoa/WKConnectionInternal.h: |
| * UIProcess/API/Cocoa/WKProcessGroup.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.mm: |
| |
| 2018-10-01 Dean Jackson <dino@apple.com> |
| |
| [macOS] Switching to discrete GPU should be done in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=189361 |
| <rdar://problem/43949622> |
| |
| Reviewed by Simon Fraser. |
| |
| Implement the UI-side process for triggering a GPU mux. |
| |
| * Platform/Logging.h: Add a WebGL logging channel. |
| |
| * SourcesCocoa.txt: Add the new files: WebSwitchingGPUClient and HighPerformanceGPUManager. |
| |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: UI process calls that use HighPerformanceGPUManager |
| to keep track of whether or not this process needs the high-performance GPU. |
| (WebKit::WebProcessProxy::requestHighPerformanceGPU): |
| (WebKit::WebProcessProxy::releaseHighPerformanceGPU): |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::~WebProcessProxy): Make sure to unregister with the HighPerformanceGPUManager |
| as the process disappears without manually removing itself (e.g. crashes). |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: New messages. |
| |
| * UIProcess/mac/HighPerformanceGPUManager.cpp: New class that copies most of what used |
| to live in GraphicsContext3DManager. It creates a CGLPixelFormat object when it sees |
| that at least one process needs the high-performance GPU. |
| (WebKit::HighPerformanceGPUManager::singleton): |
| (WebKit::HighPerformanceGPUManager::addProcessRequiringHighPerformance): |
| (WebKit::HighPerformanceGPUManager::removeProcessRequiringHighPerformance): |
| (WebKit::HighPerformanceGPUManager::updateState): |
| * UIProcess/mac/HighPerformanceGPUManager.h: Added. |
| |
| * WebKit.xcodeproj/project.pbxproj: Add new files. |
| |
| * WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.cpp: Implementation of the SwitchingGPUClient for |
| WebCore, which sends messages to the UI process. |
| (WebKit::WebSwitchingGPUClient::singleton): |
| (WebKit::WebSwitchingGPUClient::requestHighPerformanceGPU): |
| (WebKit::WebSwitchingGPUClient::releaseHighPerformanceGPU): |
| * WebProcess/WebCoreSupport/mac/WebSwitchingGPUClient.h: Added. |
| |
| * WebProcess/cocoa/WebProcessCocoa.mm: Register the GPUClient. |
| (WebKit::WebProcess::platformInitializeProcess): |
| |
| 2018-10-02 Sihui Liu <sihui_liu@apple.com> |
| |
| Fix a potential crash in NetworkProcess::deleteWebsiteDataForOrigins |
| https://bugs.webkit.org/show_bug.cgi?id=190220 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| |
| 2018-10-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [WebKit2] Format > Bold and Format > Italic don't toggle between bold and italic style |
| https://bugs.webkit.org/show_bug.cgi?id=179787 |
| <rdar://problem/35593389> |
| |
| Reviewed by Tim Horton. |
| |
| Fixes the bug by relaxing our policy in WebViewImpl::updateFontManagerIfNeeded. Instead of updating only when |
| the font panel is visible, update when either the font panel is visible, or the selection is in a richly |
| editable area. In the latter case, an up-to-date NSFontManager state is needed in order for certain font |
| formatting menu items, such as bold and italic, to correctly toggle state. |
| |
| Test: FontManagerTests.ToggleBoldAndItalicWithMenuItems |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKWindowVisibilityObserver observeValueForKeyPath:ofObject:change:context:]): |
| (WebKit::WebViewImpl::selectionDidChange): |
| (WebKit::WebViewImpl::updateFontManagerIfNeeded): |
| |
| Rename updateFontPanelIfNeeded to updateFontManagerIfNeeded, to reflect the new behavior. |
| |
| (WebKit::WebViewImpl::changeFontAttributesFromSender): |
| (WebKit::WebViewImpl::changeFontFromFontManager): |
| (WebKit::WebViewImpl::updateFontPanelIfNeeded): Deleted. |
| |
| 2018-10-02 Alex Christensen <achristensen@webkit.org> |
| |
| Remove ParsedURLString |
| https://bugs.webkit.org/show_bug.cgi?id=190154 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/FileAPI/NetworkBlobRegistry.cpp: |
| (WebKit::NetworkBlobRegistry::writeBlobToFilePath): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| * PluginProcess/PluginControllerProxy.cpp: |
| (WebKit::PluginControllerProxy::streamWillSendRequest): |
| (WebKit::PluginControllerProxy::streamDidReceiveResponse): |
| (WebKit::PluginControllerProxy::manualStreamDidReceiveResponse): |
| * Shared/API/APIUserContentURLPattern.h: |
| (API::UserContentURLPattern::matchesURL const): |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::itemIsInSameDocument const): |
| * UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: |
| (WebKit::RemoteInspectorProtocolHandler::handleRequest): |
| (WebKit::RemoteInspectorProtocolHandler::targetListChanged): |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::openURL): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::loadFile): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::createNewPage): |
| (WebKit::WebPageProxy::processDidTerminate): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::addProcessToOriginCacheSet): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): |
| * UIProcess/mac/WebContextMenuProxyMac.mm: |
| (WebKit::WebContextMenuProxyMac::createShareMenuItem): |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::addUserScript): |
| (WebKit::InjectedBundle::addUserStyleSheet): |
| (WebKit::InjectedBundle::removeUserScript): |
| (WebKit::InjectedBundle::removeUserStyleSheet): |
| * WebProcess/Plugins/Plugin.cpp: |
| (WebKit::Plugin::Parameters::decode): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::url): |
| (WebKit::WebPlatformStrategies::readURLFromPasteboard): |
| |
| 2018-10-01 Dean Jackson <dino@apple.com> |
| |
| Remove CSS Animation Triggers |
| https://bugs.webkit.org/show_bug.cgi?id=190175 |
| <rdar://problem/44925626> |
| |
| Reviewed by Simon Fraser. |
| |
| * Configurations/FeatureDefines.xcconfig: |
| |
| 2018-10-02 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| REGRESSION(r236662): Fix -Wformat warnings in CacheStorageEngineCaches.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=190205 |
| |
| Reviewed by Chris Dumez. |
| |
| Passing enums to %d is not kosher, at least not according to GCC's -Wformat. Avoid it. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::initialize): |
| (WebKit::CacheStorage::Caches::readCachesFromDisk): |
| (WebKit::CacheStorage::Caches::writeCachesToDisk): |
| |
| 2018-10-02 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236624 and r236671. |
| https://bugs.webkit.org/show_bug.cgi?id=190207 |
| |
| The change in r236624 introduced crashes on the bots |
| (Requested by ryanhaddad on #webkit). |
| |
| Reverted changesets: |
| |
| "Refactoring: eliminate raw pointer usage in Fullscreen code" |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| https://trac.webkit.org/changeset/236624 |
| |
| "Unify implementation in VideoFullscreenInterfaceAVKit" |
| https://bugs.webkit.org/show_bug.cgi?id=190091 |
| https://trac.webkit.org/changeset/236671 |
| |
| 2018-10-02 Antti Koivisto <antti@apple.com> |
| |
| WebPageProxy::reattachToWebProcess cleanups |
| https://bugs.webkit.org/show_bug.cgi?id=189881 |
| |
| Reviewed by Chris Dumez. |
| |
| Change the factoring to separate swap and crash code paths into different functions. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::swapToWebProcess): |
| |
| Separate function for the swap case. |
| |
| (WebKit::WebPageProxy::finishAttachingToWebProcess): |
| |
| Factor the common parts here. |
| |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-10-02 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [GTK] Theming of authentication dialog breaks with themes other than Adwaita |
| https://bugs.webkit.org/show_bug.cgi?id=190117 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Adds the missing GTK_STYLE_CLASS_BACKGROUND to the WebKitWebViewDialog |
| widget, which was missing for GTK+ 3.20 or newer, and set the widget |
| as app-paintable to avoid the base class paint method to add an opaque |
| background. |
| |
| Thanks to Benjamin Otte for the guidance to debug the theming issues. |
| |
| * UIProcess/API/gtk/WebKitWebViewDialog.cpp: |
| (webkitWebViewDialogDraw): Remove the style context save/restore, it |
| is unneeded because the style classes are set at widget construction |
| time and not changed ever after. |
| (webkitWebViewDialogConstructed): Mark the widget as app-paintable to |
| avoid the base widget paint operation to fill the whole background, |
| because the dialog widget paints the translucent overlay itself; and |
| also add the missing GTK_STYLE_CLASS_BACKGROUND class at construction |
| when building against GTK+ 3.20 or newer. |
| |
| 2018-10-02 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] RealtimeMediaSource should be able to vend hashed IDs |
| https://bugs.webkit.org/show_bug.cgi?id=190142 |
| <rdar://problem/44911109> |
| |
| Reviewed by Youenn Fablet. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<MediaConstraints>::encode): |
| (IPC::ArgumentCoder<MediaConstraints>::decode): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp: |
| (WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints): |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.h: |
| * UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in: |
| * UIProcess/UserMediaPermissionRequestManagerProxy.cpp: |
| (WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::Source): |
| (WebKit::UserMediaCaptureManager::createCaptureSource): |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| |
| 2018-10-02 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] Implement a way for the UI process to request typing attributes at the current selection |
| https://bugs.webkit.org/show_bug.cgi?id=189983 |
| <rdar://problem/44648705> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Implements `-[WKWebView typingAttributesWithCompletionHandler:]`, which asynchronously retrieves an NSDictionary |
| containing the typing attributes at the start of the current selection. This is a new asynchronous text input |
| client hook on macOS that is needed in order to support NSInspectorBar on WKWebView. |
| |
| At a high level, this patch builds on top of refactoring done in r236445 to make it possible to send typing |
| attributes from the web process to the UI process, and then adds plumbing in the WebKit2 client layer to surface |
| typing attributes to WKWebView on macOS. |
| |
| Tests: FontManagerTests.TypingAttributesAfterSubscriptAndSuperscript |
| FontManagerTests.ChangeTypingAttributesWithInspectorBar |
| FontManagerTests.ChangeAttributesWithFontEffectsBox |
| |
| * Platform/spi/mac/AppKitSPI.h: |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<FontAttributes>::encode): |
| (IPC::ArgumentCoder<FontAttributes>::decode): |
| |
| Implement IPC coding support for FontAttributes. |
| |
| * Shared/WebCoreArgumentCoders.h: |
| * Shared/mac/ArgumentCodersMac.h: |
| * Shared/mac/ArgumentCodersMac.mm: |
| (IPC::encode): |
| (IPC::decode): |
| |
| Add the ability to encode and decode UIFont. This allows Cocoa platforms to send `FontAttributes.font` over IPC |
| with a single call to IPC::encode/IPC::decode. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView typingAttributesWithCompletionHandler:]): |
| |
| Add plumbing to WebViewImpl. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::selectionDidChange): |
| |
| Update the NSInspectorBar on selection change, but only if it is present and visible, and WKWebView is currently |
| first responder. |
| |
| (WebKit::WebViewImpl::typingAttributesWithCompletionHandler): |
| |
| Call into WebPageProxy to retrieve FontAttributes from the web process, and invoke the callback with an |
| NSDictionary constructed from the retrieved FontAttributes. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::requestFontAttributesAtSelectionStart): |
| (WebKit::WebPageProxy::fontAttributesCallback): |
| |
| Add plumbing to retrieve FontAttributes from the web process at the current selection. Additionally, cache the |
| font attributes to avoid doing extra work during subsequent requests. |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::cachedFontAttributesAtSelectionStart const): |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::editorStateChanged): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::editorStateChanged): |
| |
| Invalidate cached font attributes. |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::requestFontAttributesAtSelectionStart): |
| |
| Use the currently focused frame's Editor to compute FontAttributes at the current selection, and send the |
| computed FontAttributes back to the UI process. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-10-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove analyzer manager |
| https://bugs.webkit.org/show_bug.cgi?id=190162 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * InspectorGResources.cmake: |
| Remove eslint. |
| |
| 2018-09-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add a new variant of serializePreservingVisualAppearance which takes VisibleSelection |
| https://bugs.webkit.org/show_bug.cgi?id=190108 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Adopt the new variant which directly takes VisibleSelection. |
| |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| (WebKit::WebEditorClient::updateGlobalSelection): |
| |
| 2018-10-01 Andy Estes <aestes@apple.com> |
| |
| [watchOS] Adopt NSURLSessionCompanionProxyPreference |
| https://bugs.webkit.org/show_bug.cgi?id=190177 |
| <rdar://problem/43402114> |
| |
| Reviewed by Wenson Hsieh. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (WebKit::NetworkSessionCocoa::NetworkSessionCocoa): |
| |
| 2018-10-01 Chris Dumez <cdumez@apple.com> |
| |
| [Mac] The UIProcess should listen to memory pressure signals |
| https://bugs.webkit.org/show_bug.cgi?id=190166 |
| |
| Reviewed by Simon Fraser. |
| |
| The UIProcess should listen to memory pressure signals on Mac in order to free memory, similarly to what we already |
| do on iOS. The memory pressure handler currently discards view snapshots and prewarmed processes. |
| |
| * SourcesCocoa.txt: |
| * UIProcess/Cocoa/WebMemoryPressureHandlerCocoa.h: Renamed from Source/WebKit/UIProcess/ios/WebMemoryPressureHandlerIOS.h. |
| * UIProcess/Cocoa/WebMemoryPressureHandlerCocoa.mm: Renamed from Source/WebKit/UIProcess/ios/WebMemoryPressureHandlerIOS.mm. |
| (WebKit::installMemoryPressureHandler): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitialize): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-10-01 Sihui Liu <sihui_liu@apple.com> |
| |
| Fix Internal iOS Build after r236690 |
| https://bugs.webkit.org/show_bug.cgi?id=190171 |
| |
| Reviewed by Alex Christensen. |
| |
| * Platform/ExtraPrivateSymbolsForTAPI.h: |
| |
| 2018-10-01 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [iOS] Add SPI to customize the input accessory view when focusing an element |
| https://bugs.webkit.org/show_bug.cgi?id=190152 |
| <rdar://problem/42754975> |
| |
| Reviewed by Dan Bernstein. |
| |
| Adds SPI on WKFormInputSession to customize the input accessory view, alongside the input view. See below for |
| more details. |
| |
| Test: KeyboardInputTests.CustomInputViewAndInputAccessoryView |
| |
| * UIProcess/API/Cocoa/_WKFormInputSession.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKFormInputSession customInputAccessoryView]): |
| (-[WKFormInputSession setCustomInputAccessoryView:]): |
| |
| Reload input views when the custom input accessory view changes. |
| |
| (-[WKContentView requiresAccessoryView]): |
| |
| If a custom input accessory view is specified, return YES. |
| |
| (-[WKContentView inputAccessoryView]): |
| |
| Return the custom input accessory view if present, and fall back to the default web form accessory view. |
| |
| 2018-10-01 Sihui Liu <sihui_liu@apple.com> |
| |
| Remove StorageProcess |
| https://bugs.webkit.org/show_bug.cgi?id=189975 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * CMakeLists.txt: |
| * Configurations/Storage-OSX-sandbox.entitlements: Removed. |
| * Configurations/StorageService.xcconfig: Removed. |
| * Configurations/WebKit.xcconfig: |
| * DerivedSources.make: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: |
| (WebKit::WebIDBConnectionToClient::putOrAdd): |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): |
| * PlatformGTK.cmake: |
| * PlatformMac.cmake: |
| * PlatformWPE.cmake: |
| * PlatformWin.cmake: |
| * Shared/ProcessExecutablePath.h: |
| * Shared/Storage/StorageProcessCreationParameters.cpp: Removed. |
| * Shared/Storage/StorageProcessCreationParameters.h: Removed. |
| * Shared/glib/ProcessExecutablePathGLib.cpp: |
| (WebKit::executablePathOfStorageProcess): Deleted. |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * SourcesGTK.txt: |
| * SourcesWPE.txt: |
| * StorageProcess/EntryPoint/mac/XPCService/StorageService/Info.plist: Removed. |
| * StorageProcess/EntryPoint/mac/XPCService/StorageServiceEntryPoint.mm: Removed. |
| * StorageProcess/EntryPoint/unix/StorageProcessMain.cpp: Removed. |
| * StorageProcess/EntryPoint/win/StorageProcessMain.cpp: Removed. |
| * StorageProcess/StorageProcess.cpp: Removed. |
| * StorageProcess/StorageProcess.h: Removed. |
| * StorageProcess/StorageProcess.messages.in: Removed. |
| * StorageProcess/StorageToWebProcessConnection.cpp: Removed. |
| * StorageProcess/StorageToWebProcessConnection.h: Removed. |
| * StorageProcess/StorageToWebProcessConnection.messages.in: Removed. |
| * StorageProcess/glib/StorageProcessMainGLib.cpp: Removed. |
| * StorageProcess/ios/StorageProcessIOS.mm: Removed. |
| * StorageProcess/mac/StorageProcessMac.mm: Removed. |
| * StorageProcess/mac/com.apple.WebKit.Storage.sb.in: Removed. |
| * StorageProcess/unix/StorageProcessMainUnix.h: Removed. |
| * StorageProcess/win/StorageProcessMainWin.cpp: Removed. |
| * StorageProcess/win/StorageProcessMainWin.h: Removed. |
| * UIProcess/API/C/WKContext.cpp: |
| (WKContextTerminateStorageProcess): Deleted. |
| (WKContextGetDatabaseProcessIdentifier): Deleted. |
| * UIProcess/API/C/WKContext.h: |
| * UIProcess/API/C/WKContextPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _terminateStorageProcess]): Deleted. |
| (-[WKProcessPool _storageProcessIdentifier]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/Launcher/glib/ProcessLauncherGLib.cpp: |
| (WebKit::ProcessLauncher::launchProcess): |
| * UIProcess/Launcher/win/ProcessLauncherWin.cpp: |
| (WebKit::processName): |
| * UIProcess/Storage/StorageProcessProxy.cpp: Removed. |
| * UIProcess/Storage/StorageProcessProxy.h: Removed. |
| * UIProcess/Storage/StorageProcessProxy.messages.in: Removed. |
| * UIProcess/WebContextClient.cpp: |
| (WebKit::WebContextClient::storageProcessDidCrash): Deleted. |
| * UIProcess/WebContextClient.h: |
| * UIProcess/WebContextSupplement.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::sendMemoryPressureEvent): |
| (WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled): |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): Deleted. |
| (WebKit::WebProcessPool::getStorageProcessConnection): Deleted. |
| (WebKit::WebProcessPool::storageProcessCrashed): Deleted. |
| (WebKit::WebProcessPool::storageProcessIdentifier): Deleted. |
| (WebKit::WebProcessPool::terminateStorageProcessForTesting): Deleted. |
| * UIProcess/WebProcessPool.h: |
| (WebKit::WebProcessPool::sendToStorageProcess): Deleted. |
| (WebKit::WebProcessPool::sendToStorageProcessRelaunchingIfNecessary): Deleted. |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getStorageProcessConnection): Deleted. |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::~WebsiteDataStore): |
| (WebKit::WebsiteDataStore::storageProcessParameters): Deleted. |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h: |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: Removed. |
| * WebProcess/Storage/WebToStorageProcessConnection.h: Removed. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcess::webToStorageProcessConnectionClosed): Deleted. |
| (WebKit::WebProcess::ensureWebToStorageProcessConnection): Deleted. |
| * WebProcess/WebProcess.h: |
| * webkitglib-symbols.map: |
| |
| 2018-10-01 David Quesada <david_quesada@apple.com> |
| |
| Add missing Objective-C versions of downloads SPI |
| https://bugs.webkit.org/show_bug.cgi?id=190149 |
| rdar://problem/44915592 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (-[WKProcessPool _downloadURLRequest:]): |
| (-[WKProcessPool _resumeDownloadFromData:path:]): |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/_WKDownload.h: |
| * UIProcess/API/Cocoa/_WKDownload.mm: |
| (-[_WKDownload resumeData]): |
| * UIProcess/API/Cocoa/_WKDownloadInternal.h: |
| * UIProcess/Cocoa/DownloadClient.mm: |
| Move the DownloadProxy's WrapperTraits out of DownloadClient, and into the internal |
| header so it can be used from other classes (i.e. WKProcessPool here). |
| |
| 2018-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Fix internal build after r236665 |
| https://bugs.webkit.org/show_bug.cgi?id=189850 |
| |
| * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-10-01 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Import a JS CBOR coder |
| https://bugs.webkit.org/show_bug.cgi?id=189877 |
| <rdar://problem/44701124> |
| |
| Reviewed by Chris Dumez. |
| |
| Update MockWebAuthenticationConfiguration to have userCertificateBase64 and intermediateCACertificateBase64 |
| as Local's memeber such that tests can pass those certificates to MockLocalConnection instead of letting it |
| holds some static ones. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: |
| (WebKit::MockLocalConnection::getAttestation const): |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: |
| |
| 2018-10-01 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r236512): http/tests/navigation/keyboard-events-during-provisional-navigation.html is flaky |
| https://bugs.webkit.org/show_bug.cgi?id=190052 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendMessage): |
| * Platform/IPC/Connection.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePagePostMessageIgnoringFullySynchronousMode): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::postMessageIgnoringFullySynchronousMode): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-10-01 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Special keys are misidentified in DOM keyboard events |
| https://bugs.webkit.org/show_bug.cgi?id=189974 |
| |
| Reviewed by Wenson Hsieh. |
| |
| Take the key code of WebEvent to be the key code for the new WebKeyboardEvent verbatim |
| now that we normalize the character strings of the WebEvent to account for the special |
| UIKit input strings. |
| |
| * Shared/ios/WebIOSEventFactory.mm: |
| (WebIOSEventFactory::createWebKeyboardEvent): |
| |
| 2018-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Fix an internal build after r236665 |
| https://bugs.webkit.org/show_bug.cgi?id=189850 |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| Make WKNSURLAuthenticationChallenge.h a private header. |
| |
| 2018-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| URL should not use TextEncoding internally |
| https://bugs.webkit.org/show_bug.cgi?id=190111 |
| |
| Reviewed by Andy Estes. |
| |
| * UIProcess/WebInspectorProxy.cpp: |
| |
| 2018-10-01 Jeremy Jones <jeremyj@apple.com> |
| |
| Unify implementation in VideoFullscreenInterfaceAVKit |
| https://bugs.webkit.org/show_bug.cgi?id=190091 |
| rdar://problem/44734523 |
| |
| Reviewed by Jer Noble. |
| |
| Unified code in VideoFullscreenInterfaceAVKit now that new code path is proven and include |
| any changes that had been made in the old path. |
| |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const): |
| (WebKit::VideoFullscreenManager::didSetupFullscreen): |
| (WebKit::VideoFullscreenManager::didExitFullscreen): |
| |
| 2018-10-01 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Wrong key event may be sent to UIKit |
| https://bugs.webkit.org/show_bug.cgi?id=189992 |
| |
| Reviewed by Simon Fraser. |
| |
| Retain a clone of a received UIEvent if it is for a hardware key event so as to ensure that we |
| notify the UIKit keyboard code of the correct keyboard event. |
| |
| Currently the UIProcess retains the UIEvent associated with a keyboard event so as to defer |
| notifying the UIKit keyboard code (via -_handleKeyUIEvent) about a received keyboard event until |
| after the WebProcess has processed the raw key event. If this UIEvent is for a hardware keyboard |
| event then it is not sufficient to retain it to preserve its value because UIKit uses a singleton |
| UIEvent for all hardware keyboard events ;=> its value will be clobbered as each hardware keyboard |
| event is received. Instead we need to explicitly clone a UIEvent for a hardware key event before |
| retaining it. |
| |
| * Platform/spi/ios/UIKitSPI.h: Forward declare SPI. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView handleKeyEvent:]): Clone the UIEvent if it is for a hardware key event. |
| |
| 2018-10-01 Alex Christensen <achristensen@webkit.org> |
| |
| Deprecate ObjC SPI in Deprecated Xcode group |
| https://bugs.webkit.org/show_bug.cgi?id=189850 |
| |
| Reviewed by Andy Estes. |
| |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| * Shared/mac/ObjCObjectGraph.mm: |
| (WebKit::typeFromObject): |
| (WebKit::ObjCObjectGraph::encode): |
| (WebKit::ObjCObjectGraph::decode): |
| * UIProcess/API/Cocoa/WKBrowsingContextController.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (didStartProvisionalNavigation): |
| (didReceiveServerRedirectForProvisionalNavigation): |
| (didFailProvisionalNavigation): |
| (didCommitNavigation): |
| (didFinishNavigation): |
| (didFailNavigation): |
| (canAuthenticateAgainstProtectionSpace): |
| (didReceiveAuthenticationChallenge): |
| (processDidCrash): |
| (setUpPagePolicyClient): |
| * UIProcess/API/Cocoa/WKBrowsingContextGroup.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextGroupInternal.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextHistoryDelegate.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextLoadDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h: |
| * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.h: |
| * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm: |
| (-[WKNSURLAuthenticationChallengeSender cancelAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender performDefaultHandlingForAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]): |
| * UIProcess/API/Cocoa/WKNavigationData.h: |
| * UIProcess/API/Cocoa/WKNavigationDataInternal.h: |
| * UIProcess/API/Cocoa/WKProcessGroup.h: |
| * UIProcess/API/Cocoa/WKProcessGroup.mm: |
| (didCreateConnection): |
| (getInjectedBundleInitializationUserData): |
| (didNavigateWithNavigationData): |
| (didPerformClientRedirect): |
| (didPerformServerRedirect): |
| (didUpdateHistoryTitle): |
| * UIProcess/API/Cocoa/WKTypeRefWrapper.h: |
| * UIProcess/API/Cocoa/WKView.h: |
| (WK_CLASS_DEPRECATED_WITH_REPLACEMENT): |
| * UIProcess/API/Cocoa/_WKThumbnailView.h: |
| * UIProcess/API/Cocoa/_WKThumbnailView.mm: |
| * UIProcess/Cocoa/WebProcessProxyCocoa.mm: |
| (WebKit::WebProcessProxy::transformHandlesToObjects): |
| (WebKit::WebProcessProxy::transformObjectsToHandles): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| * UIProcess/Gamepad/mac/UIGamepadProviderMac.mm: |
| (WebKit::UIGamepadProvider::platformWebPageProxyForGamepadInput): |
| * UIProcess/ios/WKContentView.h: |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): |
| * WebProcess/cocoa/WebProcessCocoa.mm: |
| (WebKit::WebProcess::transformHandlesToObjects): |
| (WebKit::WebProcess::transformObjectsToHandles): |
| |
| 2018-10-01 Youenn Fablet <youenn@apple.com> |
| |
| [macOS Sierra] Layout Test http/wpt/cache-storage/cache-put-keys.https.any.worker.html is a flaky failure |
| https://bugs.webkit.org/show_bug.cgi?id=184204 |
| |
| Reviewed by Chris Dumez. |
| |
| NetworkCache::Storage by default limits the length to read to 1500 milliseconds. |
| This is good for the HTTP cache since networking might be faster. |
| It does not work for DOM cache which needs to get these resources even if it takes a long time. |
| |
| Since this is disabled by a Mode::Testing option, use it for DOMCache after renaming it to Mode::AvoidRandomness. |
| |
| Add a bunch of release logging to help debugging error cases. |
| |
| * NetworkProcess/cache/CacheStorageEngineCaches.cpp: |
| (WebKit::CacheStorage::Caches::retrieveOriginFromDirectory): |
| (WebKit::CacheStorage::Caches::initialize): |
| (WebKit::CacheStorage::Caches::writeCachesToDisk): |
| (WebKit::CacheStorage::Caches::readRecord): |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::open): |
| * NetworkProcess/cache/NetworkCacheStorage.cpp: |
| (WebKit::NetworkCache::Storage::dispatchReadOperation): |
| (WebKit::NetworkCache::Storage::shrinkIfNeeded): |
| * NetworkProcess/cache/NetworkCacheStorage.h: |
| |
| 2018-10-01 Olivier Blin <olivier.blin@softathome.com> |
| |
| [WPE] Remove WebKit2InspectorGResourceBundle.xml |
| https://bugs.webkit.org/show_bug.cgi?id=190132 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/wpe/WebKit2InspectorGResourceBundle.xml: Removed. |
| This is unused since legacy INSPECTOR_SERVER implementation has |
| been removed in r217924. |
| |
| 2018-09-30 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Clean up RealtimeMediaSource settings change handling |
| https://bugs.webkit.org/show_bug.cgi?id=189998 |
| <rdar://problem/44797884> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| (WebKit::UserMediaCaptureManager::Source::setSettings): |
| |
| 2018-09-30 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Use display-specific capture factories |
| https://bugs.webkit.org/show_bug.cgi?id=190043 |
| <rdar://problem/44834412> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.h: |
| |
| 2018-09-29 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236631. |
| https://bugs.webkit.org/show_bug.cgi?id=190112 |
| |
| Caused various eventSender tests, including fast/css/pseudo- |
| active-style-sharing*, to fail (Requested by smfr on #webkit). |
| |
| Reverted changeset: |
| |
| "Regression(r236512): http/tests/navigation/keyboard-events- |
| during-provisional-navigation.html is flaky" |
| https://bugs.webkit.org/show_bug.cgi?id=190052 |
| https://trac.webkit.org/changeset/236631 |
| |
| 2018-09-29 Chris Dumez <cdumez@apple.com> |
| |
| [PSON] Deal with the drawing area potentially being null in WebFrameLoaderClient::transitionToCommittedForNewPage() |
| https://bugs.webkit.org/show_bug.cgi?id=190084 |
| <rdar://problem/44844561> |
| |
| Reviewed by Antti Koivisto. |
| |
| Deal with the drawing area potentially being null in WebFrameLoaderClient::transitionToCommittedForNewPage(), as a |
| result of calling WebPage::tearDownDrawingAreaForSuspend(). |
| |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): |
| |
| 2018-09-28 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| No DOM API to instantiate an attachment for an img element |
| https://bugs.webkit.org/show_bug.cgi?id=189934 |
| <rdar://problem/44743222> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Makes some adjustments to support using _WKAttachment's file wrapper to change the contents of any image element |
| hosting the attachment in its shadow root. To do this, we add some plumbing to allow the UI process to update an |
| attachment element's enclosing image with data from its file wrapper. |
| |
| * UIProcess/API/APIAttachment.cpp: |
| (API::Attachment::isEmpty const): |
| (API::Attachment::enclosingImageData const): |
| |
| Helper method that creates a SharedBuffer representing image data for the attachment. Only returns a non-null |
| value for attachment elements that are enclosed within an image. |
| |
| * UIProcess/API/APIAttachment.h: |
| * UIProcess/API/Cocoa/APIAttachmentCocoa.mm: |
| (API::Attachment::enclosingImageData const): |
| (API::Attachment::isEmpty const): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _attachmentForIdentifier:]): |
| |
| Add new SPI to request a _WKAttachment for a given unique identifier. Currently, this is only used for testing. |
| |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::platformRegisterAttachment): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::updateAttachmentAttributes): |
| (WebKit::WebPageProxy::registerAttachmentIdentifier): |
| (WebKit::WebPageProxy::didInsertAttachmentWithIdentifier): |
| |
| Plumb whether or not the attachment is enclosed by an image from the web process to the UI process. |
| |
| (WebKit::WebPageProxy::didRemoveAttachmentWithIdentifier): |
| (WebKit::WebPageProxy::didInsertAttachment): Deleted. |
| (WebKit::WebPageProxy::didRemoveAttachment): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::registerAttachmentIdentifier): |
| (WebKit::WebEditorClient::didInsertAttachmentWithIdentifier): |
| |
| Update attachment attributes after inserting an attachment. This ensures that an attachment that was created and |
| later inserted via script into the document will be synced with state in the UI process, if the client has |
| changed the contents of the attachment. |
| |
| * WebProcess/WebCoreSupport/WebEditorClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updateAttachmentAttributes): |
| |
| Plumb attachment data from the UI process to the web process. |
| |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-09-28 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r236512): http/tests/navigation/keyboard-events-during-provisional-navigation.html is flaky |
| https://bugs.webkit.org/show_bug.cgi?id=190052 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Introduce a new IPC::SendOption indicating that the IPC should always be sent asynchronously, |
| even if the connection is in fully synchronous mode. This is used by WebKitTestRunner for |
| all text outputting (e.g. console.log) is asynchronous, and thus in order. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendMessage): |
| * Platform/IPC/Connection.h: |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePagePostMessageIgnoringFullySynchronousMode): |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::postMessageIgnoringFullySynchronousMode): |
| * WebProcess/WebPage/WebPage.h: |
| |
| 2018-09-28 John Wilander <wilander@apple.com> |
| |
| Skip debug assertion in ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain() |
| https://bugs.webkit.org/show_bug.cgi?id=190097 |
| <rdar://problem/44877080> |
| |
| Reviewed by Chris Dumez. |
| |
| The change in https://bugs.webkit.org/show_bug.cgi?id=190055 causes a |
| re-classification that may trigger a debug assertion in |
| ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain(). |
| We should skip the assertion for statistics model version 14 to avoid |
| this. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain const): |
| |
| 2018-09-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: crash in InspectorNetworkAgent::didReceiveResponse when loading denied x-frame resources |
| https://bugs.webkit.org/show_bug.cgi?id=190046 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didRetrieveCacheEntry): |
| Send the sanitized `ResourceResponse` with the message so WebInspector is able to access it. |
| |
| * WebProcess/Network/WebResourceLoader.h: |
| * WebProcess/Network/WebResourceLoader.cpp: |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| (WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied): |
| |
| 2018-09-28 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Polish WebAuthN auto-test environment |
| https://bugs.webkit.org/show_bug.cgi?id=189283 |
| <rdar://problem/44117828> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch changes MockWebAuthenticationConfiguration.local to optional such that tests can express |
| absence of local authenticators. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: |
| (WebKit::MockLocalConnection::getUserConsent const): |
| (WebKit::MockLocalConnection::getAttestation const): |
| * UIProcess/WebAuthentication/Mock/MockLocalService.cpp: |
| (WebKit::MockLocalService::platformStartDiscovery const): |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: |
| |
| 2018-09-28 Jer Noble <jer.noble@apple.com> |
| |
| Refactoring: eliminate raw pointer usage in Fullscreen code |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| <rdar://problem/43541164> |
| |
| Reviewed by Alex Christensen. |
| |
| Adopt those Ref and WeakPtr changes made in WebCore. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionModelContext::addClient): |
| (WebKit::PlaybackSessionModelContext::removeClient): |
| (WebKit::PlaybackSessionModelContext::durationChanged): |
| (WebKit::PlaybackSessionModelContext::currentTimeChanged): |
| (WebKit::PlaybackSessionModelContext::bufferedTimeChanged): |
| (WebKit::PlaybackSessionModelContext::rateChanged): |
| (WebKit::PlaybackSessionModelContext::seekableRangesChanged): |
| (WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged): |
| (WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged): |
| (WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged): |
| (WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged): |
| (WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged): |
| (WebKit::PlaybackSessionModelContext::externalPlaybackChanged): |
| (WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged): |
| (WebKit::PlaybackSessionModelContext::mutedChanged): |
| (WebKit::PlaybackSessionModelContext::volumeChanged): |
| (WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged): |
| (WebKit::PlaybackSessionManagerProxy::invalidate): |
| (WebKit::PlaybackSessionManagerProxy::createModelAndInterface): |
| (WebKit::PlaybackSessionManagerProxy::removeClientForContext): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::create): |
| (WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext): |
| (WebKit::VideoFullscreenModelContext::addClient): |
| (WebKit::VideoFullscreenModelContext::removeClient): |
| (WebKit::VideoFullscreenModelContext::willEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::didEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::willExitPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::didExitPictureInPicture): |
| (WebKit::VideoFullscreenManagerProxy::invalidate): |
| (WebKit::VideoFullscreenManagerProxy::createModelAndInterface): |
| (WebKit::VideoFullscreenManagerProxy::removeClientForContext): |
| (WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted. |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::setInterface): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface): |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext): |
| (WebKit::PlaybackSessionManager::~PlaybackSessionManager): |
| (WebKit::PlaybackSessionManager::createModelAndInterface): |
| (WebKit::PlaybackSessionManager::removeContext): |
| (WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted. |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| (WebKit::VideoFullscreenInterfaceContext::create): |
| (WebKit::VideoFullscreenInterfaceContext::createWeakPtr): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext): |
| (WebKit::VideoFullscreenManager::~VideoFullscreenManager): |
| (WebKit::VideoFullscreenManager::createModelAndInterface): |
| (WebKit::VideoFullscreenManager::removeContext): |
| |
| 2018-09-28 Chris Dumez <cdumez@apple.com> |
| |
| Drop support for cross-origin-window-policy header |
| https://bugs.webkit.org/show_bug.cgi?id=190081 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| * UIProcess/API/C/WKPreferencesRef.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::frameBecameRemote): |
| |
| 2018-09-28 Chris Dumez <cdumez@apple.com> |
| |
| Do not do automatic process prewarming while under memory pressure |
| https://bugs.webkit.org/show_bug.cgi?id=190082 |
| <rdar://problem/39771424> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Do not do automatic process prewarming while under memory pressure and |
| also terminate any prewarmed process when receiving a memory warning. |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::prewarmProcess): |
| (WebKit::WebProcessPool::didReachGoodTimeToPrewarm): |
| (WebKit::WebProcessPool::handleMemoryPressureWarning): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/ios/WebMemoryPressureHandlerIOS.mm: |
| (WebKit::installMemoryPressureHandler): |
| |
| 2018-09-28 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Allow programmatic focus when hardware keyboard is attached |
| https://bugs.webkit.org/show_bug.cgi?id=190017 |
| <rdar://problem/42270463> |
| |
| Reviewed by Wenson Hsieh. |
| |
| Make the experience of using iOS with a hardware keyboard more desktop-like by allowing |
| programmatic focusing of editable elements. |
| |
| * Platform/spi/ios/UIKitSPI.h: Forward declare SPI. |
| * Shared/NativeWebKeyboardEvent.h: |
| * Shared/ios/NativeWebKeyboardEventIOS.mm: |
| (WebKit::isInHardwareKeyboardMode): Returns whether we are in hardware keyboard mode. In DumpRenderTree |
| and WebKitTestRunner this function always returns false to keep test results deterministic. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]): |
| Allow starting an input session if we are in hardware keyboard mode. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::platformEditorState const): Send the full editor state if we are in hardware |
| keyboard mode regardless of whether layout has been performed so that UIProcess can update UI, |
| including the position of the caret, immediately. |
| |
| 2018-09-28 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Rename createMarkup to serializePreservingVisualAppearance |
| https://bugs.webkit.org/show_bug.cgi?id=190086 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| (WebKit::WebEditorClient::updateGlobalSelection): |
| |
| 2018-09-28 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r236605. |
| https://bugs.webkit.org/show_bug.cgi?id=190087 |
| |
| caused three API test timeouts (Requested by jernoble on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Refactoring: eliminate raw pointer usage in Fullscreen code" |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| https://trac.webkit.org/changeset/236605 |
| |
| 2018-09-28 Jer Noble <jer.noble@apple.com> |
| |
| Refactoring: eliminate raw pointer usage in Fullscreen code |
| https://bugs.webkit.org/show_bug.cgi?id=188747 |
| <rdar://problem/43541164> |
| |
| Reviewed by Alex Christensen. |
| |
| Adopt those Ref and WeakPtr changes made in WebCore. |
| |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.h: |
| * UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: |
| (WebKit::PlaybackSessionModelContext::addClient): |
| (WebKit::PlaybackSessionModelContext::removeClient): |
| (WebKit::PlaybackSessionModelContext::durationChanged): |
| (WebKit::PlaybackSessionModelContext::currentTimeChanged): |
| (WebKit::PlaybackSessionModelContext::bufferedTimeChanged): |
| (WebKit::PlaybackSessionModelContext::rateChanged): |
| (WebKit::PlaybackSessionModelContext::seekableRangesChanged): |
| (WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged): |
| (WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged): |
| (WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged): |
| (WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged): |
| (WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged): |
| (WebKit::PlaybackSessionModelContext::externalPlaybackChanged): |
| (WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged): |
| (WebKit::PlaybackSessionModelContext::mutedChanged): |
| (WebKit::PlaybackSessionModelContext::volumeChanged): |
| (WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged): |
| (WebKit::PlaybackSessionManagerProxy::invalidate): |
| (WebKit::PlaybackSessionManagerProxy::createModelAndInterface): |
| (WebKit::PlaybackSessionManagerProxy::removeClientForContext): |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.h: |
| * UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: |
| (WebKit::VideoFullscreenModelContext::create): |
| (WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext): |
| (WebKit::VideoFullscreenModelContext::addClient): |
| (WebKit::VideoFullscreenModelContext::removeClient): |
| (WebKit::VideoFullscreenModelContext::willEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::didEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::willExitPictureInPicture): |
| (WebKit::VideoFullscreenModelContext::didExitPictureInPicture): |
| (WebKit::VideoFullscreenManagerProxy::invalidate): |
| (WebKit::VideoFullscreenManagerProxy::createModelAndInterface): |
| (WebKit::VideoFullscreenManagerProxy::removeClientForContext): |
| (WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted. |
| * UIProcess/ios/fullscreen/WKFullScreenViewController.mm: |
| (WKFullScreenViewControllerPlaybackSessionModelClient::setInterface): |
| (WKFullScreenViewControllerVideoFullscreenModelClient::setInterface): |
| (-[WKFullScreenViewController videoControlsManagerDidChange]): |
| (-[WKFullScreenViewController _togglePiPAction:]): |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface): |
| * WebProcess/cocoa/PlaybackSessionManager.h: |
| * WebProcess/cocoa/PlaybackSessionManager.mm: |
| (WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext): |
| (WebKit::PlaybackSessionManager::~PlaybackSessionManager): |
| (WebKit::PlaybackSessionManager::createModelAndInterface): |
| (WebKit::PlaybackSessionManager::removeContext): |
| (WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted. |
| * WebProcess/cocoa/VideoFullscreenManager.h: |
| (WebKit::VideoFullscreenInterfaceContext::create): |
| (WebKit::VideoFullscreenInterfaceContext::createWeakPtr): |
| * WebProcess/cocoa/VideoFullscreenManager.mm: |
| (WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext): |
| (WebKit::VideoFullscreenManager::~VideoFullscreenManager): |
| (WebKit::VideoFullscreenManager::createModelAndInterface): |
| (WebKit::VideoFullscreenManager::removeContext): |
| |
| 2018-09-28 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [WinCairo] error C2027: use of undefined type 'WTF::EnumTraits<E>' while compiling AuthenticationChallengeProxy.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=190071 |
| |
| Unreviewed build fix for WinCairo port. |
| |
| AuthenticationChallengeDisposition was not defined in this file. |
| |
| * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: Include "AuthenticationChallengeDisposition.h". |
| |
| 2018-09-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Use enum class in createMarkup arguments |
| https://bugs.webkit.org/show_bug.cgi?id=190028 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp: |
| (WebKit::WebEditorClient::updateGlobalSelection): |
| |
| 2018-09-27 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Non-redirected top frame navigation should not get captured in statistics |
| https://bugs.webkit.org/show_bug.cgi?id=190055 |
| <rdar://problem/44843460> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| Bumped the statisticsModelVersion to 14 to be able to |
| correct legacy statistics. |
| (WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation): |
| Now skips capture if it's the main frame. |
| |
| 2018-09-27 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Allow access to VoiceServices features needed for accessibility |
| https://bugs.webkit.org/show_bug.cgi?id=190019 |
| <rdar://problem/43621111> |
| |
| Reviewed by Chris Fleizach. |
| |
| Revise the sandbox to allow access to relevant WebSpeech features. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-09-27 Sihui Liu <sihui_liu@apple.com> |
| |
| Fix IOSMAC build |
| https://bugs.webkit.org/show_bug.cgi?id=190021 |
| |
| Reviewed by Alex Christensen. |
| |
| * NetworkProcess/mac/NetworkProcessMac.mm: |
| (WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const): |
| |
| 2018-09-27 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Remove temporary compatibility fix for auto-dismiss popups |
| https://bugs.webkit.org/show_bug.cgi?id=189980 |
| <rdar://problem/44780645> |
| |
| Reviewed by Alex Christensen. |
| |
| The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary |
| compatibility fix as explained in: |
| https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should |
| remove it. |
| |
| These changes remove the parameter isTriggeredByUserGesture since it's no longer needed. |
| |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::WebProcess): |
| |
| 2018-09-27 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r236557. |
| |
| Really roll out r236557 this time because it breaks internal |
| builds. |
| |
| Reverted changeset: |
| |
| "Add VP8 support to WebRTC" |
| https://bugs.webkit.org/show_bug.cgi?id=189976 |
| https://trac.webkit.org/changeset/236557 |
| |
| 2018-09-27 Youenn Fablet <youenn@apple.com> |
| |
| Add VP8 support to WebRTC |
| https://bugs.webkit.org/show_bug.cgi?id=189976 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-27 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=184183 |
| <rdar://problem/36800576> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| In recent years, we have experienced re-entrancy bugs/crashes in WebCore due to the WebContent process |
| processing unrelated incoming synchronous IPC when waiting for a reply to one of its synchronous IPC |
| to another process. In order to deal with this, we introduced a DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| IPC::SendOption which we used on sendSync() calls where we knew re-entering would be unsafe. However, |
| it turns out to be needed for a lot of the WebProcess's sync IPC and it is error-prone. In order to |
| address the issue, we've decided to update the WebContent process behavior so that it processes all its |
| IPC in order (not matter if synchronous or not) and thus so that we never dispatch unrelated synchronous |
| IPC while waiting for a synchronous IPC reply, expect in cases where it would cause a deadlock. |
| |
| As a result, this patch also drops support for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply |
| IPC::SendOption which is no longer needed and has some code complexity. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::sendSyncMessage): |
| (IPC::Connection::waitForSyncReply): |
| * Platform/IPC/Connection.h: |
| (IPC::Connection::sendSync): |
| * PluginProcess/WebProcessConnection.cpp: |
| (WebKit::WebProcessConnection::WebProcessConnection): |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::StorageToWebProcessConnection): |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::connectionWillOpen): |
| * UIProcess/WebProcessProxy.h: |
| * UIProcess/WebProcessProxy.messages.in: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::postSynchronousMessage): |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::loadResourceSynchronously): |
| (WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier): |
| (WebKit::WebLoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier): |
| (WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier): |
| * WebProcess/Plugins/PluginProxy.cpp: |
| (WebKit::PluginProxy::destroy): |
| (WebKit::PluginProxy::supportsSnapshotting const): |
| * WebProcess/Plugins/WebPluginInfoProvider.cpp: |
| (WebKit::WebPluginInfoProvider::populatePluginCache): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame): |
| * WebProcess/WebCoreSupport/WebPlatformStrategies.cpp: |
| (WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::rootViewToScreen): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::getNetworkProcessConnection): |
| * WebProcess/WebProcess.h: |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-09-27 Antoine Quint <graouts@apple.com> |
| |
| [Web Animations] Turn Web Animations with CSS integration on |
| https://bugs.webkit.org/show_bug.cgi?id=184819 |
| <rdar://problem/39597337> |
| |
| Reviewed by Dean Jackson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-26 James Savage <james.savage@apple.com> |
| |
| Allow override of viewport configuration. |
| https://bugs.webkit.org/show_bug.cgi?id=188772. |
| <rdar://problem/43538892>. |
| |
| Reviewed by Simon Fraser. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/Cocoa/WKPreferences.mm: |
| (-[WKPreferences _setShouldIgnoreMetaViewport:]): |
| (-[WKPreferences _shouldIgnoreMetaViewport]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::viewportPropertiesDidChange): If we are ignoring the |
| <meta> viewport, short circuit calling setViewportArguments() and do not |
| do any updates. |
| (WebKit::WebPage::didCommitLoad): Ditto. |
| * WebProcess/WebPage/ios/WebPageIOS.mm: |
| (WebKit::WebPage::resetViewportDefaultConfiguration): Select the default |
| configuration based on UIProcess setting. |
| |
| 2018-09-26 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r236512): WKWebViewCandidateTests.SoftSpaceReplacementAfterCandidateInsertionWithoutReplacement API test is failing |
| https://bugs.webkit.org/show_bug.cgi?id=190007 |
| |
| Reviewed by Alex Christensen. |
| |
| Drop DispatchMessageEvenWhenWaitingForSyncReply SendOption from EditorStateChanged IPC calls to restore |
| pre-r236512 behavior. Before r236512, this option had no effect on IPC from the WebContent to the UIProcess |
| because the m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage flag was set |
| on that IPC::Connection. However, after r236512, m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage |
| is no longer set on the connection, and the DispatchMessageEvenWhenWaitingForSyncReply SendOption was |
| causing this message to get processed out of order with regards to other async IPC, thus causing the |
| API test failure. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::sendEditorStateUpdate): |
| (WebKit::WebPage::sendPartialEditorStateAndSchedulePostLayoutUpdate): |
| |
| 2018-09-26 Alex Christensen <achristensen@webkit.org> |
| |
| Fix UAF after r236463 |
| https://bugs.webkit.org/show_bug.cgi?id=190011 |
| |
| Reviewed by Chris Dumez. |
| |
| I had removed an early return in NetworkResourceLoader::continueDidReceiveResponse. |
| Reading the (probably) null m_responseCompletionHandler was reading after the object had been destroyed. |
| |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| |
| 2018-09-26 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Selection should work across shadow boundary when initiated by a mouse drag |
| https://bugs.webkit.org/show_bug.cgi?id=151380 |
| <rdar://problem/24363872> |
| |
| Reviewed by Antti Koivisto. |
| |
| Added SelectionAcrossShadowBoundariesEnabled as an internal debug feature, |
| and moved CSSCustomPropertiesAndValuesEnabled to where other experimental features are located. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-26 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, apply post-landing review comments after r236512. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| |
| 2018-09-26 Chris Dumez <cdumez@apple.com> |
| |
| UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it |
| https://bugs.webkit.org/show_bug.cgi?id=189927 |
| |
| Reviewed by Geoffrey Garen. |
| |
| UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it |
| in order to avoid deadlocks. This is not an issue currently because the WebProcess does process |
| incoming sync IPC when waiting for a sync IPC reply. However, we plan to change this in the future |
| in order to avoid bugs caused by re-entering WebCore at unsafe times. |
| |
| The reason the UIProcess previously did not do out of order sync IPC process was to avoid processing |
| a synchronous policy decision IPC for a frameID it did not know about yet, due to the DidCreateMainFrame / |
| DidCreateSubframe IPC messages being asynchronous. To address this issue, the decidePolicyForNavigationActionSync |
| IPC handler now calls didCreateMainFrame() / didCreateSubframe() as needed if it does not know about |
| the frame yet. Note that synchronous policy decisions are rare and are currently only needed by initial |
| about:blank and fragment navigations. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::createWithCoreMainFrame): |
| (WebKit::WebFrame::createSubframe): |
| Drop DispatchMessageEvenWhenWaitingForSyncReply SendOption when sending the |
| DidCreateMainFrame / DidCreateSubframe IPC. Previously, this SendOption has |
| no effect because the IPC::Connection would have the |
| m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage |
| flag set to true. However, now that we stop setting this flag on the IPC |
| connection from the WebProcess to the UIProcess, it would lead to those |
| IPC messages getting processed out of order with regards to the |
| DecidePolicyForNavigationAsync asynchronous IPC. DidCreateMainFrame would |
| sometimes get processed *after* the DecidePolicyForNavigationAsync IPC |
| and we would not know about the frameID yet. |
| |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeConnection): |
| |
| 2018-09-26 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=189695 |
| <rdar://problem/44551146> |
| |
| Reviewed by Simon Fraser. |
| |
| Freeze the layers on UI process side during process swap. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _processWillChange]): |
| |
| Shared work of _processWillSwap and _processDidExit. |
| |
| (-[WKWebView _processWillSwap]): |
| (-[WKWebView _processDidExit]): |
| |
| Split into two functions. Don't reset scroll position and similar when doing navigation swap. |
| |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::detachRemoteLayerTreeHost): |
| |
| Add to way to detach RemoteLayerTreeHost from the drawing area. Inert RemoteLayerTreeHost will host |
| the frozen layers. |
| |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilPendingUpdate): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilAnyUpdate): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::prepareForAppSuspension): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::hasVisibleContent const): |
| (WebKit::RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting const): |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h: |
| * UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm: |
| (WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost): |
| (WebKit::RemoteLayerTreeHost::updateLayerTree): |
| (WebKit::RemoteLayerTreeHost::animationDidStart): |
| (WebKit::RemoteLayerTreeHost::animationDidEnd): |
| (WebKit::RemoteLayerTreeHost::detachFromDrawingArea): |
| |
| Clear the DrawingArea backpointer. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::resetState): |
| |
| Detach and save the current RemoteLayerTreeHost on navigation swap. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::processWillSwap): |
| |
| Avoid reseting the scroll position. |
| |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): |
| |
| Drop the frozen layers after setting the new root layer. |
| |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): |
| |
| For completeness do this also on Mac (where remote layers are currently not used). |
| |
| 2018-09-25 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Make frame flattening an internal debug feature |
| https://bugs.webkit.org/show_bug.cgi?id=189984 |
| |
| Reviewed by Simon Fraser. |
| |
| Made frame flattening a runtime switchable from internal debug menu. |
| |
| To avoid having to enumerate three distinct values in the settings, made it a boolean flag in WKPreference. |
| That's what's exposd as an API anyway. |
| |
| * Shared/WebPreferences.yaml: |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetFrameFlatteningEnabled): |
| (WKPreferencesGetFrameFlatteningEnabled): |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webkit_settings_get_enable_frame_flattening): |
| (webkit_settings_set_enable_frame_flattening): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::updatePreferences): |
| |
| 2018-09-25 Eric Carlson <eric.carlson@apple.com> |
| |
| [MediaStream] Add Mac window capture source |
| https://bugs.webkit.org/show_bug.cgi?id=189958 |
| <rdar://problem/44767616> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/UserMediaPermissionRequestManagerProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::beginMonitoringCaptureDevices): Sync with webcore prefs before listening |
| to device changes so we listen on the correct devices. |
| |
| 2018-09-25 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r236471 and r236480. |
| |
| Seems to be causing some flaky crashes |
| |
| Reverted changesets: |
| |
| "UIProcess should process incoming sync IPC from WebProcess |
| when waiting for a sync IPC reply from it" |
| https://bugs.webkit.org/show_bug.cgi?id=189927 |
| https://trac.webkit.org/changeset/236471 |
| |
| "Revert some of the changes in r236471" |
| https://bugs.webkit.org/show_bug.cgi?id=189973 |
| https://trac.webkit.org/changeset/236480 |
| |
| 2018-09-25 Conrad Shultz <conrad_shultz@apple.com> |
| |
| Enable customization of the file upload panel |
| https://bugs.webkit.org/show_bug.cgi?id=189970 |
| |
| Reviewed by Wenson Hsieh. |
| |
| With this change, platform implementations can override, or implement in a category, |
| +[WKContentView _fileUploadPanelClass] as needed. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView _showRunOpenPanel:resultListener:]): |
| |
| 2018-09-25 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r236420 and r236458. |
| |
| This change is not fully correct |
| |
| Reverted changesets: |
| |
| "Do not do early processing of incoming sync IPC unless we're |
| waiting for a sync IPC reply" |
| https://bugs.webkit.org/show_bug.cgi?id=186941 |
| https://trac.webkit.org/changeset/236420 |
| |
| "Unreviewed, update bug number of http/tests/misc/blob- |
| size.html crash on Windows" |
| https://trac.webkit.org/changeset/236458 |
| |
| 2018-09-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Unreviewed, a quick fix after r236481. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setMockWebAuthenticationConfiguration): |
| Add an early return, so we don't end up with setting MockWebAuthenticationConfiguration twice. |
| |
| 2018-09-25 John Wilander <wilander@apple.com> |
| |
| Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS) |
| https://bugs.webkit.org/show_bug.cgi?id=189959 |
| <rdar://problem/44767642> |
| |
| Reviewed by Chris Dumez. |
| |
| We no longer make use of CFNetwork's cookie partitioning so we should |
| change the compile-time flag to something that makes sense. This should |
| also make it easier/cleaner for other ports. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::cookiesForDOM): |
| (WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame): |
| (WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage): |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::didFinishLoading): |
| (WebKit::NetworkResourceLoader::sendResultForCacheEntry): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::Cache::retrieve): |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.h: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): |
| (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): |
| (WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): |
| * Shared/WebProcessCreationParameters.cpp: |
| (WebKit::WebProcessCreationParameters::encode const): |
| (WebKit::WebProcessCreationParameters::decode): |
| * Shared/WebProcessCreationParameters.h: |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| (WebKit::WebProcessPool::platformInitializeNetworkProcess): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/WebPageProxy.cpp: |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler): |
| (WebKit::WebResourceLoadStatisticsStore::callGrantStorageAccessHandler): |
| (WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess): |
| (WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap): |
| (WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler): |
| (WebKit::WebResourceLoadStatisticsStore::callRemoveDomainsHandler): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources): |
| (WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources): |
| (WebKit::WebsiteDataStore::networkProcessDidCrash): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| * WebProcess/WebCoreSupport/WebChromeClient.cpp: |
| * WebProcess/WebCoreSupport/WebChromeClient.h: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::detachedFromParent2): |
| (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.h: |
| * WebProcess/WebPage/WebPage.cpp: |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeWebProcess): |
| |
| 2018-09-25 Philippe Normand <pnormand@igalia.com> |
| |
| [WPE] Export jsc_ symbols |
| https://bugs.webkit.org/show_bug.cgi?id=189964 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * webkitglib-symbols.map: Keep jsc_* symbols as visible so they |
| can be used by applications depending on WPE. |
| |
| 2018-09-25 Jiewen Tan <jiewen_tan@apple.com> |
| |
| [WebAuthN] Make AuthenticatorManager |
| https://bugs.webkit.org/show_bug.cgi?id=189279 |
| <rdar://problem/44116792> |
| |
| Reviewed by Chris Dumez. |
| |
| This patch introduces AuthenticatorManager which is the central of WebAuthentication that 1) handles |
| web requests, 2) discovers authenticators, 3) manages authetnicators and 4) in the future interacts with UI. |
| The lifetime of the AuthenticatorManager is managed by WebsiteDataStore such that it is almost a singleton |
| per UI Process. |
| |
| 1) Requests come from WebAuthenticatorCoordinatorProxy and then cached in AuthenticatorManager which will |
| then distribute requests whenever a new authenticator is discovered. |
| |
| 2) An ABC AuthenticatorTransportService is provided as an interface for AuthenticatorManager to invoke |
| startDiscovery. Actual work will be done in corresponding derived classes, say, LocalService. LocalService |
| is the one that discover attached platform authenticators, for example, TouchID or FaceID. |
| |
| Eache service is unique per AuthetnicatorManager, which means we will have at most 4 services, Local, USB, |
| NFC, and BLE. The latter three will be implemented soon. Also, AuthenticatorManager serves as an observer to |
| *Service, so the latter can inform the former whenever an authenticator is added or removed. |
| |
| When a new authenticator is discovered, the corresponding service will create an Authetnicator object that |
| binds to the physical authenticator device through a *Connection object. There is no ABC for connection for |
| now as I forsee every *Connection will be quite different. The *Connection object is the one that send/receive |
| messages from the physicla device. So far, a LocalConnection is provided even though normally local authenticators |
| are attached. This class is provided solely for separating UI and network traffic from LocalAuthenticator's |
| request handling process. So we can override them in a mock test environment. I will talk about this in the |
| next section. |
| |
| 3) An ABC Authenticator is provided as an interface for AuthenticatorManager to distribute requests on. Requests |
| will then be handled by the derived classes, say, LocalAuthenticator. Each authenticator object is a FSM that |
| works asynchronously. |
| |
| For LocalAuthenticator, it has 4 states for MakeCredential: Init => RequestReceived => UserConsented => Attested => End, |
| and 3 states for GetAssertion: Init => RequestReceived => UserConsented => End. In the transit from RequestReceived to |
| UserConsented, it will invoke LocalConnection to talk to LocalAuthentication.framework that prompt users for TouchID |
| or FaceID. And then the transit from UserConsented => Attested, it will invoke LocalConnection to talk to |
| DeviceIdentity.framework that does Apple attestation. Most of the work are from the original LocalAuthenticator |
| implementation, and this patch converts it to a FSM and simplify the callback and threading model. |
| |
| When a respond is ready, each authenticator will notify their observer which is the AuthenticatorManager. |
| AuthenticatorManager will only reply to Web Process whenever there is a valid respond or a terminating error. Otherwise, |
| the request will time out. I will explore the time out mechanism in a more detailed manner in Bug 189642. |
| |
| The above is a briefing of the AuthetnicatorManager architecture in functional. The asynchronous model is explained here: |
| 1) Since most discovery and request handling processes are asynchronous, I enforced them to be executed asyncrhonous in |
| the interface of the ABC. |
| 2) There is no dedicated secondary threads here. However, underlying framework might decide to perform works on a dedicated |
| thread and then execute the provided callback. Whenever such situation happens, the policy here is to wrap the actual callback |
| into a callback that will post the actual callback back to the main thread and pass the wrapping callback to the APIs. Hence, |
| weak pointers in the actual callback are guaranteed to work. |
| 3) Callbacks are used only if it is one way, and they are CompletionHandlers. |
| 4) Potential multi ways asynchronous operations are encapsulated in regarding Observer interfaces. |
| |
| Finally, let me explain how the mock test works: |
| 1) Mock testing is done in WebKitTestRunner instead of Internals because a considerable large portion of work is in UIProcess |
| instead of WebProcess, says, the AuthenticatorManager. |
| 2) The basic idea is to override functionality of *Connection classes and then make them thin such that we can get the best |
| possible coverage in auto tests. |
| 3) In order to enable layout tests to configure the Mock*Connection classes, a MockWebAuthenticationConfiguration struct is |
| provided. A corresponding JS dictionary will be created by each test and passed from the TestRunner to the connection object. |
| 4) To bridge the above tunnel, a MockAuthenticatorManager is constructed. It is instrumented to return every error. |
| 5) Also, Mock*Service classes are made to mock the discovery process as well. |
| 6) Noted, every mock overrided methods are made thin. |
| |
| * CMakeLists.txt: |
| * Configurations/WebKit.xcconfig: |
| * Platform/spi/Cocoa/DeviceIdentitySPI.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h. |
| * SourcesCocoa.txt: |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetWebAuthenticationMockConfiguration): |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/WebAuthentication/Authenticator.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| (WebKit::Authenticator::handleRequest): |
| (WebKit::Authenticator::receiveRespond const): |
| * UIProcess/WebAuthentication/Authenticator.h: Renamed from Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.h. |
| (WebKit::Authenticator::setObserver): |
| (WebKit::Authenticator::observer const): |
| (WebKit::Authenticator::requestData const): |
| * UIProcess/WebAuthentication/AuthenticatorManager.cpp: Added. |
| (WebKit::AuthenticatorManagerInternal::collectTransports): |
| (WebKit::AuthenticatorManager::makeCredential): |
| (WebKit::AuthenticatorManager::getAssertion): |
| (WebKit::AuthenticatorManager::clearState): |
| (WebKit::AuthenticatorManager::authenticatorAdded): |
| (WebKit::AuthenticatorManager::respondReceived): |
| (WebKit::AuthenticatorManager::createService const): |
| (WebKit::AuthenticatorManager::respondReceivedInternal): |
| (WebKit::AuthenticatorManager::startDiscovery): |
| * UIProcess/WebAuthentication/AuthenticatorManager.h: Added. |
| (WebKit::AuthenticatorManager::pendingCompletionHandler): |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h. |
| (WebKit::AuthenticatorTransportService::create): |
| (WebKit::AuthenticatorTransportService::createMock): |
| (WebKit::AuthenticatorTransportService::AuthenticatorTransportService): |
| (WebKit::AuthenticatorTransportService::startDiscovery const): |
| * UIProcess/WebAuthentication/AuthenticatorTransportService.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h. |
| (WebKit::AuthenticatorTransportService::observer const): |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticationSoftLink.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h. |
| * UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: Added. |
| (WebKit::LocalAuthenticatorInternal::buildAuthData): |
| (WebKit::LocalAuthenticatorInternal::transportsContain): |
| (WebKit::LocalAuthenticatorInternal::produceHashSet): |
| (WebKit::LocalAuthenticatorInternal::toVector): |
| (WebKit::LocalAuthenticator::LocalAuthenticator): |
| (WebKit::LocalAuthenticator::makeCredential): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented): |
| (WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested): |
| (WebKit::LocalAuthenticator::getAssertion): |
| (WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h. |
| * UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: Added. |
| (WebKit::LocalConnection::getUserConsent const): |
| (WebKit::LocalConnection::getAttestation const): |
| * UIProcess/WebAuthentication/Cocoa/LocalService.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * UIProcess/WebAuthentication/Cocoa/LocalService.mm: Renamed from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h. |
| (WebKit::LocalService::LocalService): |
| (WebKit::LocalService::isAvailable): |
| (WebKit::LocalService::startDiscoveryInternal const): |
| (WebKit::LocalService::platformStartDiscovery const): |
| (WebKit::LocalService::createLocalConnection const): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| (WebKit::MockAuthenticatorManager::MockAuthenticatorManager): |
| (WebKit::MockAuthenticatorManager::createService const): |
| (WebKit::MockAuthenticatorManager::respondReceivedInternal): |
| * UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: Added. |
| (WebKit::MockLocalConnection::MockLocalConnection): |
| (WebKit::MockLocalConnection::getUserConsent const): |
| (WebKit::MockLocalConnection::getAttestation const): |
| * UIProcess/WebAuthentication/Mock/MockLocalService.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| (WebKit::MockLocalService::MockLocalService): |
| (WebKit::MockLocalService::platformStartDiscovery const): |
| (WebKit::MockLocalService::createLocalConnection const): |
| * UIProcess/WebAuthentication/Mock/MockLocalService.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * UIProcess/WebAuthentication/WebAuthenticationRequestData.h: Renamed from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h. |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: |
| (WebKit::WebAuthenticatorCoordinatorProxy::WebAuthenticatorCoordinatorProxy): |
| (WebKit::WebAuthenticatorCoordinatorProxy::makeCredential): |
| (WebKit::WebAuthenticatorCoordinatorProxy::getAssertion): |
| (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable): |
| (WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailableReply): Deleted. |
| * UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::WebsiteDataStore): |
| (WebKit::WebsiteDataStore::setMockWebAuthenticationConfiguration): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| (WebKit::WebsiteDataStore::authenticatorManager): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-09-25 Chris Dumez <cdumez@apple.com> |
| |
| Revert some of the changes in r236471 |
| https://bugs.webkit.org/show_bug.cgi?id=189973 |
| |
| Reviewed by Alex Christensen. |
| |
| Revert some of the changes in r236471 as they should not be needed. In particular, |
| it should not be possible for the DecidePolicyForNavigationActionSync IPC to get |
| processed *before* the DidCreateMainFrame / DidCreateSubframe ones because those |
| use IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply. They are thus |
| processed early when necessary, the same way as synchronous IPC messages. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebPage/WebFrame.cpp: |
| (WebKit::WebFrame::createWithCoreMainFrame): |
| (WebKit::WebFrame::createSubframe): |
| |
| 2018-09-25 Sihui Liu <sihui_liu@apple.com> |
| |
| Move Service Worker Management from Storage Process to Network Process |
| https://bugs.webkit.org/show_bug.cgi?id=189422 |
| |
| Reviewed by Youenn Fablet. |
| |
| After r236035, this is another piece to move functionality of storage process to network process. When |
| we enable Service Workers, network process instead of storage process will be launched. |
| This patch will not change the behavior of Service Worker. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| (WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage): |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::unregisterSWConnections): |
| (WebKit::NetworkConnectionToWebProcess::establishSWServerConnection): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::didReceiveMessage): |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::createNetworkConnectionToWebProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::destroySession): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::connectionToContextProcessFromIPCConnection): |
| (WebKit::NetworkProcess::connectionToContextProcessWasClosed): |
| (WebKit::NetworkProcess::needsServerToContextConnectionForOrigin const): |
| (WebKit::NetworkProcess::swServerForSession): |
| (WebKit::NetworkProcess::swOriginStoreForSession): |
| (WebKit::NetworkProcess::existingSWOriginStoreForSession const): |
| (WebKit::NetworkProcess::serverToContextConnectionForOrigin): |
| (WebKit::NetworkProcess::createServerToContextConnection): |
| (WebKit::NetworkProcess::didFailFetch): |
| (WebKit::NetworkProcess::didNotHandleFetch): |
| (WebKit::NetworkProcess::didReceiveFetchResponse): |
| (WebKit::NetworkProcess::didReceiveFetchData): |
| (WebKit::NetworkProcess::didReceiveFetchFormData): |
| (WebKit::NetworkProcess::didFinishFetch): |
| (WebKit::NetworkProcess::postMessageToServiceWorkerClient): |
| (WebKit::NetworkProcess::postMessageToServiceWorker): |
| (WebKit::NetworkProcess::registerSWServerConnection): |
| (WebKit::NetworkProcess::unregisterSWServerConnection): |
| (WebKit::NetworkProcess::swContextConnectionMayNoLongerBeNeeded): |
| (WebKit::NetworkProcess::disableServiceWorkerProcessTerminationDelay): |
| (WebKit::NetworkProcess::addServiceWorkerSession): |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const): |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * NetworkProcess/ServiceWorker/WebSWOriginStore.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWOriginStore.cpp. |
| (WebKit::WebSWOriginStore::WebSWOriginStore): |
| (WebKit::WebSWOriginStore::addToStore): |
| (WebKit::WebSWOriginStore::removeFromStore): |
| (WebKit::WebSWOriginStore::clearStore): |
| (WebKit::WebSWOriginStore::importComplete): |
| (WebKit::WebSWOriginStore::registerSWServerConnection): |
| (WebKit::WebSWOriginStore::unregisterSWServerConnection): |
| (WebKit::WebSWOriginStore::sendStoreHandle): |
| (WebKit::WebSWOriginStore::didInvalidateSharedMemory): |
| * NetworkProcess/ServiceWorker/WebSWOriginStore.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWOriginStore.h. |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.cpp. |
| (WebKit::WebSWServerConnection::WebSWServerConnection): |
| (WebKit::WebSWServerConnection::~WebSWServerConnection): |
| (WebKit::WebSWServerConnection::rejectJobInClient): |
| (WebKit::WebSWServerConnection::resolveRegistrationJobInClient): |
| (WebKit::WebSWServerConnection::resolveUnregistrationJobInClient): |
| (WebKit::WebSWServerConnection::startScriptFetchInClient): |
| (WebKit::WebSWServerConnection::updateRegistrationStateInClient): |
| (WebKit::WebSWServerConnection::fireUpdateFoundEvent): |
| (WebKit::WebSWServerConnection::setRegistrationLastUpdateTime): |
| (WebKit::WebSWServerConnection::setRegistrationUpdateViaCache): |
| (WebKit::WebSWServerConnection::notifyClientsOfControllerChange): |
| (WebKit::WebSWServerConnection::updateWorkerStateInClient): |
| (WebKit::WebSWServerConnection::cancelFetch): |
| (WebKit::WebSWServerConnection::startFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorker): |
| (WebKit::WebSWServerConnection::scheduleJobInServer): |
| (WebKit::WebSWServerConnection::didReceiveFetchResponse): |
| (WebKit::WebSWServerConnection::didReceiveFetchData): |
| (WebKit::WebSWServerConnection::didReceiveFetchFormData): |
| (WebKit::WebSWServerConnection::didFinishFetch): |
| (WebKit::WebSWServerConnection::didFailFetch): |
| (WebKit::WebSWServerConnection::didNotHandleFetch): |
| (WebKit::WebSWServerConnection::postMessageToServiceWorkerClient): |
| (WebKit::WebSWServerConnection::matchRegistration): |
| (WebKit::WebSWServerConnection::registrationReady): |
| (WebKit::WebSWServerConnection::getRegistrations): |
| (WebKit::WebSWServerConnection::registerServiceWorkerClient): |
| (WebKit::WebSWServerConnection::unregisterServiceWorkerClient): |
| (WebKit::WebSWServerConnection::sendToContextProcess): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.h. |
| (WebKit::WebSWServerConnection::ipcConnection const): |
| (WebKit::WebSWServerConnection::sessionID const): |
| * NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.messages.in. |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp. |
| (WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection): |
| (WebKit::WebSWServerToContextConnection::messageSenderConnection): |
| (WebKit::WebSWServerToContextConnection::messageSenderDestinationID): |
| (WebKit::WebSWServerToContextConnection::connectionClosed): |
| (WebKit::WebSWServerToContextConnection::installServiceWorkerContext): |
| (WebKit::WebSWServerToContextConnection::fireInstallEvent): |
| (WebKit::WebSWServerToContextConnection::fireActivateEvent): |
| (WebKit::WebSWServerToContextConnection::terminateWorker): |
| (WebKit::WebSWServerToContextConnection::syncTerminateWorker): |
| (WebKit::WebSWServerToContextConnection::findClientByIdentifierCompleted): |
| (WebKit::WebSWServerToContextConnection::matchAllCompleted): |
| (WebKit::WebSWServerToContextConnection::claimCompleted): |
| (WebKit::WebSWServerToContextConnection::didFinishSkipWaiting): |
| (WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded): |
| (WebKit::WebSWServerToContextConnection::terminate): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.h. |
| (WebKit::WebSWServerToContextConnection::create): |
| (WebKit::WebSWServerToContextConnection::ipcConnection const): |
| * NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.messages.in. |
| * NetworkProcess/ios/NetworkProcessIOS.mm: |
| (WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const): |
| * Shared/Storage/StorageProcessCreationParameters.cpp: |
| (WebKit::StorageProcessCreationParameters::encode const): |
| (WebKit::StorageProcessCreationParameters::decode): |
| * Shared/Storage/StorageProcessCreationParameters.h: |
| (): Deleted. |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * Shared/WebsiteDataStoreParameters.h: |
| * Sources.txt: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::didReceiveMessage): |
| (WebKit::StorageProcess::initializeWebsiteDataStore): |
| (WebKit::StorageProcess::createStorageToWebProcessConnection): |
| (WebKit::StorageProcess::destroySession): |
| (WebKit::StorageProcess::fetchWebsiteData): |
| (WebKit::StorageProcess::deleteWebsiteData): |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| (WebKit::StorageProcess::connectionToContextProcessFromIPCConnection): Deleted. |
| (WebKit::StorageProcess::connectionToContextProcessWasClosed): Deleted. |
| (WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): Deleted. |
| (WebKit::StorageProcess::swServerForSession): Deleted. |
| (WebKit::StorageProcess::swOriginStoreForSession): Deleted. |
| (WebKit::StorageProcess::existingSWOriginStoreForSession const): Deleted. |
| (WebKit::StorageProcess::serverToContextConnectionForOrigin): Deleted. |
| (WebKit::StorageProcess::createServerToContextConnection): Deleted. |
| (WebKit::StorageProcess::didFailFetch): Deleted. |
| (WebKit::StorageProcess::didNotHandleFetch): Deleted. |
| (WebKit::StorageProcess::didReceiveFetchResponse): Deleted. |
| (WebKit::StorageProcess::didReceiveFetchData): Deleted. |
| (WebKit::StorageProcess::didReceiveFetchFormData): Deleted. |
| (WebKit::StorageProcess::didFinishFetch): Deleted. |
| (WebKit::StorageProcess::postMessageToServiceWorkerClient): Deleted. |
| (WebKit::StorageProcess::postMessageToServiceWorker): Deleted. |
| (WebKit::StorageProcess::registerSWServerConnection): Deleted. |
| (WebKit::StorageProcess::unregisterSWServerConnection): Deleted. |
| (WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): Deleted. |
| (WebKit::StorageProcess::disableServiceWorkerProcessTerminationDelay): Deleted. |
| * StorageProcess/StorageProcess.h: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Deleted. |
| (): Deleted. |
| * StorageProcess/StorageProcess.messages.in: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::~StorageToWebProcessConnection): |
| (WebKit::StorageToWebProcessConnection::didReceiveMessage): |
| (WebKit::StorageToWebProcessConnection::didReceiveSyncMessage): |
| (WebKit::StorageToWebProcessConnection::didClose): |
| (WebKit::StorageToWebProcessConnection::unregisterSWConnections): Deleted. |
| (WebKit::StorageToWebProcessConnection::establishSWServerConnection): Deleted. |
| * StorageProcess/StorageToWebProcessConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.messages.in: |
| * StorageProcess/ios/StorageProcessIOS.mm: |
| (WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getNetworkProcessConnection): |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| (WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess): |
| (WebKit::NetworkProcessProxy::didFinishLaunching): |
| (WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcessForExplicitSession): |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::start): |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getStorageProcessConnection): |
| (WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcess): Deleted. |
| (WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcessForExplicitSession): Deleted. |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::networkProcessCrashed): |
| (WebKit::WebProcessPool::getNetworkProcessConnection): |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay): |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| (WebKit::WebProcessPool::registerURLSchemeServiceWorkersCanHandle): |
| (WebKit::WebProcessPool::postMessageToServiceWorkerClient): |
| (WebKit::WebProcessPool::postMessageToServiceWorker): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): Deleted. |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::getNetworkProcessConnection): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::computeNetworkProcessAccessTypeForDataFetch): |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::computeNetworkProcessAccessTypeForDataRemoval): |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::storageProcessParameters): |
| (WebKit::WebsiteDataStore::parameters): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| (WebKit::NetworkProcessConnection::didReceiveSyncMessage): |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| (WebKit::NetworkProcessConnection::existingServiceWorkerConnectionForSession): |
| * WebProcess/Storage/WebSWClientConnection.cpp: |
| (WebKit::WebSWClientConnection::WebSWClientConnection): |
| * WebProcess/Storage/WebSWContextManagerConnection.cpp: |
| (WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection): |
| (WebKit::WebSWContextManagerConnection::serviceWorkerStartedWithMessage): |
| (WebKit::WebSWContextManagerConnection::startFetch): |
| (WebKit::WebSWContextManagerConnection::didFinishInstall): |
| (WebKit::WebSWContextManagerConnection::didFinishActivation): |
| (WebKit::WebSWContextManagerConnection::setServiceWorkerHasPendingEvents): |
| (WebKit::WebSWContextManagerConnection::skipWaiting): |
| (WebKit::WebSWContextManagerConnection::setScriptResource): |
| (WebKit::WebSWContextManagerConnection::workerTerminated): |
| (WebKit::WebSWContextManagerConnection::findClientByIdentifier): |
| (WebKit::WebSWContextManagerConnection::matchAll): |
| (WebKit::WebSWContextManagerConnection::claim): |
| * WebProcess/Storage/WebSWContextManagerConnection.h: |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveResponse): |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveData): |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish): |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk): |
| (WebKit::WebServiceWorkerFetchTaskClient::didFail): |
| (WebKit::WebServiceWorkerFetchTaskClient::didFinish): |
| (WebKit::WebServiceWorkerFetchTaskClient::didNotHandle): |
| * WebProcess/Storage/WebServiceWorkerProvider.cpp: |
| (WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession): |
| (WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession): |
| (WebKit::WebServiceWorkerProvider::handleFetch): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::didReceiveMessage): |
| (WebKit::WebToStorageProcessConnection::didReceiveSyncMessage): |
| (WebKit::WebToStorageProcessConnection::didClose): |
| (WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession): Deleted. |
| * WebProcess/Storage/WebToStorageProcessConnection.h: |
| (WebKit::WebToStorageProcessConnection::existingServiceWorkerConnectionForSession): Deleted. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| (WebKit::WebProcess::webToStorageProcessConnectionClosed): |
| (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess): |
| (WebKit::WebProcess::establishWorkerContextConnectionToStorageProcess): Deleted. |
| * WebProcess/WebProcess.h: |
| (WebKit::WebProcess::existingNetworkProcessConnection): |
| (WebKit::WebProcess::existingWebToStorageProcessConnection): Deleted. |
| * WebProcess/WebProcess.messages.in: |
| |
| 2018-09-25 Chris Dumez <cdumez@apple.com> |
| |
| UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it |
| https://bugs.webkit.org/show_bug.cgi?id=189927 |
| |
| Reviewed by Alex Christensen. |
| |
| UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it |
| in order to avoid deadlocks. This is not an issue currently because the WebProcess does process |
| incoming sync IPC when waiting for a sync IPC reply. However, we plan to change this in the future |
| in order to avoid bugs caused by re-entering WebCore at unsafe times. |
| |
| The reason the UIProcess previously did not do out of order sync IPC process was to avoid processing |
| a synchronous policy decision IPC for a frameID it did not know about yet, due to the DidCreateMainFrame / |
| DidCreateSubframe IPC messages being asynchronous. To address this issue, the decidePolicyForNavigationActionSync |
| IPC handler now calls didCreateMainFrame() / didCreateSubframe() as needed if it does not know about |
| the frame yet. Note that synchronous policy decisions are rare and are currently only needed by initial |
| about:blank and fragment navigations. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionAsync): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNavigationActionSync): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::initializeConnection): |
| |
| 2018-09-25 Chris Dumez <cdumez@apple.com> |
| |
| Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer |
| https://bugs.webkit.org/show_bug.cgi?id=189851 |
| <rdar://problem/44696263> |
| |
| Reviewed by Alex Christensen. |
| |
| Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer: |
| - NetworkProcessProxy::m_processPool |
| - StorageProcessProxy::m_processPool |
| |
| Those data members are C++ references because it is expected that the WebProcessPool owns the NetworkProcessProxy and |
| StorageProcessProxy. However, since NetworkProcessProxy / StorageProcessProxy are refcounted, it has happened that code |
| extends the lifetime of those past their process pool, leading to stale prrocess pool usage. The fix for these crashes |
| so far as been to ref the WebProcessPool instead of the NetworkProcessProxy / StorageProcessProxy. However, it is very |
| tempting for people to simply ref the NetworkProcessProxy / StorageProcessProxy given that they are refcounted. |
| For this reason, this patch updates NetworkProcessProxy / StorageProcessProxy so that they are no longer RefCounted |
| and so that the WebProcessPool truly owns them via std::unique_ptr<>. |
| |
| * UIProcess/ChildProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::networkProcessCrashed): |
| (WebKit::NetworkProcessProxy::didClose): |
| (WebKit::NetworkProcessProxy::create): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| (WebKit::NetworkProcessProxy::throttler): Deleted. |
| (WebKit::NetworkProcessProxy::processPool): Deleted. |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| (WebKit::PluginProcessProxy::pluginProcessAttributes const): Deleted. |
| (WebKit::PluginProcessProxy::pluginProcessToken const): Deleted. |
| (WebKit::PluginProcessProxy::isValid const): Deleted. |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::create): Deleted. |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| NetworkLoad::didReceiveResponse should pass its completion handler to its client |
| https://bugs.webkit.org/show_bug.cgi?id=188701 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Right now we have a confusing enum ShouldContinueDidReceiveResponse and a complicated flow |
| that involves many objects and implicitly using NetworkLoad's destructor as part of the |
| loading flow. This makes the responsibilities of the objects clear. |
| |
| * NetworkProcess/Downloads/PendingDownload.cpp: |
| (WebKit::PendingDownload::didReceiveResponse): |
| * NetworkProcess/Downloads/PendingDownload.h: |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| (WebKit::NetworkCORSPreflightChecker::didReceiveResponse): |
| (WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession): Deleted. |
| * NetworkProcess/NetworkCORSPreflightChecker.h: |
| * NetworkProcess/NetworkDataTask.cpp: |
| (WebKit::NetworkDataTask::didReceiveResponse): |
| * NetworkProcess/NetworkDataTask.h: |
| * NetworkProcess/NetworkLoad.cpp: |
| (WebKit::NetworkLoad::~NetworkLoad): |
| (WebKit::NetworkLoad::convertTaskToDownload): |
| (WebKit::NetworkLoad::didReceiveResponse): |
| (WebKit::NetworkLoad::notifyDidReceiveResponse): |
| (WebKit::NetworkLoad::continueDidReceiveResponse): Deleted. |
| (WebKit::NetworkLoad::didReceiveResponseNetworkSession): Deleted. |
| * NetworkProcess/NetworkLoad.h: |
| * NetworkProcess/NetworkLoadClient.h: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::~NetworkResourceLoader): |
| (WebKit::NetworkResourceLoader::didReceiveResponse): |
| (WebKit::NetworkResourceLoader::didFinishWithRedirectResponse): |
| (WebKit::NetworkResourceLoader::continueDidReceiveResponse): |
| * NetworkProcess/NetworkResourceLoader.h: |
| * NetworkProcess/PingLoad.cpp: |
| (WebKit::PingLoad::didReceiveResponse): |
| (WebKit::PingLoad::didReceiveResponseNetworkSession): Deleted. |
| * NetworkProcess/PingLoad.h: |
| * NetworkProcess/PreconnectTask.cpp: |
| (WebKit::PreconnectTask::didReceiveResponse): |
| * NetworkProcess/PreconnectTask.h: |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: |
| (WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse): |
| * NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: |
| * NetworkProcess/capture/NetworkDataTaskReplay.cpp: |
| (WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse): |
| |
| 2018-09-24 Alex Christensen <achristensen@webkit.org> |
| |
| Build fix. |
| https://bugs.webkit.org/show_bug.cgi?id=189929 |
| |
| * WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h: |
| |
| 2018-09-24 Alex Christensen <achristensen@webkit.org> |
| |
| Prepare to replace WKBundleFileHandleCreateWithPath with a version that takes a WKBundlePageRef |
| https://bugs.webkit.org/show_bug.cgi?id=189929 |
| |
| Reviewed by Andy Estes. |
| |
| This will be needed for rdar://problem/24576194 |
| |
| * WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.cpp: |
| (WKBundleFileHandleCreateWithPathForPage): |
| * WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h: |
| |
| 2018-09-24 Alex Christensen <achristensen@webkit.org> |
| |
| Begin deprecating C API |
| https://bugs.webkit.org/show_bug.cgi?id=189810 |
| |
| Reviewed by Andy Estes. |
| |
| * Shared/API/c/WKDeprecated.h: Added. |
| * UIProcess/API/C/WKPage.h: |
| * UIProcess/API/Cocoa/WKBrowsingContextController.mm: |
| (setUpPagePolicyClient): |
| (-[WKBrowsingContextController setPolicyDelegate:]): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-09-24 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r236368. |
| |
| Caused WebKit.NetworkProcessCrashWithPendingConnection API |
| test to crash (Bug 189926) |
| |
| Reverted changeset: |
| |
| "Extending the lifetime of a NetworkProcessProxy / |
| StorageProcessProxy may cause it to have a stale |
| WebProcessPool pointer" |
| https://bugs.webkit.org/show_bug.cgi?id=189851 |
| https://trac.webkit.org/changeset/236368 |
| |
| 2018-09-21 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove the old "AcceleratedCompositingForOverflowScroll" code |
| https://bugs.webkit.org/show_bug.cgi?id=189870 |
| |
| Reviewed by Zalan Bujtas. |
| |
| The "AcceleratedCompositingForOverflowScroll" code was added to allow overflow:scroll to use |
| composited scrolling if an overflow:scroll could be made a stacking context without affecting |
| z-order. We need overflow:scroll to be accelerated always, so a different approach is needed. |
| Remove this old code (unused by any platform?) to make working on new code easier. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetAcceleratedCompositingForOverflowScrollEnabled): Deleted. |
| (WKPreferencesGetAcceleratedCompositingForOverflowScrollEnabled): Deleted. |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-09-24 Chris Dumez <cdumez@apple.com> |
| |
| Do not do early processing of incoming sync IPC unless we're waiting for a sync IPC reply |
| https://bugs.webkit.org/show_bug.cgi?id=186941 |
| |
| Reviewed by Alex Christensen. |
| |
| The comment was claiming we were processing incoming sync messages while waiting for a |
| sync IPC reply to prevent deadlocks. However, the code was failing to check if we were |
| waiting for a sync IPC reply. As a result, incoming sync IPC messages would get processed |
| early no matter what, jumping the line. This was the source of the flakiness in the blob |
| tests since the IPC to register the blob in the network process was async and the follow-up |
| IPC to ask the network process for the blob size was sync. The sync message to get the blob |
| size would jump the line and get processed before the async message to register the blob. |
| As a result, the network process would not know about the blob yet and return size 0. Of |
| course, this could happen if the network process was sending sync IPC at the time. However, |
| the network process never sends any sync IPC and therefore, should never process incoming |
| IPC messages out of order. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::processIncomingMessage): |
| |
| 2018-09-24 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Key code is 0 for many hardware keyboard keys |
| https://bugs.webkit.org/show_bug.cgi?id=189604 |
| |
| Reviewed by Wenson Hsieh. |
| |
| For a hardware keyboard-generated event (an event with a non-nill event._hidEvent) pass |
| the key code for the event. Otherwise, do what we do now and pass 0 as the event is likely |
| a software keyboard-generated event. |
| |
| * Platform/spi/ios/UIKitSPI.h: Add some more SPI. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| (-[WKContentView handleKeyEvent:]): |
| |
| 2018-09-24 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: topContentInset is not accounted for when inspecting a WKWebView and docked to side |
| https://bugs.webkit.org/show_bug.cgi?id=189859 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::inspectedViewFrameDidChange): |
| Add special cases for inspecting a WKWebView. We already special-case for WKView. |
| |
| 2018-09-24 Miguel Gomez <magomez@igalia.com> |
| |
| [GTK][WPE] Compositing indicators are not working |
| https://bugs.webkit.org/show_bug.cgi?id=189915 |
| |
| Reviewed by Žan Doberšek. |
| |
| Pass the debugBorder and repaintCount parameters to the TextureMapperLayer when required. |
| |
| * Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp: |
| (WebKit::CoordinatedGraphicsScene::updateSceneState): |
| |
| 2018-09-21 Dean Jackson <dino@apple.com> |
| |
| Add PointerEvent, plus feature flag, plus Web Platform Tests |
| https://bugs.webkit.org/show_bug.cgi?id=189867 |
| <rdar://problem/44697384> |
| |
| Reviewed by Simon Fraser. |
| |
| Add PointerEvents as an experimental feature. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-21 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: dock buttons disappear if Web Inspector goes fullscreen |
| https://bugs.webkit.org/show_bug.cgi?id=189865 |
| <rdar://problem/42600534> |
| |
| Reviewed by Matt Baker. |
| |
| When a fullscreen Safari tab has a docked Inspector, and the "detach" button |
| is clicked, Inspector goes into its own fullscreen window. In that window, |
| there are no buttons for docking to side or bottom. |
| |
| It turns out that we always send setDockingUnavailable(true) if the inspector |
| window is fullscreen. This eventually causes the inspector to reflect that |
| by hiding the docking-related buttons. |
| |
| * UIProcess/mac/WebInspectorProxyMac.mm: |
| (WebKit::WebInspectorProxy::platformCanAttach): |
| This early exit does not seem to serve any purpose, so remove it. |
| |
| 2018-09-21 Chris Dumez <cdumez@apple.com> |
| |
| Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer |
| https://bugs.webkit.org/show_bug.cgi?id=189851 |
| |
| Reviewed by Alex Christensen. |
| |
| Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer: |
| - NetworkProcessProxy::m_processPool |
| - StorageProcessProxy::m_processPool |
| |
| Those data members are C++ references because it is expected that the WebProcessPool owns the NetworkProcessProxy and |
| StorageProcessProxy. However, since NetworkProcessProxy / StorageProcessProxy are refcounted, it has happened that code |
| extends the lifetime of those past their process pool, leading to stale prrocess pool usage. The fix for these crashes |
| so far as been to ref the WebProcessPool instead of the NetworkProcessProxy / StorageProcessProxy. However, given how |
| error-prone this is, this patch updates NetworkProcessProxy / StorageProcessProxy so that they forward their refcounting |
| to the WebProcessPool. |
| |
| * UIProcess/ChildProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::ref): |
| (WebKit::NetworkProcessProxy::deref): |
| (WebKit::NetworkProcessProxy::didClose): |
| (WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor): |
| (WebKit::NetworkProcessProxy::create): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Plugins/PluginProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::ref): |
| (WebKit::StorageProcessProxy::deref): |
| (WebKit::StorageProcessProxy::create): Deleted. |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| * UIProcess/WebProcessPool.h: |
| * UIProcess/WebProcessProxy.h: |
| |
| 2018-09-21 Alex Christensen <achristensen@webkit.org> |
| |
| Use a Variant for FormDataElement |
| https://bugs.webkit.org/show_bug.cgi?id=189777 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkResourceLoadParameters.cpp: |
| (WebKit::NetworkResourceLoadParameters::encode const): |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| * Shared/SessionState.h: |
| * WebProcess/WebCoreSupport/SessionStateConversion.cpp: |
| (WebKit::toHTTPBody): |
| |
| 2018-09-21 Alex Christensen <achristensen@webkit.org> |
| |
| Simply authentication code even more! |
| https://bugs.webkit.org/show_bug.cgi?id=189719 |
| |
| Reviewed by Andy Estes. |
| |
| Just when you thought it couldn't get simpler and more elegant, it can! |
| |
| * NetworkProcess/Downloads/Download.cpp: |
| * NetworkProcess/NetworkCORSPreflightChecker.cpp: |
| * NetworkProcess/NetworkLoad.cpp: |
| * NetworkProcess/PingLoad.cpp: |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| * Shared/Authentication/AuthenticationChallengeDisposition.h: Added. |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::completeAuthenticationChallenge): |
| (WebKit::AuthenticationManager::useCredentialForChallenge): Deleted. |
| (WebKit::AuthenticationManager::useCredentialForSingleChallenge): Deleted. |
| (WebKit::AuthenticationManager::continueWithoutCredentialForChallenge): Deleted. |
| (WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): Deleted. |
| (WebKit::AuthenticationManager::cancelChallenge): Deleted. |
| (WebKit::AuthenticationManager::cancelSingleChallenge): Deleted. |
| (WebKit::AuthenticationManager::performDefaultHandling): Deleted. |
| (WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): Deleted. |
| (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue): Deleted. |
| (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): Deleted. |
| * Shared/Authentication/AuthenticationManager.h: |
| * Shared/Authentication/AuthenticationManager.messages.in: |
| * Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm: |
| (WebKit::AuthenticationManager::initializeConnection): |
| * UIProcess/API/C/WKAuthenticationDecisionListener.cpp: |
| (WKAuthenticationDecisionListenerUseCredential): |
| * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm: |
| (-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]): |
| * UIProcess/API/glib/WebKitAuthenticationRequest.cpp: |
| (webkit_authentication_request_authenticate): |
| * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: |
| (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy): |
| * UIProcess/Authentication/AuthenticationDecisionListener.cpp: |
| (WebKit::AuthenticationDecisionListener::AuthenticationDecisionListener): |
| (WebKit::AuthenticationDecisionListener::~AuthenticationDecisionListener): |
| (WebKit::AuthenticationDecisionListener::useCredential): |
| (WebKit::AuthenticationDecisionListener::cancel): |
| (WebKit::AuthenticationDecisionListener::performDefaultHandling): |
| (WebKit::AuthenticationDecisionListener::rejectProtectionSpaceAndContinue): |
| * UIProcess/Authentication/AuthenticationDecisionListener.h: |
| (WebKit::AuthenticationDecisionListener::create): |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didReceiveAuthenticationChallenge): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-09-21 Chris Dumez <cdumez@apple.com> |
| |
| Regression(Mojave): Resuming a WK2 download crashes |
| https://bugs.webkit.org/show_bug.cgi?id=189838 |
| <rdar://problem/44618538> |
| |
| Reviewed by Alex Christensen. |
| |
| Update our workaround to tweak the download resume data to include the actual download path so that |
| it works on macOS Mojave and up. Unfortunately, the resume data internal representation has changed, |
| causing our previous workaround to fail. |
| |
| * NetworkProcess/Downloads/cocoa/DownloadCocoa.mm: |
| (WebKit::Download::resume): |
| |
| 2018-09-21 Youenn Fablet <youenn@apple.com> |
| |
| Whitelist two additional plugins |
| https://bugs.webkit.org/show_bug.cgi?id=189832 |
| <rdar://problem/44628127> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| (WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed): |
| |
| 2018-09-21 Woodrow Wang <woodrow_wang@apple.com> |
| |
| Clear persistent storage between tests for resourceLoadStatistics |
| https://bugs.webkit.org/show_bug.cgi?id=189684 |
| <rdar://problem/44540099> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didClose): |
| (WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| |
| Remove function only called in testing for resetting statistics to consistent |
| state. |
| |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): Deleted. |
| |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor): |
| (WebKit::WebsiteDataStore::removeAllStorageAccessHandler): |
| |
| 2018-09-20 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r236289. |
| |
| Caused 8 TestWebKitAPI.ContentFiltering test failures. |
| |
| Reverted changeset: |
| |
| "InjectedBundle parameters often need initialization function |
| called before unarchiving" |
| https://bugs.webkit.org/show_bug.cgi?id=189709 |
| https://trac.webkit.org/changeset/236289 |
| |
| 2018-09-20 Youenn Fablet <youenn@apple.com> |
| |
| Allow additional plug-ins to run unsandboxed |
| https://bugs.webkit.org/show_bug.cgi?id=189791 |
| <rdar://problem/44628127> |
| |
| Reviewed by Brent Fulgham. |
| |
| * UIProcess/Plugins/mac/PluginInfoStoreMac.mm: |
| (WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed): |
| |
| 2018-09-20 Brent Fulgham <bfulgham@apple.com> |
| |
| InjectedBundle parameters often need initialization function called before unarchiving |
| https://bugs.webkit.org/show_bug.cgi?id=189709 |
| <rdar://problem/44573653> |
| |
| Reviewed by Chris Dumez. |
| |
| Handle the case where the InjectedBundle parameters do not successfully decode because they contain |
| an unexpected class from the embedding program. If this happens, try decoding the bundle parameters |
| after the bundle initialiation function runs, which gives the embedding program the opportunity to |
| register additional classes that are safe for serialization. |
| |
| Create a new 'decodeBundleParameters' method that contains the logic that used to live in 'initialize'. |
| This new method returns 'true' if the serialization was successful, otherwise it returns false. |
| |
| Revise 'initialize' to call this new method and check the return value. If it fails, try decoding the |
| bundle parameters after the bundle's initialization function is called. |
| |
| * WebProcess/InjectedBundle/InjectedBundle.h: |
| * WebProcess/InjectedBundle/mac/InjectedBundleMac.mm: |
| (WebKit::InjectedBundle::initialize): Use the new method. |
| (WebKit::InjectedBundle::decodeBundleParameters): Added. |
| (WebKit::InjectedBundle::setBundleParameters): Use 'decodeObjectOfClasses' with the more complete |
| 'classesForCoder' method to unarchive the passed bundle parameters, rather than the |
| NSDictionary-specific method, since InjectedBundles often encode other types of objects, and the |
| NSDictionary object may itself hold other kinds of objects. |
| |
| 2018-09-20 Jer Noble <jer.noble@apple.com> |
| |
| Enable Modern EME by default |
| https://bugs.webkit.org/show_bug.cgi?id=189794 |
| |
| Reviewed by Jon Lee. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-20 Thibault Saunier <tsaunier@igalia.com> |
| |
| [GTK][WPE] Make sure MediaDeviceEnabled and PeerConnectionEnabled are always synced with enable-media-stream |
| https://bugs.webkit.org/show_bug.cgi?id=188704 |
| |
| By default m_isMediaDevicesEnabled and m_isScreenCaptureEnabled are false but |
| m_isMediaStreamEnabled is true meaning that in the WPE minibrowser getUserMedia |
| was disabled even if we explicitly set `"enable-media-stream", TRUE`. |
| |
| Reviewed by Michael Catanzaro. |
| |
| * UIProcess/API/glib/WebKitSettings.cpp: |
| (webKitSettingsConstructed): |
| |
| 2018-09-20 Justin Michaud <justin_michaud@apple.com> |
| |
| Implement CSS Custom Properties and Values Skeleton |
| https://bugs.webkit.org/show_bug.cgi?id=189694 |
| |
| Reviewed by Simon Fraser. |
| |
| Add feature flag for CSS custom properties and values api |
| |
| * Shared/WebPreferences.yaml: |
| * WebProcess/InjectedBundle/InjectedBundle.cpp: |
| (WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): |
| |
| 2018-09-19 Dean Jackson <dino@apple.com> |
| |
| Temporarily move fullscreen back to experimental features |
| https://bugs.webkit.org/show_bug.cgi?id=189770 |
| <rdar://problem/44619282> |
| |
| Revert this change now that there is a commit to cherry-pick. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-20 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed crash fix after r236226. |
| |
| We need to protect |this| in WebProcessProxy::requestTermination(). |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::requestTermination): |
| |
| 2018-09-20 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=189663 |
| <rdar://problem/44184955> |
| |
| Reviewed by Geoff Garen and Chris Dumez. |
| |
| We need to keep the layer tree of the previous page alive and visible until we have something |
| to render on the new page. With PSON on Mac this means that we should keep displaying the |
| layer tree from the previus process. |
| |
| This patch moves the management of 'attaching' the drawing area (Mac only concept) from web process |
| to UI process. This is when we parent the layer tree to the view root layer. It also ensures that |
| the layer tree is not deleted too early on process swap and that it still eventually gets deleted. |
| |
| * UIProcess/DrawingAreaProxy.h: |
| (WebKit::DrawingAreaProxy::attachInWebProcess): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::messageNamesToIgnoreWhileSuspended): |
| (WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess): |
| |
| We no longer tear down drawing area (layer tree) for suspended pages automatically. Send an explicit |
| message for it. |
| |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didCompletePageTransition): |
| |
| Attach the drawing area if appropriate. |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| |
| Call PageClien::processWillSwap instead of processDidExit when appropriate. |
| |
| (WebKit::WebPageProxy::enterAcceleratedCompositingMode): |
| |
| This is called when we have switched to the new layer tree. |
| Tear down the drawing area in the previus process. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/ios/PageClientImplIOS.h: |
| * UIProcess/ios/PageClientImplIOS.mm: |
| (WebKit::PageClientImpl::processWillSwap): |
| |
| On iOS this just call processDidExit for now. |
| |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::processWillSwap): |
| (WebKit::PageClientImpl::processDidExit): |
| |
| Add processWillSwap separately from processDidExit. They are currently the same |
| except processWillSwap doesn't clear the root layer. |
| |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::attachInWebProcess): |
| |
| Send a message to the web process to attach the drawing area. |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::attach): |
| (WebKit::DrawingArea::attachDrawingArea): Deleted. |
| |
| Rename to be less redundant. |
| |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| |
| Don't attach drawing area automatically. It will be done by a message from UI process. |
| |
| (WebKit::WebPage::setLayerTreeStateIsFrozen): |
| |
| Layer tree is always frozen in a suspended process (if it exists). |
| |
| (WebKit::WebPage::didReceivePolicyDecision): |
| |
| Suspend immediately when receiving policy decision to avoid flash on 'about:blank' loading. |
| |
| (WebKit::WebPage::didStartPageTransition): |
| (WebKit::WebPage::didCompletePageTransition): |
| |
| Notify UI process of transition completion. |
| |
| (WebKit::WebPage::setIsSuspended): |
| (WebKit::WebPage::tearDownDrawingAreaForSuspend): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| |
| Don't attach drawing area automatically. It will be done by a message from UI process. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::attach): |
| (WebKit::TiledCoreAnimationDrawingArea::attachDrawingArea): Deleted. |
| |
| 2018-09-20 Tomas Popela <tpopela@redhat.com> |
| |
| [GTK] Always prints in portrait when landscape is requested |
| https://bugs.webkit.org/show_bug.cgi?id=189543 |
| |
| Reviewed by Michael Catanzaro. |
| |
| We have to change the surface size based on the requested orientation. |
| Otherwise only portrait will be printed as it's hardcoded. |
| |
| * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: |
| |
| 2018-09-19 Dean Jackson <dino@grorg.org> |
| |
| Temporarily move fullscreen back to experimental features |
| https://bugs.webkit.org/show_bug.cgi?id=189770 |
| <rdar://problem/44619282> |
| |
| Reviewed by Simon Fraser. |
| |
| Make fullscreen an experimental feature again. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-19 Dawei Fenton <realdawei@apple.com> |
| |
| Unreviewed, rolling out r236229. |
| |
| caused API timouts on mac and ios |
| |
| Reverted changeset: |
| |
| "Clear persistent storage between tests for |
| resourceLoadStatistics" |
| https://bugs.webkit.org/show_bug.cgi?id=189684 |
| https://trac.webkit.org/changeset/236229 |
| |
| 2018-09-19 Alex Christensen <achristensen@webkit.org> |
| |
| REGRESSION(236154) C API clients not using WKPageSetPageNavigationClient couldn't complete HTTPS requests |
| https://bugs.webkit.org/show_bug.cgi?id=189771 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/APINavigationClient.h: |
| (API::NavigationClient::didReceiveAuthenticationChallenge): |
| Perform default behavior if there's an authentication challenge but we're using the default navigation client. |
| I wish we had infrastructure to test this but WebKitTestRunner uses WKPageSetNavigationClient |
| and we don't have the ability to do networking from API tests. This is a growing problem I intend to solve. |
| |
| 2018-09-19 Woodrow Wang <woodrow_wang@apple.com> |
| |
| Clear persistent storage between tests for resourceLoadStatistics |
| https://bugs.webkit.org/show_bug.cgi?id=189684 |
| <rdar://problem/44540099> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent): |
| |
| Remove function only called in testing for resetting statistics to consistent |
| state. |
| |
| (WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): Deleted. |
| |
| 2018-09-19 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebPageProxy::decidePolicyForNavigationAction() |
| https://bugs.webkit.org/show_bug.cgi?id=189763 |
| <rdar://problem/44597111> |
| |
| Reviewed by Alex Christensen. |
| |
| Update WebNavigationState::navigation() / WebNavigationState::takeNavigation() |
| to return a pointer instead of a reference as we have evidence that they can |
| return null. I kept the debug assertions to try and catch the cases where we |
| return null but at least we stop crashing in release builds. |
| |
| * UIProcess/WebNavigationState.cpp: |
| (WebKit::WebNavigationState::navigation): |
| (WebKit::WebNavigationState::takeNavigation): |
| * UIProcess/WebNavigationState.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| |
| 2018-09-19 Chris Dumez <cdumez@apple.com> |
| |
| Crash under WebProcessProxy::suspendedPageWasDestroyed(WebKit::SuspendedPageProxy&) |
| https://bugs.webkit.org/show_bug.cgi?id=189721 |
| <rdar://problem/44359788> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fix crash when destroying a SuspendedPageProxy whose WebProcessProxy was already |
| destroyed. |
| |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| * UIProcess/SuspendedPageProxy.h: |
| (WebKit::SuspendedPageProxy::process const): |
| Update SuspendedPageProxy::m_process to be a RefPtr<> instead of a raw pointer, similarly |
| to what we do in WebPageProxy. Relying on the WebProcessProxy to not get destroyed is |
| risky as this crash demonstrates. |
| |
| * UIProcess/WebProcessProxy.cpp: |
| (WebKit::WebProcessProxy::requestTermination): |
| When a WebProcessProxy is terminated (by client or WebKit due to memory / cpu usage), call |
| webProcessDidClose() on all SuspendedPages, similarly to what we do in case of a crash in |
| processDidTerminateOrFailedToLaunch(). Failing to do so means that the SuspendedPageProxy |
| may still have a pointer to this WebProcessProxy, even though WebProcessProxy::shutDown() |
| has been called (which may destroy the WebProcessProxy). |
| |
| 2018-09-19 John Wilander <wilander@apple.com> |
| |
| Resource Load Statistics: Add optional cap on partitioned cache max age |
| https://bugs.webkit.org/show_bug.cgi?id=189711 |
| <rdar://problem/39246837> |
| |
| Reviewed by Antti Koivisto and Chris Dumez. |
| |
| These changes add the capability to set a max age cap for prevalent resources |
| and consults it when retrieving cache entries. If an entry is capped and found |
| to be too old, it will not be used but instead removed from the cache. |
| |
| This functionality is off by default because no cap is set by default. |
| |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::setCacheMaxAgeCapForPrevalentResources): |
| (WebKit::NetworkProcess::resetCacheMaxAgeCapForPrevalentResources): |
| Infrastructure for testing. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::retrieveCacheEntry): |
| Now sends in the session ID in the retrieve call. |
| * NetworkProcess/cache/NetworkCache.cpp: |
| (WebKit::NetworkCache::hasReachedPrevalentResourceAgeCap): |
| Static convenience function. |
| (WebKit::NetworkCache::makeUseDecision): |
| Now receives an optional maxAge parameter and checks |
| hasReachedPrevalentResourceAgeCap() first. |
| (WebKit::NetworkCache::Cache::retrieve): |
| Now takes a session ID. |
| * NetworkProcess/cache/NetworkCache.h: |
| * NetworkProcess/cache/NetworkCacheStatistics.cpp: |
| (WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey): |
| Added UseDecision::NoDueToPrevalentResourceAgeCap which causes a |
| return of WebCore::DiagnosticLoggingKeys::otherKey(). |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap): |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| Infrastructure for testing. |
| * UIProcess/API/C/WKWebsiteDataStoreRef.h: |
| * UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm: |
| (WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded): |
| Now supports a user default ResourceLoadStatisticsCacheMaxAgeCap. |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::hasStorageAccessForFrame): |
| (WebKit::NetworkProcessProxy::grantStorageAccess): |
| (WebKit::NetworkProcessProxy::removeAllStorageAccess): |
| (WebKit::NetworkProcessProxy::getAllStorageAccessEntries): |
| (WebKit::NetworkProcessProxy::setCacheMaxAgeCapForPrevalentResources): |
| (WebKit::NetworkProcessProxy::didSetCacheMaxAgeCapForPrevalentResources): |
| (WebKit::NetworkProcessProxy::resetCacheMaxAgeCapForPrevalentResources): |
| (WebKit::NetworkProcessProxy::didResetCacheMaxAgeCapForPrevalentResources): |
| (WebKit::nextRequestStorageAccessContextId): Deleted. |
| Deleted this to make all code use the generic generateCallbackID(). |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| Used to transfer the setting from the UI process to the network process. |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| (WebKit::ResourceLoadStatisticsMemoryStore::setCacheMaxAgeCap): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.h: |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap): |
| * UIProcess/WebResourceLoadStatisticsStore.h: |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources): |
| (WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources): |
| * UIProcess/WebsiteData/WebsiteDataStore.h: |
| |
| 2018-09-18 Brent Fulgham <bfulgham@apple.com> |
| |
| [iOS] Allow WebContent process to check the "Protocol Characteristics" of files to which it has access |
| https://bugs.webkit.org/show_bug.cgi?id=189712 |
| <rdar://problem/44386429> |
| |
| Reviewed by Alex Christensen. |
| |
| * Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: |
| |
| 2018-09-18 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Crash under WebPageProxy::navigationGestureSnapshotWasRemoved() |
| https://bugs.webkit.org/show_bug.cgi?id=189714 |
| <rdar://problem/32839498> |
| |
| Reviewed by Tim Horton. |
| |
| The ViewGestureController::removeSwipeSnapshot() implementation for iOS calls |
| navigationGestureSnapshotWasRemoved() on m_webPageProxyForBackForwardListForCurrentSwipe. |
| m_webPageProxyForBackForwardListForCurrentSwipe can differ from m_webPageProxy, and |
| is a RefPtr<>. This means that this WebPageProxy's WKWebView might have been deallocated, |
| in which case we'll crash when trying to use the pageClient in |
| WebPageProxy::navigationGestureSnapshotWasRemoved(). To address the issue, we now return |
| early in WebPageProxy::navigationGestureSnapshotWasRemoved() if m_isClosed is true, |
| after resetting m_isShowingNavigationGestureSnapshot to false but *before* trying to use |
| the pageClient. When a WKWebView is deallocated, it calls WebPageProxy::close(), which |
| sets m_isClosed to true. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): |
| |
| 2018-09-18 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Limit capturing extra metrics for Web Inspector when not required. |
| https://bugs.webkit.org/show_bug.cgi?id=189520 |
| |
| Reviewed by Alex Christensen. |
| |
| Respect the value of NetworkDataTask::shouldCaptureExtraNetworkLoadMetrics() to reduce the process |
| time when they are not needed. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::createCurlRequest): |
| |
| 2018-09-18 Alex Christensen <achristensen@webkit.org> |
| |
| Make WebPageProxy always have a API::NavigationClient instead of always having a API::LoaderClient and API::PolicyClient |
| https://bugs.webkit.org/show_bug.cgi?id=189012 |
| |
| Reviewed by Andy Estes. |
| |
| When WebKit2 was being developed, we initially made the C API WKPageSetPagePolicyClient and WKPageSetPageLoaderClient. |
| When we released WKWebView, it was using WKNavigationDelegate, equivalent to WKPageSetPageNavigationClient. |
| To support one or the other, we would use the navigation client if it was present, but if not we would fall back to the |
| loader or policy client. Since the loader and policy clients are now being minimally supported only until legacy |
| software migrates to the navigation client, we are adding new functionality to the navigation client. |
| Making the navigation client the default and using the loader or policy client only if they are present supports |
| the legacy software and makes us have fewer forgotten null checks when adding new functionality to the navigation client. |
| |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageNavigationClient): |
| * UIProcess/Cocoa/NavigationState.h: |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::createNavigationClient): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::WebPageProxy): |
| (WebKit::WebPageProxy::setNavigationClient): |
| (WebKit::WebPageProxy::setLoaderClient): |
| (WebKit::WebPageProxy::setPolicyClient): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::didChangeBackForwardList): |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::findPlugin): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::willPerformClientRedirectForFrame): |
| (WebKit::WebPageProxy::didCancelClientRedirectForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::didReachLayoutMilestone): |
| (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): |
| (WebKit::WebPageProxy::didRunInsecureContentForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| (WebKit::WebPageProxy::contentRuleListNotification): |
| (WebKit::WebPageProxy::webGLPolicyForURL): |
| (WebKit::WebPageProxy::resolveWebGLPolicyForURL): |
| (WebKit::WebPageProxy::processDidBecomeUnresponsive): |
| (WebKit::WebPageProxy::processDidBecomeResponsive): |
| (WebKit::WebPageProxy::dispatchProcessDidTerminate): |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): |
| (WebKit::WebPageProxy::wrapCryptoKey): |
| (WebKit::WebPageProxy::unwrapCryptoKey): |
| (WebKit::WebPageProxy::signedPublicKeyAndChallengeString): |
| (WebKit::WebPageProxy::navigationGestureDidBegin): |
| (WebKit::WebPageProxy::navigationGestureWillEnd): |
| (WebKit::WebPageProxy::navigationGestureDidEnd): |
| (WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-09-18 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up AuthenticationChallengeProxy |
| https://bugs.webkit.org/show_bug.cgi?id=189668 |
| |
| Reviewed by Youenn Fablet. |
| |
| At its core, it's a CompletionHandler with some information. |
| Make it more elegant and simple with no change in behavior and reduce the complexity of this security-sensitive object. |
| |
| * NetworkProcess/cocoa/NetworkSessionCocoa.mm: |
| (toNSURLSessionAuthChallengeDisposition): |
| * Shared/Authentication/AuthenticationManager.cpp: |
| (WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): |
| * Shared/Authentication/AuthenticationManager.h: |
| * UIProcess/API/C/WKAuthenticationChallenge.cpp: |
| (WKAuthenticationChallengeGetDecisionListener): |
| (WKAuthenticationChallengeGetProtectionSpace): |
| (WKAuthenticationChallengeGetProposedCredential): |
| (WKAuthenticationChallengeGetPreviousFailureCount): |
| * UIProcess/API/C/WKPage.cpp: |
| (WKPageSetPageNavigationClient): |
| * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm: |
| (-[WKNSURLAuthenticationChallengeSender cancelAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender performDefaultHandlingForAuthenticationChallenge:]): |
| (-[WKNSURLAuthenticationChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]): |
| * UIProcess/Authentication/AuthenticationChallengeProxy.cpp: |
| (WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy): |
| (WebKit::AuthenticationChallengeProxy::~AuthenticationChallengeProxy): Deleted. |
| (WebKit::AuthenticationChallengeProxy::useCredential): Deleted. |
| (WebKit::AuthenticationChallengeProxy::cancel): Deleted. |
| (WebKit::AuthenticationChallengeProxy::performDefaultHandling): Deleted. |
| (WebKit::AuthenticationChallengeProxy::rejectProtectionSpaceAndContinue): Deleted. |
| (WebKit::AuthenticationChallengeProxy::proposedCredential const): Deleted. |
| (WebKit::AuthenticationChallengeProxy::protectionSpace const): Deleted. |
| (WebKit::AuthenticationChallengeProxy::setSecKeyProxyStore): Deleted. |
| * UIProcess/Authentication/AuthenticationChallengeProxy.h: |
| (WebKit::AuthenticationChallengeProxy::create): |
| (WebKit::AuthenticationChallengeProxy::listener const): |
| (WebKit::AuthenticationChallengeProxy::previousFailureCount const): Deleted. |
| * UIProcess/Authentication/AuthenticationDecisionListener.cpp: |
| (WebKit::AuthenticationDecisionListener::AuthenticationDecisionListener): |
| (WebKit::AuthenticationDecisionListener::~AuthenticationDecisionListener): |
| (WebKit::AuthenticationDecisionListener::useCredential): |
| (WebKit::AuthenticationDecisionListener::cancel): |
| (WebKit::AuthenticationDecisionListener::performDefaultHandling): |
| (WebKit::AuthenticationDecisionListener::rejectProtectionSpaceAndContinue): |
| (WebKit::AuthenticationDecisionListener::detachChallenge): Deleted. |
| * UIProcess/Authentication/AuthenticationDecisionListener.h: |
| (WebKit::AuthenticationDecisionListener::create): |
| * UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm: |
| (WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc): |
| (WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc const): Deleted. |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::didReceiveAuthenticationChallenge): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge): |
| * UIProcess/Downloads/DownloadProxy.cpp: |
| (WebKit::DownloadProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/ServiceWorkerProcessProxy.cpp: |
| (WebKit::ServiceWorkerProcessProxy::didReceiveAuthenticationChallenge): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::secKeyProxyStore): |
| (WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-09-18 Ben Richards <benton_richards@apple.com> |
| |
| Add script to generate WebContent service resource files and change XPC service main SPI to have it's own header |
| https://bugs.webkit.org/show_bug.cgi?id=188601 |
| |
| Reviewed by Dan Bernstein. |
| |
| Added a script to the process entitlements build phase of the WebContent service that copies resource |
| files to WebKit.framework/PrivateHeaders/CustomWebContentResources. These resource files are to |
| be used by clients who would like to make a custom WebContent service. |
| |
| * Scripts/copy-webcontent-resources-to-private-headers.sh: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/API/Cocoa/WKWebProcess.h: Drive-by fix to make this header compileable alone. |
| |
| 2018-09-18 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r236138. |
| |
| Caused API test and layout test failures on iOS. |
| |
| Reverted changeset: |
| |
| "REGRESSION (PSON): White or Black flash occurs when process |
| swapping on navigation on Mac" |
| https://bugs.webkit.org/show_bug.cgi?id=189663 |
| https://trac.webkit.org/changeset/236138 |
| |
| 2018-09-18 Eric Carlson <eric.carlson@apple.com> |
| |
| Always log when granting/revoking capture sandbox extensions |
| https://bugs.webkit.org/show_bug.cgi?id=189701 |
| <rdar://problem/44564029> |
| |
| Reviewed by Youenn Fablet. |
| |
| * UIProcess/UserMediaProcessManager.cpp: |
| (WebKit::UserMediaProcessManager::willCreateMediaStream): Always log. |
| (WebKit::UserMediaProcessManager::endedCaptureSession): Ditto. |
| |
| * WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp: |
| (WebKit::UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions): Ditto. |
| (WebKit::UserMediaPermissionRequestManager::revokeUserMediaDeviceSandboxExtensions): Ditto. |
| |
| 2018-09-18 Youenn Fablet <youenn@apple.com> |
| |
| Enable Unified Plan by default |
| https://bugs.webkit.org/show_bug.cgi?id=189675 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| |
| 2018-09-18 Antti Koivisto <antti@apple.com> |
| |
| REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=189663 |
| <rdar://problem/44184955> |
| |
| Reviewed by Geoff Garen. |
| |
| We need to keep the layer tree of the previous page alive and visible until we have something |
| to render on the new page. With PSON on Mac this means that we should keep displaying the |
| layer tree from the previus process. |
| |
| This patch moves the management of 'attaching' the drawing area (Mac only concept) from web process |
| to UI process. This is when we parent the layer tree to the view root layer. It also ensures that |
| the layer tree is not deleted too early on process swap and that it still eventually gets deleted. |
| |
| * UIProcess/DrawingAreaProxy.h: |
| (WebKit::DrawingAreaProxy::attachInWebProcess): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::messageNamesToIgnoreWhileSuspended): |
| (WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess): |
| |
| We no longer tear down drawing area (layer tree) for suspended pages automatically. Send an explicit |
| message for it. |
| |
| * UIProcess/SuspendedPageProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| |
| Only call didRelaunchProcess when process actually relaunched (not navigation process launch) to |
| match not calling processDidExit in resetStateAfterProcessExited. |
| |
| (WebKit::WebPageProxy::didCompletePageTransition): |
| |
| Attach the drawing area if appropriate. |
| |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| |
| Send suspend message to WebPage immediately instead waiting for the runloop callback. This is needed so we |
| can avoid flashing the initial empty document load when the new Page object is created. |
| |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| |
| Don't call processDidExit when suspending, not exiting the process (this function needs a new name or rafactoring). |
| This avoids clearing the drawing area and flashing to black. |
| |
| (WebKit::WebPageProxy::enterAcceleratedCompositingMode): |
| |
| This is called when we have switched to the new layer tree. |
| Tear down the drawing area in the previus process. |
| |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h: |
| * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm: |
| (WebKit::TiledCoreAnimationDrawingAreaProxy::attachInWebProcess): |
| |
| Send a message to the web process to attach the drawing area. |
| |
| * WebProcess/WebPage/DrawingArea.h: |
| (WebKit::DrawingArea::attach): |
| (WebKit::DrawingArea::attachDrawingArea): Deleted. |
| |
| Rename to be less redundant. |
| |
| * WebProcess/WebPage/DrawingArea.messages.in: |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::reinitializeWebPage): |
| |
| Don't attach drawing area automatically. It will be done by a message from UI process. |
| |
| (WebKit::WebPage::setLayerTreeStateIsFrozen): |
| |
| Layer tree is always frozen in a suspended process (if it exists). |
| |
| (WebKit::WebPage::didStartPageTransition): |
| (WebKit::WebPage::didCompletePageTransition): |
| |
| Notify UI process of transition completion. |
| |
| (WebKit::WebPage::setIsSuspended): |
| (WebKit::WebPage::tearDownDrawingAreaForSuspend): |
| * WebProcess/WebPage/WebPage.h: |
| * WebProcess/WebPage/WebPage.messages.in: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h: |
| * WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: |
| (WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea): |
| |
| Don't attach drawing area automatically. It will be done by a message from UI process. |
| |
| (WebKit::TiledCoreAnimationDrawingArea::attach): |
| (WebKit::TiledCoreAnimationDrawingArea::attachDrawingArea): Deleted. |
| |
| 2018-09-18 Claudio Saavedra <csaavedra@igalia.com> |
| |
| [WPE] Implement mouse event modifiers |
| https://bugs.webkit.org/show_bug.cgi?id=189697 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Only "CapsLocks" is missing, as WPE doesn't support that modifier. |
| * Shared/wpe/WebEventFactory.cpp: |
| (WebKit::modifiersForEventModifiers): |
| (WebKit::WebEventFactory::createWebKeyboardEvent): |
| (WebKit::WebEventFactory::createWebMouseEvent): |
| (WebKit::modifiersForEvent): Deleted. |
| |
| 2018-09-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix after r236101. |
| |
| * UIProcess/WebResourceLoadStatisticsStore.cpp: |
| (WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore): |
| Correct a BinarySemaphore::wait() call which now accepts no arguments. |
| |
| 2018-09-17 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t |
| https://bugs.webkit.org/show_bug.cgi?id=185339 |
| |
| Reviewed by Mark Lam. |
| |
| * Platform/IPC/Connection.cpp: |
| (IPC::Connection::SyncMessageState::wait): |
| * Shared/mac/SecItemShim.cpp: |
| (WebKit::sendSecItemRequest): |
| Use BinarySemaphore. |
| |
| * UIProcess/ResourceLoadStatisticsPersistentStorage.cpp: |
| (WebKit::ResourceLoadStatisticsPersistentStorage::finishAllPendingWorkSynchronously): |
| * UIProcess/WebStorage/StorageManager.cpp: |
| (WebKit::StorageManager::applicationWillTerminate): |
| * UIProcess/ios/WKActionSheetAssistant.mm: |
| (appLinkForURL): |
| Use BinarySemaphore to wait for async completion handler. We also fix memory leak |
| since the old code does not call dispatch_release for the used semaphore. |
| |
| 2018-09-17 Simon Fraser <simon.fraser@apple.com> |
| |
| Many modern media control tests leak documents in testing |
| https://bugs.webkit.org/show_bug.cgi?id=189437 |
| |
| Reviewed by Darin Adler. |
| |
| In order to accurately detect leaks in media controls tests which use lots of |
| SVGImages, we have to: |
| - Fire a zero-delay timer after the postTask, in order for ImagesLoader's m_derefElementTimer |
| to clear references to elements. |
| - Have releaseCriticalMemory() call CachedResourceLoader's garbageCollectDocumentResources() |
| to drop the last handle to the CachedResource for an SVGImage. |
| - Call WKBundleReleaseMemory() after the GC and timer, since we need garbageCollectDocumentResources() |
| to run again after that timer has fired. |
| |
| This should fix most of the spurious leak reports involving SVGImage documents. |
| |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: |
| (WKBundlePageCallAfterTasksAndTimers): |
| (WKBundlePagePostTask): Deleted. |
| * WebProcess/InjectedBundle/API/c/WKBundlePage.h: |
| |
| 2018-09-17 Dan Bernstein <mitz@apple.com> |
| |
| Try to fix Apple internal builds with the iOS 12.0 SDK. |
| |
| * Configurations/WebKit.xcconfig: Disable framework header postprocessing for iOS 12.0. |
| |
| 2018-09-17 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r236092 because it breaks internal builds. Also, remove stray '+' character from ChangeLog file. |
| |
| * Scripts/copy-webcontent-resources-to-private-headers.sh: Removed. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-08-17 Ben Richards <benton_richards@apple.com> |
| |
| Add script to generate WebContent service resource files and change XPC service main SPI to have it's own header |
| https://bugs.webkit.org/show_bug.cgi?id=188601 |
| |
| Reviewed by Dan Bernstein. |
| |
| Added a script to the process entitlements build phase of the WebContent service that copies resource |
| files to WebKit.framework/PrivateHeaders/CustomWebContentResources. These resource files are to |
| be used by clients who would like to make a custom WebContent service. |
| |
| * Scripts/copy-webcontent-resources-to-private-headers.sh: Added. |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| |
| 2018-09-17 Simon Fraser <simon.fraser@apple.com> |
| |
| Add more Fullscreen logging |
| https://bugs.webkit.org/show_bug.cgi?id=189656 |
| |
| Reviewed by Jer Noble. |
| |
| Add some fullscreen logging so I can tell whether WebFullScreenManager ever releases |
| the fullscreen element. |
| |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::WebFullScreenManager): |
| (WebKit::WebFullScreenManager::videoControlsManagerDidChange): |
| (WebKit::WebFullScreenManager::setPIPStandbyElement): |
| (WebKit::WebFullScreenManager::enterFullScreenForElement): |
| (WebKit::WebFullScreenManager::exitFullScreenForElement): |
| (WebKit::WebFullScreenManager::willEnterFullScreen): |
| (WebKit::WebFullScreenManager::didEnterFullScreen): |
| (WebKit::WebFullScreenManager::willExitFullScreen): |
| (WebKit::WebFullScreenManager::didExitFullScreen): |
| (WebKit::WebFullScreenManager::close): |
| * WebProcess/FullScreen/WebFullScreenManager.h: |
| |
| 2018-09-17 Tim Horton <timothy_horton@apple.com> |
| |
| Swipe snapshot can get stuck if swiping is disabled while it is visible |
| https://bugs.webkit.org/show_bug.cgi?id=189667 |
| <rdar://problem/40367780> |
| |
| Reviewed by Simon Fraser. |
| |
| If navigation gestures are disabled while a swipe snapshot is visible, |
| WKWebView will tear down the ViewGestureController, which means that |
| the SnapshotRemovalTracker will no longer be around to ever remove |
| the snapshot. |
| |
| It's currently very hard to write a test for this because we have |
| yet to come up with a good mechanism for testing swiping on iOS. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView setAllowsBackForwardNavigationGestures:]): |
| Instead of tearing down the ViewGestureController when navigation |
| gestures are disabled, just set a bit on it that disables gestures. |
| |
| * UIProcess/Cocoa/ViewGestureController.cpp: |
| (WebKit::ViewGestureController::canSwipeInDirection const): |
| * UIProcess/Cocoa/ViewGestureController.h: |
| (WebKit::ViewGestureController::setSwipeGestureEnabled): |
| (WebKit::ViewGestureController::isSwipeGestureEnabled): |
| Add a bit to ViewGestureController that makes starting new gestures |
| always fail, but allows e.g. snapshots from existing swipes to continue |
| their usual behavior. |
| |
| 2018-09-17 Alex Christensen <achristensen@webkit.org> |
| |
| Expose WKWebProcess.h as a private header |
| https://bugs.webkit.org/show_bug.cgi?id=189636 |
| |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| 2018-09-17 Alex Christensen <achristensen@webkit.org> |
| |
| Expose XPCServiceMain in a WebProcess header rather than WKProcessPool |
| https://bugs.webkit.org/show_bug.cgi?id=189636 |
| |
| Reviewed by Dan Bernstein. |
| |
| Fix a few build failures along the way. |
| |
| * PluginProcess/mac/PluginControllerProxyMac.mm: |
| (WebKit::PluginControllerProxy::windowAndViewFramesChanged): |
| (WebKit::PluginControllerProxy::updateLayerHostingContext): |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::replacedNSWorkspace_launchApplicationAtURL_options_configuration_error): |
| (WebKit::PluginProcess::platformInitializeProcess): |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h: |
| * Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm: |
| (WebKit::XPCServiceMain): |
| (main): |
| * SourcesCocoa.txt: |
| * UIProcess/API/Cocoa/WKProcessPool.mm: |
| (+[WKProcessPool _webContentProcessXPCMain]): Deleted. |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/API: Added. |
| * WebProcess/API/Cocoa: Added. |
| * WebProcess/API/Cocoa/WKWebProcess.cpp: Added. |
| (WKWebProcessMain): |
| * WebProcess/API/Cocoa/WKWebProcess.h: Added. |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| (-[WKAccessibilityWebPageObject convertScreenPointToRootView:]): |
| (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]): |
| (-[WKAccessibilityWebPageObject accessibilityHitTest:]): |
| |
| 2018-09-17 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Respond with requested authentication scheme for authentication challenge. |
| https://bugs.webkit.org/show_bug.cgi?id=189318 |
| |
| Reviewed by Alex Christensen. |
| |
| Curl port depends on libcurl's authentication handling by enabling CURLAUTH_ANY. With this |
| mode, the round-trip communication between the client and the server is handled by libcurl |
| internally. That's okay for many cases. But when initial request has a credentials |
| (i.e. XMLHttpRequest), there's no valid chance to store credential to the storage because |
| the returned response is not 401. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): |
| (WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCurl::tryHttpAuthentication): |
| (WebKit::NetworkDataTaskCurl::tryProxyAuthentication): |
| (WebKit::NetworkDataTaskCurl::restartWithCredential): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| |
| 2018-09-17 Woodrow Wang <woodrow_wang@apple.com> |
| |
| Clear pending resource load statistics' writes after tests |
| https://bugs.webkit.org/show_bug.cgi?id=189632 |
| <rdar://problem/44469275> |
| |
| Reviewed by Chris Dumez. |
| |
| * UIProcess/API/C/WKWebsiteDataStoreRef.cpp: |
| (WKWebsiteDataStoreStatisticsResetToConsistentState): |
| |
| 2018-09-17 Chris Dumez <cdumez@apple.com> |
| |
| PSON: window.open() with 'noopener' should only process-swap cross-site, not cross-origin |
| https://bugs.webkit.org/show_bug.cgi?id=189602 |
| <rdar://problem/44430549> |
| |
| Reviewed by Geoff Garen. |
| |
| The following fixes were made to our process swap on navigation logic: |
| - Browsing contexts opened via window.open() with 'noopener' option now only same if |
| they are cross-site, instead of doing a stricter cross-origin check. |
| - Support process swapping when opening a new window via <a target="_blank" rel="noopener"> |
| that is cross-site. |
| |
| In order to support this, the following changes were made: |
| - Stop passing a 'isCrossOriginWindowOpenNavigation' flag to the UIProcess when navigating because: |
| - This is specific to window.open() and does not apply to other windows opened by DOM |
| - This forces the origin check to happens on WebContent process side instead of relying on the |
| one in WebProcessPool in the UIProcess |
| - Pass the origin of the requester to the UIProcess when navigating, so that the WebProcessPool |
| can use the requester's host for the cross-site check for the initial navigation in a new window |
| created by DOM. |
| - Add 2 flags to WebPageProxy which indicate if the page was created by the DOM and if any provisional |
| loads have been committed. The WebProcessPool uses theses flags to recognize initial loads in |
| new windows created by the DOM, so that it uses the requester's origin for the cross-site check. |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::setRequesterOrigin): |
| (API::Navigation::requesterOrigin const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::createNewPage): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::setOpenedByDOM): |
| (WebKit::WebPageProxy::openedByDOM const): |
| (WebKit::WebPageProxy::hasCommittedAnyProvisionalLoads const): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::shouldUseSameProcessBasedOnURLs): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-09-17 Alexey Proskuryakov <ap@apple.com> |
| |
| Revert https://trac.webkit.org/r235910, because the new test times out. |
| Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts |
| https://bugs.webkit.org/show_bug.cgi?id=188008 |
| |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): |
| (IPC::decode): |
| |
| 2018-09-17 Alex Christensen <achristensen@webkit.org> |
| |
| Refactoring related to Safe Browsing |
| https://bugs.webkit.org/show_bug.cgi?id=189631 |
| |
| Reviewed by Tim Horton. |
| |
| Make SafeBrowsingResult RefCounted. |
| Move logic from an unnamed lambda to WebPageProxy::receivedNavigationPolicyDecision. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Deleted. |
| (WebKit::WebPageProxy::addPlatformLoadParameters): Deleted. |
| (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Deleted. |
| (WebKit::WebPageProxy::startDrag): Deleted. |
| (WebKit::WebPageProxy::setPromisedDataForImage): Deleted. |
| (WebKit::WebPageProxy::setDragCaretRect): Deleted. |
| (WebKit::WebPageProxy::platformRegisterAttachment): Deleted. |
| (WebKit::WebPageProxy::platformCloneAttachment): Deleted. |
| * UIProcess/SafeBrowsingResult.h: |
| (WebKit::SafeBrowsingResult::create): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-09-17 Darin Adler <darin@apple.com> |
| |
| Use OpaqueJSString rather than JSRetainPtr inside WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=189652 |
| |
| Reviewed by Saam Barati. |
| |
| * Shared/API/c/WKString.cpp: Removed unneeded include of JSStringRef.h. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: Removed unneeded |
| include of JSRetainPtr. |
| (WebKit::toJSString): Deleted. |
| (WebKit::toJSValue): Use OpaqueJSString::create. |
| (WebKit::callPropertyFunction): Ditto. |
| (WebKit::evaluate): Use adoptRef. |
| (WebKit::evaluateJavaScriptCallback): Ditto. |
| (WebKit::WebAutomationSessionProxy::scriptObjectForFrame): |
| Use OpaqueJSString::create. |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Use |
| String rather than JSStringRef. |
| |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: Removed unneeded includes. |
| (WebKit::PDFPlugin::runScriptsInPDFDocument): Use OpaqueJSString::create. |
| |
| 2018-09-17 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix incorrect WPE build fix made in r236009 |
| |
| This isn't the right place to add the typedef. I failed to notice that the WebKitWebView |
| type is not actually used anywhere in this header. Actually, the problematic function is no |
| longer declared or used anywhere and was just missed when WebKitScriptDialog was refactored, |
| so remove it. |
| |
| * UIProcess/API/wpe/WebKitScriptDialog.h: |
| * UIProcess/API/wpe/WebKitScriptDialogWPE.cpp: |
| (webkitScriptDialogRun): Deleted. |
| |
| 2018-09-17 Sihui Liu <sihui_liu@apple.com> |
| |
| Move IndexedDB to Network Process |
| https://bugs.webkit.org/show_bug.cgi?id=189415 |
| <rdar://problem/44396973> |
| |
| Reviewed by Chris Dumez. |
| |
| We are going to eliminate storage process and move its functionality to network process. |
| The reasons why we want to do this: |
| 1. Lower resource usage of having an additional process for storage operations, especially |
| memory. Single storage process takes about 5MB memory on macOS. |
| 2. Reduce latency of Service Workers. After enabling Service Workers, we've seen |
| regression in app launch. The launch time of storage process is partly attributed to this: |
| Service Workers delay page loading until receiving response from storage process. |
| 3. We choose network process because UI process may have broader access in file system |
| that we don't want the storage operations to have. |
| |
| This patch is the first piece towards the goal. It mainly moves indexedDB from storage process |
| to corresponding components of network process. Moving of Service Worker and stopping to |
| launch storage process will be done in following patches. |
| |
| We expect to see the higher cpu and memory usage of network process as it is taking more work, |
| but the overall gain in memory and latency after we completely remove storage process should be |
| positive. |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.cpp. |
| (WebKit::WebIDBConnectionToClient::create): |
| (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient): |
| (WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient): |
| (WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): |
| (WebKit::WebIDBConnectionToClient::messageSenderConnection): |
| (WebKit::WebIDBConnectionToClient::connectionToClient): |
| (WebKit::WebIDBConnectionToClient::didDeleteDatabase): |
| (WebKit::WebIDBConnectionToClient::didOpenDatabase): |
| (WebKit::WebIDBConnectionToClient::didAbortTransaction): |
| (WebKit::WebIDBConnectionToClient::didCommitTransaction): |
| (WebKit::WebIDBConnectionToClient::didCreateObjectStore): |
| (WebKit::WebIDBConnectionToClient::didDeleteObjectStore): |
| (WebKit::WebIDBConnectionToClient::didRenameObjectStore): |
| (WebKit::WebIDBConnectionToClient::didClearObjectStore): |
| (WebKit::WebIDBConnectionToClient::didCreateIndex): |
| (WebKit::WebIDBConnectionToClient::didDeleteIndex): |
| (WebKit::WebIDBConnectionToClient::didRenameIndex): |
| (WebKit::WebIDBConnectionToClient::didPutOrAdd): |
| (WebKit::WebIDBConnectionToClient::handleGetResult): |
| (WebKit::WebIDBConnectionToClient::didGetRecord): |
| (WebKit::WebIDBConnectionToClient::didGetAllRecords): |
| (WebKit::WebIDBConnectionToClient::didGetCount): |
| (WebKit::WebIDBConnectionToClient::didDeleteRecord): |
| (WebKit::WebIDBConnectionToClient::didOpenCursor): |
| (WebKit::WebIDBConnectionToClient::didIterateCursor): |
| (WebKit::WebIDBConnectionToClient::fireVersionChangeEvent): |
| (WebKit::WebIDBConnectionToClient::didStartTransaction): |
| (WebKit::WebIDBConnectionToClient::didCloseFromServer): |
| (WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked): |
| (WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames): |
| (WebKit::WebIDBConnectionToClient::deleteDatabase): |
| (WebKit::WebIDBConnectionToClient::openDatabase): |
| (WebKit::WebIDBConnectionToClient::abortTransaction): |
| (WebKit::WebIDBConnectionToClient::commitTransaction): |
| (WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): |
| (WebKit::WebIDBConnectionToClient::createObjectStore): |
| (WebKit::WebIDBConnectionToClient::deleteObjectStore): |
| (WebKit::WebIDBConnectionToClient::renameObjectStore): |
| (WebKit::WebIDBConnectionToClient::clearObjectStore): |
| (WebKit::WebIDBConnectionToClient::createIndex): |
| (WebKit::WebIDBConnectionToClient::deleteIndex): |
| (WebKit::WebIDBConnectionToClient::renameIndex): |
| (WebKit::WebIDBConnectionToClient::putOrAdd): |
| (WebKit::WebIDBConnectionToClient::getRecord): |
| (WebKit::WebIDBConnectionToClient::getAllRecords): |
| (WebKit::WebIDBConnectionToClient::getCount): |
| (WebKit::WebIDBConnectionToClient::deleteRecord): |
| (WebKit::WebIDBConnectionToClient::openCursor): |
| (WebKit::WebIDBConnectionToClient::iterateCursor): |
| (WebKit::WebIDBConnectionToClient::establishTransaction): |
| (WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose): |
| (WebKit::WebIDBConnectionToClient::databaseConnectionClosed): |
| (WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): |
| (WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): |
| (WebKit::WebIDBConnectionToClient::openDBRequestCancelled): |
| (WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer): |
| (WebKit::WebIDBConnectionToClient::getAllDatabaseNames): |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.h. |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.messages.in. |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| |
| Code moved from StorageToWebProcessConnection::didReceiveMessage. |
| |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| |
| Network process receives and stores sandbox extension of temporary files for later indexedDB |
| use. |
| |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| (WebKit::generateIDBConnectionToServerIdentifier): |
| (WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): |
| (WebKit::NetworkConnectionToWebProcess::removeIDBConnectionToServer): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::idbServer): |
| (WebKit::NetworkProcess::ensurePathExists): |
| (WebKit::NetworkProcess::postStorageTask): |
| (WebKit::NetworkProcess::performNextStorageTask): |
| (WebKit::NetworkProcess::prepareForAccessToTemporaryFile): |
| (WebKit::NetworkProcess::accessToTemporaryFileComplete): |
| (WebKit::NetworkProcess::indexedDatabaseOrigins): |
| (WebKit::NetworkProcess::addIndexedDatabaseSession): |
| (WebKit::NetworkProcess::getSandboxExtensionsForBlobFiles): |
| |
| Instead of asking UI process to grant sandbox extension to storage process, now network |
| process just asks for sandbox extension fot itself. |
| |
| (WebKit::NetworkProcess::didGetSandboxExtensionsForBlobFiles): |
| (WebKit::NetworkProcess::updateTemporaryFileSandboxExtensions): |
| (WebKit::NetworkProcess::grantSandboxExtensionsToStorageProcessForBlobs): Deleted. |
| (WebKit::NetworkProcess::didGrantSandboxExtensionsToStorageProcessForBlobs): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * Shared/Storage/StorageProcessCreationParameters.cpp: |
| (WebKit::StorageProcessCreationParameters::encode const): |
| (WebKit::StorageProcessCreationParameters::decode): |
| * Shared/Storage/StorageProcessCreationParameters.h: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * Shared/WebsiteDataStoreParameters.h: |
| * Sources.txt: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::initializeWebsiteDataStore): |
| (WebKit::StorageProcess::fetchWebsiteData): |
| (WebKit::StorageProcess::deleteWebsiteData): |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| (WebKit::StorageProcess::idbServer): Deleted. |
| (WebKit::StorageProcess::grantSandboxExtensionsForBlobs): Deleted. |
| (WebKit::StorageProcess::prepareForAccessToTemporaryFile): Deleted. |
| (WebKit::StorageProcess::accessToTemporaryFileComplete): Deleted. |
| (WebKit::StorageProcess::indexedDatabaseOrigins): Deleted. |
| (WebKit::StorageProcess::getSandboxExtensionsForBlobFiles): Deleted. |
| (WebKit::StorageProcess::didGetSandboxExtensionsForBlobFiles): Deleted. |
| * StorageProcess/StorageProcess.h: |
| (WebKit::StorageProcess::queue): Deleted. |
| * StorageProcess/StorageProcess.messages.in: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::didReceiveMessage): |
| (WebKit::StorageToWebProcessConnection::didClose): |
| (WebKit::generateIDBConnectionToServerIdentifier): Deleted. |
| (WebKit::StorageToWebProcessConnection::establishIDBConnectionToServer): Deleted. |
| (WebKit::StorageToWebProcessConnection::removeIDBConnectionToServer): Deleted. |
| * StorageProcess/StorageToWebProcessConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getSandboxExtensionsForBlobFiles): |
| (WebKit::NetworkProcessProxy::grantSandboxExtensionsToStorageProcessForBlobs): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getSandboxExtensionsForBlobFiles): Deleted. |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::computeNetworkProcessAccessTypeForDataFetch): |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::computeNetworkProcessAccessTypeForDataRemoval): |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::storageProcessParameters): |
| (WebKit::WebsiteDataStore::parameters): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): |
| (WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer): |
| (WebKit::WebIDBConnectionToServer::messageSenderConnection): |
| * WebProcess/Databases/WebDatabaseProvider.cpp: |
| (WebKit::WebDatabaseProvider::idbConnectionToServerForSession): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::idbConnectionToServerForSession): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| (WebKit::NetworkProcessConnection::existingIDBConnectionToServerForIdentifier const): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::didReceiveMessage): |
| (WebKit::WebToStorageProcessConnection::didClose): |
| (WebKit::WebToStorageProcessConnection::idbConnectionToServerForSession): Deleted. |
| * WebProcess/Storage/WebToStorageProcessConnection.h: |
| (WebKit::WebToStorageProcessConnection::existingIDBConnectionToServerForIdentifier): Deleted. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| (WebKit::WebProcess::webToStorageProcessConnectionClosed): |
| |
| 2018-09-08 Darin Adler <darin@apple.com> |
| |
| Streamline JSRetainPtr, fix leaks of JSString and JSGlobalContext |
| https://bugs.webkit.org/show_bug.cgi?id=189455 |
| |
| Reviewed by Keith Miller. |
| |
| * WebProcess/Automation/WebAutomationSessionProxy.cpp: |
| (WebKit::toJSString): Use adopt function instead of adopt construuctor. |
| (WebKit::evaluate): Ditto. |
| (WebKit::evaluateJavaScriptCallback): Ditto. |
| (WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Ditto. |
| |
| 2018-09-14 Matt Lewis <jlewis3@apple.com> |
| |
| Unreviewed, rolling out r236020. |
| |
| This caused an api failure on High Sierra |
| |
| Reverted changeset: |
| |
| "Refactoring related to Safe Browsing" |
| https://bugs.webkit.org/show_bug.cgi?id=189631 |
| https://trac.webkit.org/changeset/236020 |
| |
| 2018-09-14 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl] Bug fix on some inaccurate values in NetworkLoadMetrics. |
| https://bugs.webkit.org/show_bug.cgi?id=189530 |
| |
| Reviewed by Alex Christensen. |
| |
| Curl port uses the start time libcurl provided. But there's a lug between main thread and Curl thread. |
| Record the start time of request instead of libcurl's start timing and use it to measure the metrics. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): |
| (WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection): |
| (WebKit::NetworkDataTaskCurl::restartWithCredential): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| |
| 2018-09-14 Alex Christensen <achristensen@webkit.org> |
| |
| Refactoring related to Safe Browsing |
| https://bugs.webkit.org/show_bug.cgi?id=189631 |
| |
| Reviewed by Tim Horton. |
| |
| Make SafeBrowsingResult RefCounted. |
| Move logic from an unnamed lambda to WebPageProxy::receivedNavigationPolicyDecision. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::beginSafeBrowsingCheck): |
| (WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Deleted. |
| (WebKit::WebPageProxy::addPlatformLoadParameters): Deleted. |
| (WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Deleted. |
| (WebKit::WebPageProxy::startDrag): Deleted. |
| (WebKit::WebPageProxy::setPromisedDataForImage): Deleted. |
| (WebKit::WebPageProxy::setDragCaretRect): Deleted. |
| (WebKit::WebPageProxy::platformRegisterAttachment): Deleted. |
| (WebKit::WebPageProxy::platformCloneAttachment): Deleted. |
| * UIProcess/SafeBrowsingResult.h: |
| (WebKit::SafeBrowsingResult::create): |
| * UIProcess/WebFramePolicyListenerProxy.cpp: |
| (WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults): |
| * UIProcess/WebFramePolicyListenerProxy.h: |
| * UIProcess/WebFrameProxy.cpp: |
| (WebKit::WebFrameProxy::setUpPolicyListenerProxy): |
| * UIProcess/WebFrameProxy.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::receivedNavigationPolicyDecision): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-09-14 Geoffrey Garen <ggaren@apple.com> |
| |
| Clarify the configuration used by WKUIDelegate's createWebViewWithConfiguration |
| https://bugs.webkit.org/show_bug.cgi?id=189634 |
| |
| Reviewed by Tim Horton. |
| |
| * UIProcess/API/Cocoa/WKUIDelegate.h: |
| |
| 2018-09-11 Simon Fraser <simon.fraser@apple.com> |
| |
| Make GraphicsLayers ref-counted, so their tree can persist when disconnected from RenderLayerBackings |
| https://bugs.webkit.org/show_bug.cgi?id=189521 |
| |
| Reviewed by Tim Horton. |
| |
| Make GraphicsLayer be RefCounted<GraphicsLayer>. GraphicsLayers own their children, via a Vector<Ref<GraphicsLayer>>. |
| |
| RenderLayerBacking and other holders of GraphicsLayers use RefPtr<GraphicsLayer>. |
| |
| Added some helper functions to null out a RefPtr<GraphicsLayer> after removing from the tree, |
| clearing the client. GraphicsLayer.m_client becomes a pointer, so it can be set to point to a singleton |
| empty client when a GraphicsLayer gets detached from its owner. More explicit layer unparenting, |
| and removed some unnecessary parent checks, and redundant unparenting. |
| |
| Other changes are just to adapt to the new ownership patterns. |
| |
| I verified that no GraphicsLayers were leaked or abandoned after this change. |
| |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::~WebInspectorClient): |
| (WebKit::WebInspectorClient::showPaintRect): |
| (WebKit::WebInspectorClient::animationEndedForLayer): |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| (WebKit::RemoteLayerTreeContext::createGraphicsLayer): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updateRootLayers): |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| |
| 2018-09-14 Eric Carlson <eric.carlson@apple.com> |
| |
| Support arbitrary video resolution in getUserMedia API |
| https://bugs.webkit.org/show_bug.cgi?id=178109 |
| <rdar://problem/35083128> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/cocoa/UserMediaCaptureManager.cpp: |
| |
| 2018-09-14 Basuke Suzuki <Basuke.Suzuki@sony.com> |
| |
| [Curl][WebKit] Bug fix for continuously retrying with empty credentials. |
| https://bugs.webkit.org/show_bug.cgi?id=189601 |
| |
| Reviewed by Alex Christensen. |
| |
| Added stop condition for empty credentials passed by client. |
| |
| * NetworkProcess/curl/NetworkDataTaskCurl.cpp: |
| (WebKit::NetworkDataTaskCurl::curlDidReceiveResponse): |
| (WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse): |
| (WebKit::NetworkDataTaskCurl::tryHttpAuthentication): |
| (WebKit::NetworkDataTaskCurl::tryProxyAuthentication): |
| * NetworkProcess/curl/NetworkDataTaskCurl.h: |
| |
| 2018-09-14 Jer Noble <jer.noble@apple.com> |
| |
| Turn SourceBufferChangeTypeEnabled on by default |
| https://bugs.webkit.org/show_bug.cgi?id=189527 |
| |
| Reviewed by Eric Carlson. |
| |
| * Shared/WebPreferences.yaml: |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| |
| 2018-09-14 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, speculative WPE build fix after r236004 |
| https://bugs.webkit.org/show_bug.cgi?id=189545 |
| |
| * UIProcess/API/wpe/WebKitScriptDialog.h: |
| |
| 2018-09-14 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Make script dialogs modal to the current web view only |
| https://bugs.webkit.org/show_bug.cgi?id=189545 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Change the default implementation of script dialogs to use an embedded window, like the HTTP auth dialog, |
| instead of a GtkMessageDialog. This patch adds a base class WebKitWebViewDialog shared by |
| WebKitAuthenticationDialog and the new WebKitScriptDialogImpl. |
| |
| * SourcesGTK.txt: Add new files to compilation. |
| * UIProcess/API/glib/WebKitScriptDialogPrivate.h: |
| * UIProcess/API/gtk/WebKitAuthenticationDialog.cpp: |
| (webkitAuthenticationDialogInitialize): Do not use a frame and use a better styled title. |
| (webkit_authentication_dialog_class_init): Remove implementation of vfuncs that are now implemented by the |
| parent. |
| * UIProcess/API/gtk/WebKitAuthenticationDialog.h: |
| * UIProcess/API/gtk/WebKitScriptDialogGtk.cpp: |
| (webkitScriptDialogAccept): Use WebKitScriptDialogImpl API. |
| (webkitScriptDialogDismiss): Ditto. |
| (webkitScriptDialogSetUserInput): Ditto. |
| * UIProcess/API/gtk/WebKitScriptDialogImpl.cpp: Added. |
| (webkitScriptDialogImplClose): |
| (webkitScriptDialogImplKeyPressEvent): |
| (webkitScriptDialogImplMap): |
| (webkitScriptDialogImplConstructed): |
| (webkitScriptDialogImplDispose): |
| (webkit_script_dialog_impl_class_init): |
| (webkitScriptDialogImplAddButton): |
| (webkitScriptDialogImplNew): |
| (webkitScriptDialogImplCancel): |
| (webkitScriptDialogImplConfirm): |
| (webkitScriptDialogImplSetEntryText): |
| * UIProcess/API/gtk/WebKitScriptDialogImpl.h: Added. |
| * UIProcess/API/gtk/WebKitWebViewBase.cpp: |
| (webkitWebViewChildIsInternalWidget): Rename authenticationDialog as just dialog. |
| (webkitWebViewBaseAddDialog): Ditto. |
| (webkitWebViewBaseContainerRemove): Ditto. |
| (webkitWebViewBaseContainerForall): Ditto. |
| (webkitWebViewBaseConstructed): Ditto. |
| (webkitWebViewBaseSizeAllocate): Ditto. |
| (webkitWebViewBaseKeyPressEvent): Ditto. |
| (webkitWebViewBaseHandleMouseEvent): Ditto. |
| (webkitWebViewBaseButtonPressEvent): Ditto. |
| (webkitWebViewBaseButtonReleaseEvent): Ditto. |
| (webkitWebViewBaseHandleWheelEvent): Ditto. |
| (webkitWebViewBaseScrollEvent): Ditto. |
| (webkitWebViewBaseMotionNotifyEvent): Ditto. |
| (webkitWebViewBaseCrossingNotifyEvent): Ditto. |
| (webkitWebViewBaseTouchEvent): Ditto. |
| (webkitWebViewBaseFocus): Ditto. |
| (webkitWebViewBaseDestroy): Ditto. |
| * UIProcess/API/gtk/WebKitWebViewBasePrivate.h: |
| * UIProcess/API/gtk/WebKitWebViewDialog.cpp: Added. |
| (webkitWebViewDialogDraw): |
| (webkitWebViewDialogSizeAllocate): |
| (webkitWebViewDialogConstructed): |
| (webkit_web_view_dialog_class_init): |
| * UIProcess/API/gtk/WebKitWebViewDialog.h: Added. |
| * UIProcess/API/gtk/WebKitWebViewGtk.cpp: |
| (webkitWebViewAuthenticate): |
| (webkitWebViewScriptDialog): |
| |
| 2018-09-13 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r235954. |
| |
| Breaks the watchOS build. |
| |
| Reverted changeset: |
| |
| "Move IndexedDB to Network Process" |
| https://bugs.webkit.org/show_bug.cgi?id=189415 |
| https://trac.webkit.org/changeset/235954 |
| |
| 2018-09-13 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON): setting window.opener to null allows process swapping in cases that are not web-compatible |
| https://bugs.webkit.org/show_bug.cgi?id=189590 |
| <rdar://problem/44422725> |
| |
| Reviewed by Geoffrey Garen. |
| |
| If script calls window.open() without 'noopener' and the newly navigated window gets navigated cross-site, |
| we are currently unable to process-swap because the opener has a WindowProxy handle to this new Window and |
| may interact with it (which we currently do not support cross-process). We were dealing with this by not |
| process-swapping if window.opener is not null. This works most of the time but is not sufficient because the |
| opener may get nulled out, while the opener still has a valid WindowProxy handle to its openee. |
| |
| Therefore, we now also check for a flag indicating if the frame was opened via window.open() without |
| 'nooopener'. We still need to check if the browsing context has an opener for browsing context created |
| via <a target="_blank"> for example (the opener does not have a handle to the new window but the openee |
| has access to its opener). |
| |
| * Shared/NavigationActionData.cpp: |
| (WebKit::NavigationActionData::encode const): |
| (WebKit::NavigationActionData::decode): |
| * Shared/NavigationActionData.h: |
| * UIProcess/API/APINavigation.h: |
| (API::Navigation::openedViaWindowOpenWithOpener const): |
| (API::Navigation::setOpenedViaWindowOpenWithOpener): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: |
| (WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): |
| |
| 2018-09-13 Dean Jackson <dino@grorg.org> |
| |
| Generate warnings for Preferences files |
| https://bugs.webkit.org/show_bug.cgi?id=189573 |
| |
| Reviewed by Sam Weinig. |
| |
| Generate the "DO NOT EDIT" warnings, rather than have |
| them in the template (which was confusing). |
| |
| While here, simplify some of the templating generation code |
| to avoid duplication. |
| |
| * Scripts/GeneratePreferences.rb: |
| * Scripts/PreferencesTemplates/WebPageUpdatePreferences.cpp.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesKeys.cpp.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesKeys.h.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesStoreDefaultsMap.cpp.erb: |
| |
| 2018-09-13 Keith Rollin <krollin@apple.com> |
| |
| WebPageProxy::reportPageLoadResult can crash on some code paths |
| https://bugs.webkit.org/show_bug.cgi?id=189568 |
| |
| Reviewed by Chris Dumez. |
| |
| WebPageProxy::reportPageLoadResult (which is called from |
| WebPageProxy::didFinishLoadForFrame) can sometimes crash when |
| accessing m_pageLoadStart (a std::optional) in its unloaded state. |
| Normally, m_pageLoadStart is initialized in |
| WebPageProxy::didStartProvisionalLoadForFrame, which one would expect |
| would be called before WebPageProxy::didFinishLoadForFrame. But that |
| turns out to not always be the case. It's not apparent under what |
| conditions didStartProvisionalLoadForFrame will not be called, but |
| it's happening in the wild, leading to crashes now that std::optional |
| asserts in release builds on bad accesses (see |
| https://bugs.webkit.org/show_bug.cgi?id=189568). |
| |
| Fix this by checking m_pageLoadState on entry to reportPageLoadResult. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::reportPageLoadResult): |
| |
| 2018-09-13 Chris Dumez <cdumez@apple.com> |
| |
| ProcessSwap.BackWithoutSuspendedPage API test hits assertion under WebPageProxy::didCreateMainFrame() |
| https://bugs.webkit.org/show_bug.cgi?id=189599 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The code in WebPageProxy::reattachToWebProcess() was re-initializing m_mainFrame unconditionally in case |
| of a HistoryNavigation. The reason we need to initialize m_mainFrame in reattachToWebProcess() is if the |
| process we're reattaching to already has a WebPage (with a main frame), in which case |
| WebPageProxy::didCreateMainFrame() would not get called to initialize WebPageProxy::m_mainFrame. |
| |
| The process we're reattaching to can be in such a state only if it comes from a SuspendedPageProxy (we |
| detached the WebProcessProxy from the WebPageProxy but kept the WebPage in the "suspended" WebProcess). |
| It is true that we're only reattaching to a SuspendedPageProxy's process in the event of history |
| navigations. However, it is not true that all history navigations will use a SuspendedPageProxy's process. |
| For example, no SuspendedPageProxy may be available for the history navigation because the history |
| was restored to a new view from disk, or because the WebBackForwardListItem no longer has a |
| SuspendedPageProxy (we currently only keep a single SuspendedPageProxy for the last HistoryItem). |
| |
| Therefore, unconditionally initializating m_mainFrame in reattachToWebProcess() for history navigations |
| is incorrect and we should instead check if we're reattaching to a SuspendedPage's process. |
| |
| Change is covered by ProcessSwap.BackWithoutSuspendedPage API test which is no longer crashes and |
| existing Back/Forward PSON API tests which are still passing. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-09-13 Chris Dumez <cdumez@apple.com> |
| |
| Add release logging to help debug PSON issues |
| https://bugs.webkit.org/show_bug.cgi?id=189562 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Add release logging to help debug issues related to process swap on navigation. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigation): |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| * UIProcess/WebProcessPool.h: |
| |
| 2018-09-13 Chris Dumez <cdumez@apple.com> |
| |
| Add null check for drawing area in WebPage::didCompletePageTransition() after r235867 |
| https://bugs.webkit.org/show_bug.cgi?id=189587 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add null check for drawing area in WebPage::didCompletePageTransition() after r235867 |
| as this is causing crashes on the bots. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::didCompletePageTransition): |
| |
| 2018-09-13 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r235953. |
| |
| Caused layout test crashes under GuardMalloc. |
| |
| Reverted changeset: |
| |
| "Make GraphicsLayers ref-counted, so their tree can persist |
| when disconnected from RenderLayerBackings" |
| https://bugs.webkit.org/show_bug.cgi?id=189521 |
| https://trac.webkit.org/changeset/235953 |
| |
| 2018-09-13 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK][WPE] Allow to run script dialogs asynchronously in the UI process |
| https://bugs.webkit.org/show_bug.cgi?id=189544 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Script dialogs are sync in the WebProcess, but we don't need to block the UI process while they are running. Our |
| current API doesn't allow it, because it always expects the dialog to be closed in the signal handler. API |
| changes are backwards compatible. |
| |
| * UIProcess/API/glib/WebKitScriptDialog.cpp: |
| (webkitScriptDialogCreate): Added to heap allocate a WebKitScriptDialog. |
| (webkitScriptDialogIsRunning): Common implementation here, a script dialog is considered to be running if it has |
| a competion handler pending. |
| (webkit_script_dialog_ref): WebKitScriptDialog is now refcounted. |
| (webkit_script_dialog_unref): Ditto. |
| (webkit_script_dialog_close): New method to notify that we are done with the dialog. |
| * UIProcess/API/glib/WebKitScriptDialogPrivate.h: |
| (_WebKitScriptDialog::_WebKitScriptDialog): Use a single constructor and keep the completion handler. |
| * UIProcess/API/glib/WebKitUIClient.cpp: Do not call the completion handler, pass it to the web view. |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewDispose): Close the current script dialog if there's any. |
| (webkit_web_view_class_init): Document how to handle dialogs asynchronously. |
| (webkitWebViewRunJavaScriptAlert): Do not stack allocate the WebKitScriptDialog, create it with |
| webkitScriptDialogCreate() passing the completion handler. |
| (webkitWebViewRunJavaScriptConfirm): Ditto. |
| (webkitWebViewRunJavaScriptPrompt): Ditto. |
| (webkitWebViewRunJavaScriptBeforeUnloadConfirm): Ditto. |
| * UIProcess/API/glib/WebKitWebViewPrivate.h: |
| * UIProcess/API/gtk/WebKitScriptDialog.h: |
| * UIProcess/API/gtk/WebKitScriptDialogGtk.cpp: |
| (scriptDialogResponseCallback): Hnadle the response callback. |
| (webkitScriptDialogRun): Do not use gtk_dialog_run(), connect to response signal and show the dialogs instead. |
| * UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: |
| * UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: |
| * UIProcess/API/wpe/WebKitScriptDialogWPE.cpp: |
| |
| 2018-09-12 Dan Bernstein <mitz@apple.com> |
| |
| Update availability annotations to match the macOS and iOS SDKs in the Xcode 10 GM seed |
| https://bugs.webkit.org/show_bug.cgi?id=189561 |
| |
| Reviewed by Tim Horton. |
| |
| Changed WK_MAC_TBA and WK_IOS_TBA to 10.14 and 12.0, respectively, in all declarations that |
| appear in the GM seed SDKs. |
| |
| * Shared/API/Cocoa/_WKRenderingProgressEvents.h: |
| * UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h: |
| * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| * UIProcess/API/Cocoa/WKProcessPoolPrivate.h: |
| * UIProcess/API/Cocoa/WKUIDelegatePrivate.h: |
| * UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: |
| * UIProcess/API/Cocoa/WKViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h: |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h: |
| * UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: |
| * UIProcess/API/Cocoa/_WKAttachment.h: |
| * UIProcess/API/Cocoa/_WKAutomationDelegate.h: |
| * UIProcess/API/Cocoa/_WKAutomationSession.h: |
| * UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h: |
| * UIProcess/API/Cocoa/_WKFormInputSession.h: |
| * UIProcess/API/Cocoa/_WKInputDelegate.h: |
| * UIProcess/API/Cocoa/_WKLinkIconParameters.h: |
| * UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: |
| * UIProcess/API/Cocoa/_WKWebsitePolicies.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInEditingDelegate.h: |
| * WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h: |
| * WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: |
| * WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h: |
| |
| 2018-09-12 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Complete support for Paste as Quotation |
| https://bugs.webkit.org/show_bug.cgi?id=189504 |
| |
| Reviewed by Wenson Hsieh. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView canPerformAction:withSender:]): Handle _pasteAsQuotation:. It’s not included |
| in FOR_EACH_WKCONTENTVIEW_ACTION, because it’s declared and implemented in the WKPrivate |
| category. If we add more actions in the category, it could make sense to fold them into |
| a new FOR_EACH_PRIVATE_WKCONTENTVIEW_ACTION. |
| (-[WKWebView targetForAction:withSender:]): Handle _pasteAsQuotation:. |
| (-[WKWebView _pasteAsQuotation:]): Send to the WebViewImpl or the WKContentView. |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared a new _pasteAsQuotation: action. |
| |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::selectorExceptionMap): Added a custom mapping from the new selector to the |
| PasteAsQuotation command. |
| |
| * UIProcess/ios/WKContentViewInteraction.h: Declare methods for the new action. |
| * UIProcess/ios/WKContentViewInteraction.mm: |
| Forward _pasteAsQuotation: to the WKWebView so that clients get a chance to override its |
| behavior. |
| (-[WKContentView _pasteAsQuotationForWebView:]): Send the command to the page. |
| |
| 2018-09-12 Sihui Liu <sihui_liu@apple.com> |
| |
| Move IndexedDB to Network Process |
| https://bugs.webkit.org/show_bug.cgi?id=189415 |
| |
| Reviewed by Geoffrey Garen. |
| |
| We are going to eliminate storage process and move its functionality to network process. |
| The reasons why we want to do this: |
| 1. Lower resource usage of having an additional process for storage operations, especially |
| memory. Single storage process takes about 5MB memory on macOS. |
| 2. Reduce latency of Service Workers. After enabling Service Workers, we've seen |
| regression in app launch. The launch time of storage process is partly attributed to this: |
| Service Workers delay page loading until receiving response from storage process. |
| 3. We choose network process because UI process may have broader access in file system |
| that we don't want the storage operations to have. |
| |
| This patch is the first piece towards the goal. It mainly moves indexedDB from storage process |
| to corresponding components of network process. Moving of Service Worker and stopping to |
| launch storage process will be done in following patches. |
| |
| We expect to see the higher cpu and memory usage of network process as it is taking more work, |
| but the overall gain in memory and latency after we completely remove storage process should be |
| positive. |
| |
| |
| * CMakeLists.txt: |
| * DerivedSources.make: |
| |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.cpp. |
| (WebKit::WebIDBConnectionToClient::create): |
| (WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient): |
| (WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient): |
| (WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): |
| (WebKit::WebIDBConnectionToClient::messageSenderConnection): |
| (WebKit::WebIDBConnectionToClient::connectionToClient): |
| (WebKit::WebIDBConnectionToClient::didDeleteDatabase): |
| (WebKit::WebIDBConnectionToClient::didOpenDatabase): |
| (WebKit::WebIDBConnectionToClient::didAbortTransaction): |
| (WebKit::WebIDBConnectionToClient::didCommitTransaction): |
| (WebKit::WebIDBConnectionToClient::didCreateObjectStore): |
| (WebKit::WebIDBConnectionToClient::didDeleteObjectStore): |
| (WebKit::WebIDBConnectionToClient::didRenameObjectStore): |
| (WebKit::WebIDBConnectionToClient::didClearObjectStore): |
| (WebKit::WebIDBConnectionToClient::didCreateIndex): |
| (WebKit::WebIDBConnectionToClient::didDeleteIndex): |
| (WebKit::WebIDBConnectionToClient::didRenameIndex): |
| (WebKit::WebIDBConnectionToClient::didPutOrAdd): |
| (WebKit::WebIDBConnectionToClient::handleGetResult): |
| (WebKit::WebIDBConnectionToClient::didGetRecord): |
| (WebKit::WebIDBConnectionToClient::didGetAllRecords): |
| (WebKit::WebIDBConnectionToClient::didGetCount): |
| (WebKit::WebIDBConnectionToClient::didDeleteRecord): |
| (WebKit::WebIDBConnectionToClient::didOpenCursor): |
| (WebKit::WebIDBConnectionToClient::didIterateCursor): |
| (WebKit::WebIDBConnectionToClient::fireVersionChangeEvent): |
| (WebKit::WebIDBConnectionToClient::didStartTransaction): |
| (WebKit::WebIDBConnectionToClient::didCloseFromServer): |
| (WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked): |
| (WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames): |
| (WebKit::WebIDBConnectionToClient::deleteDatabase): |
| (WebKit::WebIDBConnectionToClient::openDatabase): |
| (WebKit::WebIDBConnectionToClient::abortTransaction): |
| (WebKit::WebIDBConnectionToClient::commitTransaction): |
| (WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): |
| (WebKit::WebIDBConnectionToClient::createObjectStore): |
| (WebKit::WebIDBConnectionToClient::deleteObjectStore): |
| (WebKit::WebIDBConnectionToClient::renameObjectStore): |
| (WebKit::WebIDBConnectionToClient::clearObjectStore): |
| (WebKit::WebIDBConnectionToClient::createIndex): |
| (WebKit::WebIDBConnectionToClient::deleteIndex): |
| (WebKit::WebIDBConnectionToClient::renameIndex): |
| (WebKit::WebIDBConnectionToClient::putOrAdd): |
| (WebKit::WebIDBConnectionToClient::getRecord): |
| (WebKit::WebIDBConnectionToClient::getAllRecords): |
| (WebKit::WebIDBConnectionToClient::getCount): |
| (WebKit::WebIDBConnectionToClient::deleteRecord): |
| (WebKit::WebIDBConnectionToClient::openCursor): |
| (WebKit::WebIDBConnectionToClient::iterateCursor): |
| (WebKit::WebIDBConnectionToClient::establishTransaction): |
| (WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose): |
| (WebKit::WebIDBConnectionToClient::databaseConnectionClosed): |
| (WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): |
| (WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): |
| (WebKit::WebIDBConnectionToClient::openDBRequestCancelled): |
| (WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer): |
| (WebKit::WebIDBConnectionToClient::getAllDatabaseNames): |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.h. |
| * NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.messages.in. |
| * NetworkProcess/NetworkConnectionToWebProcess.cpp: |
| (WebKit::NetworkConnectionToWebProcess::didReceiveMessage): |
| |
| Code moved from StorageToWebProcessConnection::didReceiveMessage. |
| |
| (WebKit::NetworkConnectionToWebProcess::didClose): |
| (WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles): |
| |
| Network process receives and stores sandbox extension of temporary files for later indexedDB |
| use. |
| |
| (WebKit::generateIDBConnectionToServerIdentifier): |
| (WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): |
| (WebKit::NetworkConnectionToWebProcess::removeIDBConnectionToServer): |
| * NetworkProcess/NetworkConnectionToWebProcess.h: |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkProcess.cpp: |
| (WebKit::NetworkProcess::NetworkProcess): |
| (WebKit::NetworkProcess::initializeNetworkProcess): |
| (WebKit::NetworkProcess::addWebsiteDataStore): |
| (WebKit::NetworkProcess::fetchWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteData): |
| (WebKit::NetworkProcess::deleteWebsiteDataForOrigins): |
| (WebKit::NetworkProcess::idbServer): |
| (WebKit::NetworkProcess::ensurePathExists): |
| (WebKit::NetworkProcess::postStorageTask): |
| (WebKit::NetworkProcess::performNextStorageTask): |
| (WebKit::NetworkProcess::prepareForAccessToTemporaryFile): |
| (WebKit::NetworkProcess::accessToTemporaryFileComplete): |
| (WebKit::NetworkProcess::indexedDatabaseOrigins): |
| (WebKit::NetworkProcess::addIndexedDatabaseSession): |
| (WebKit::NetworkProcess::getSandboxExtensionsForBlobFiles): |
| |
| Instead of asking UI process to grant sandbox extension to storage process, now network |
| process just asks for sandbox extension fot itself. |
| |
| (WebKit::NetworkProcess::didGetSandboxExtensionsForBlobFiles): |
| (WebKit::NetworkProcess::updateTemporaryFileSandboxExtensions): |
| (WebKit::NetworkProcess::grantSandboxExtensionsToStorageProcessForBlobs): Deleted. |
| (WebKit::NetworkProcess::didGrantSandboxExtensionsToStorageProcessForBlobs): Deleted. |
| * NetworkProcess/NetworkProcess.h: |
| (WebKit::NetworkProcess::queue): |
| * NetworkProcess/NetworkProcess.messages.in: |
| * NetworkProcess/NetworkProcessCreationParameters.cpp: |
| (WebKit::NetworkProcessCreationParameters::encode const): |
| (WebKit::NetworkProcessCreationParameters::decode): |
| * NetworkProcess/NetworkProcessCreationParameters.h: |
| * Shared/Storage/StorageProcessCreationParameters.cpp: |
| (WebKit::StorageProcessCreationParameters::encode const): |
| (WebKit::StorageProcessCreationParameters::decode): |
| * Shared/Storage/StorageProcessCreationParameters.h: |
| * Shared/WebsiteDataStoreParameters.cpp: |
| (WebKit::WebsiteDataStoreParameters::encode const): |
| (WebKit::WebsiteDataStoreParameters::decode): |
| (WebKit::WebsiteDataStoreParameters::privateSessionParameters): |
| * Shared/WebsiteDataStoreParameters.h: |
| * Sources.txt: |
| * StorageProcess/StorageProcess.cpp: |
| (WebKit::StorageProcess::initializeWebsiteDataStore): |
| (WebKit::StorageProcess::fetchWebsiteData): |
| (WebKit::StorageProcess::deleteWebsiteData): |
| (WebKit::StorageProcess::deleteWebsiteDataForOrigins): |
| (WebKit::StorageProcess::idbServer): Deleted. |
| (WebKit::StorageProcess::grantSandboxExtensionsForBlobs): Deleted. |
| (WebKit::StorageProcess::prepareForAccessToTemporaryFile): Deleted. |
| (WebKit::StorageProcess::accessToTemporaryFileComplete): Deleted. |
| (WebKit::StorageProcess::indexedDatabaseOrigins): Deleted. |
| (WebKit::StorageProcess::getSandboxExtensionsForBlobFiles): Deleted. |
| (WebKit::StorageProcess::didGetSandboxExtensionsForBlobFiles): Deleted. |
| * StorageProcess/StorageProcess.h: |
| (WebKit::StorageProcess::queue): Deleted. |
| * StorageProcess/StorageProcess.messages.in: |
| * StorageProcess/StorageToWebProcessConnection.cpp: |
| (WebKit::StorageToWebProcessConnection::didReceiveMessage): |
| (WebKit::StorageToWebProcessConnection::didClose): |
| (WebKit::generateIDBConnectionToServerIdentifier): Deleted. |
| (WebKit::StorageToWebProcessConnection::establishIDBConnectionToServer): Deleted. |
| (WebKit::StorageToWebProcessConnection::removeIDBConnectionToServer): Deleted. |
| * StorageProcess/StorageToWebProcessConnection.h: |
| * StorageProcess/StorageToWebProcessConnection.messages.in: |
| * UIProcess/Network/NetworkProcessProxy.cpp: |
| (WebKit::NetworkProcessProxy::getSandboxExtensionsForBlobFiles): |
| (WebKit::NetworkProcessProxy::grantSandboxExtensionsToStorageProcessForBlobs): Deleted. |
| * UIProcess/Network/NetworkProcessProxy.h: |
| * UIProcess/Network/NetworkProcessProxy.messages.in: |
| * UIProcess/Storage/StorageProcessProxy.cpp: |
| (WebKit::StorageProcessProxy::getSandboxExtensionsForBlobFiles): Deleted. |
| * UIProcess/Storage/StorageProcessProxy.h: |
| * UIProcess/Storage/StorageProcessProxy.messages.in: |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::ensureNetworkProcess): |
| (WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore): |
| (WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore): |
| * UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: |
| (WebKit::WebsiteDataStore::parameters): |
| * UIProcess/WebsiteData/WebsiteDataStore.cpp: |
| (WebKit::computeNetworkProcessAccessTypeForDataFetch): |
| (WebKit::WebsiteDataStore::fetchDataAndApply): |
| (WebKit::computeNetworkProcessAccessTypeForDataRemoval): |
| (WebKit::WebsiteDataStore::removeData): |
| (WebKit::WebsiteDataStore::storageProcessParameters): |
| (WebKit::WebsiteDataStore::parameters): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp: |
| (WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer): |
| (WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer): |
| (WebKit::WebIDBConnectionToServer::messageSenderConnection): |
| * WebProcess/Databases/WebDatabaseProvider.cpp: |
| (WebKit::WebDatabaseProvider::idbConnectionToServerForSession): |
| * WebProcess/Network/NetworkProcessConnection.cpp: |
| (WebKit::NetworkProcessConnection::didReceiveMessage): |
| (WebKit::NetworkProcessConnection::didClose): |
| (WebKit::NetworkProcessConnection::idbConnectionToServerForSession): |
| * WebProcess/Network/NetworkProcessConnection.h: |
| (WebKit::NetworkProcessConnection::existingIDBConnectionToServerForIdentifier): |
| * WebProcess/Storage/WebToStorageProcessConnection.cpp: |
| (WebKit::WebToStorageProcessConnection::didReceiveMessage): |
| |
| Code moved from WebToStorageProcessConnection::didReceiveMessage. |
| |
| (WebKit::WebToStorageProcessConnection::didClose): |
| (WebKit::WebToStorageProcessConnection::idbConnectionToServerForSession): Deleted. |
| * WebProcess/Storage/WebToStorageProcessConnection.h: |
| (WebKit::WebToStorageProcessConnection::existingIDBConnectionToServerForIdentifier): Deleted. |
| * WebProcess/WebProcess.cpp: |
| (WebKit::WebProcess::networkProcessConnectionClosed): |
| (WebKit::WebProcess::webToStorageProcessConnectionClosed): |
| |
| 2018-09-11 Simon Fraser <simon.fraser@apple.com> |
| |
| Make GraphicsLayers ref-counted, so their tree can persist when disconnected from RenderLayerBackings |
| https://bugs.webkit.org/show_bug.cgi?id=189521 |
| |
| Reviewed by Tim Horton. |
| |
| Make GraphicsLayer be RefCounted<GraphicsLayer>. GraphicsLayers own their children, via a Vector<Ref<GraphicsLayer>>. |
| |
| RenderLayerBacking and other holders of GraphicsLayers use RefPtr<GraphicsLayer>. |
| |
| All the other changes are just to adapt to the new ownership patterns. |
| |
| I verified that no GraphicsLayers were leaked or abandoned after this change. |
| |
| * WebProcess/WebCoreSupport/WebInspectorClient.cpp: |
| (WebKit::WebInspectorClient::~WebInspectorClient): |
| (WebKit::WebInspectorClient::showPaintRect): |
| (WebKit::WebInspectorClient::animationEndedForLayer): |
| * WebProcess/WebCoreSupport/WebInspectorClient.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm: |
| (WebKit::RemoteLayerTreeContext::createGraphicsLayer): |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h: |
| * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: |
| (WebKit::RemoteLayerTreeDrawingArea::updateRootLayers): |
| (WebKit::RemoteLayerTreeDrawingArea::flushLayers): |
| |
| 2018-09-12 Chris Dumez <cdumez@apple.com> |
| |
| PSON: No process swap on back navigation after URL bar navigation |
| https://bugs.webkit.org/show_bug.cgi?id=189557 |
| <rdar://problem/44353108> |
| |
| Reviewed by Alex Christensen. |
| |
| Our logic in WebProcessPool::processForNavigationInternal() was wrongly using |
| WebBackForwardList::currentItem() as source item of the navigation, instead of |
| using Navigation::fromItem(). In case of back navigation, by the time |
| processForNavigation() is called, the WebBackForwardList's currentItem has already |
| been updated to be the target item, via a Sync IPC from the WebProcess. As a result, |
| the source and target items would be the same in the following check: |
| ` if (currentItem->itemID().processIdentifier == backForwardListItem->itemID().processIdentifier)` |
| |
| This would cause us to reuse the same process incorrectly. Our existing API test coverage |
| did not catch this because our target HistoryItem usually has a SuspendedPage and we decide |
| to use the SuspendedPage's process a few lines above in WebProcessPool::processForNavigationInternal(). |
| |
| * UIProcess/WebProcessPool.cpp: |
| (WebKit::WebProcessPool::processForNavigationInternal): |
| |
| 2018-09-12 Alex Christensen <achristensen@webkit.org> |
| |
| Make IPC::SharedBufferDataReference a type that decodes into but does not inherit from IPC::DataReference |
| https://bugs.webkit.org/show_bug.cgi?id=189519 |
| |
| Reviewed by Chris Dumez. |
| |
| * NetworkProcess/NetworkConnectionToWebProcess.messages.in: |
| * NetworkProcess/NetworkResourceLoader.cpp: |
| (WebKit::NetworkResourceLoader::bufferingTimerFired): |
| (WebKit::NetworkResourceLoader::sendBuffer): |
| * Platform/IPC/DataReference.cpp: |
| (IPC::SharedBufferDataReference::encode const): Deleted. |
| * Platform/IPC/DataReference.h: |
| (IPC::SharedBufferDataReference::SharedBufferDataReference): Deleted. |
| * Platform/IPC/HandleMessage.h: |
| * Platform/IPC/SharedBufferDataReference.h: Added. |
| (IPC::SharedBufferDataReference::SharedBufferDataReference): |
| (IPC::SharedBufferDataReference::encode const): |
| * Scripts/webkit/messages.py: |
| * Shared/API/APIData.h: |
| * StorageProcess/StorageProcess.messages.in: |
| * UIProcess/WebPageProxy.messages.in: |
| * UIProcess/WebURLSchemeTask.cpp: |
| (WebKit::WebURLSchemeTask::didReceiveData): |
| * WebKit.xcodeproj/project.pbxproj: |
| * WebProcess/Network/WebLoaderStrategy.cpp: |
| (WebKit::WebLoaderStrategy::storeDerivedDataToCache): |
| * WebProcess/Network/WebResourceLoader.messages.in: |
| * WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp: |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveData): |
| (WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk): |
| * WebProcess/WebCoreSupport/WebEditorClient.cpp: |
| (WebKit::WebEditorClient::registerAttachmentIdentifier): |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::getContentsAsMHTMLData): |
| (WebKit::WebPage::getSelectionAsWebArchiveData): |
| (WebKit::WebPage::getMainResourceDataOfFrame): |
| (WebKit::WebPage::getResourceDataFromFrame): |
| (WebKit::WebPage::getWebArchiveOfFrame): |
| (WebKit::WebPage::drawPagesToPDF): |
| * WebProcess/WebPage/WebPage.messages.in: |
| |
| 2018-09-11 Dean Jackson <dino@apple.com> |
| |
| Header parsing for experimental and internal debug features |
| https://bugs.webkit.org/show_bug.cgi?id=189486 |
| <rdar://problem/44320618> |
| |
| Reviewed by Tim Horton. |
| |
| Provide key-based (string) access to experimental and internal features. |
| |
| * Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb: |
| * UIProcess/API/C/WKPreferences.cpp: |
| (WKPreferencesSetExperimentalFeatureForKey): |
| (WKPreferencesResetAllInternalDebugFeatures): |
| (WKPreferencesSetInternalDebugFeatureForKey): |
| * UIProcess/API/C/WKPreferencesRefPrivate.h: |
| * UIProcess/WebPreferences.h: |
| |
| 2018-09-10 Matt Rajca <mrajca@apple.com> |
| |
| Expose a few WebPlaybackControlsManager-driven PIP APIs to clients |
| https://bugs.webkit.org/show_bug.cgi?id=189478 |
| <rdar://problem/44312650> |
| |
| Reviewed by Eric Carlson. |
| |
| This patch exposes APIs necessary to toggle PIP and query its status from clients of WKWebView. |
| The existing PIP test has been updated to use the new APIs instead of simulating mouse clicks. |
| I also increased the size of the video element in the test page so it gets picked up by the |
| main content heuristics. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _updateMediaPlaybackControlsManager]): Create a media playback controls manager if necessary. |
| (-[WKWebView _isPictureInPictureActive]): Return true if the "active" media element is in PIP. |
| (-[WKWebView _togglePictureInPicture]): Toggle PIP on the "active" media element. |
| (-[WKWebView _canTogglePictureInPicture]): Renamed from... |
| (-[WKWebView _canTogglePictureInPictureForTesting]): |
| * UIProcess/API/Cocoa/WKWebViewPrivate.h: |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::isPictureInPictureActive): Return true if the "active" media element is in PIP. |
| (WebKit::WebViewImpl::togglePictureInPicture): Toggle PIP on the "active" media element. |
| (WebKit::WebViewImpl::updateMediaPlaybackControlsManager): Let clients create a playback |
| controls manager even when there is no Touch Bar present. |
| (WebKit::WebViewImpl::updateMediaTouchBar): Extract some code into a helper method. |
| (WebKit::WebViewImpl::canTogglePictureInPicture): Renamed from... |
| (WebKit::WebViewImpl::canTogglePictureInPictureForTesting): |
| |
| 2018-09-12 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| [Win][Clang] error: non-constant-expression cannot be narrowed from type 'int' to 'SHORT' |
| https://bugs.webkit.org/show_bug.cgi?id=189542 |
| |
| Reviewed by Alex Christensen. |
| |
| * UIProcess/win/WebInspectorProxyWin.cpp: |
| (WebKit::WebInspectorProxy::platformCreateFrontendPage): Narrowed initialWindowWidth and initialWindowHeight by using static_cast. |
| |
| 2018-09-12 Chris Dumez <cdumez@apple.com> |
| |
| Clean up SuspendedPageProxy |
| https://bugs.webkit.org/show_bug.cgi?id=189517 |
| |
| Reviewed by Alex Christensen. |
| |
| Clean up SuspendedPageProxy: |
| 1. SuspendedPageProxy does not need to be RefCounted. It is even dangerous given that WebPageProxy |
| owns the SuspendedPageProxy and SuspendedPageProxy has a WebPageProxy& data member. We definitely |
| do not want it to outlive its WebPageProxy. |
| 2. The SuspendedPageProxy destructor does not need to be virtual. |
| 3. Have WebBackForwardListItem keep a WeakPtr<SuspendedPageProxy> instead of a SuspendedPageProxy*. |
| This is safer and avoid having to explicitly clear the pointer. |
| 4. m_finishedSuspending data member does not need a getter and is only needed if !LOG_DISABLED. |
| |
| * Shared/WebBackForwardListItem.cpp: |
| (WebKit::WebBackForwardListItem::setSuspendedPage): |
| * Shared/WebBackForwardListItem.h: |
| (WebKit::WebBackForwardListItem::suspendedPage const): |
| * UIProcess/SuspendedPageProxy.cpp: |
| (WebKit::SuspendedPageProxy::SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::~SuspendedPageProxy): |
| (WebKit::SuspendedPageProxy::webProcessDidClose): |
| (WebKit::SuspendedPageProxy::didFinishLoad): |
| * UIProcess/SuspendedPageProxy.h: |
| (WebKit::SuspendedPageProxy::process const): |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::maybeCreateSuspendedPage): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| * UIProcess/WebPageProxy.h: |
| |
| 2018-09-12 Guillaume Emont <guijemont@igalia.com> |
| |
| Add IGNORE_WARNING_.* macros |
| https://bugs.webkit.org/show_bug.cgi?id=188996 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: |
| (WebKit::NetworkDataTaskCocoa::statelessCookieStorage): |
| * NetworkProcess/cocoa/NetworkProcessCocoa.mm: |
| (WebKit::NetworkProcess::platformSyncAllCookies): |
| * PluginProcess/mac/PluginProcessMac.mm: |
| (WebKit::beginModal): |
| * PluginProcess/mac/PluginProcessShim.mm: |
| * Shared/Plugins/Netscape/NetscapePluginModule.cpp: |
| (WebKit::NetscapePluginModule::tryLoad): |
| * Shared/ios/ChildProcessIOS.mm: |
| (WebKit::ChildProcess::initializeSandbox): |
| * Shared/mac/ChildProcessMac.mm: |
| (WebKit::compileAndApplySandboxSlowCase): |
| * Shared/mac/ColorSpaceData.mm: |
| (WebKit::ColorSpaceData::decode): |
| * Shared/mac/SandboxExtensionMac.mm: |
| (WebKit::SandboxExtensionImpl::sandboxExtensionForType): |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView _web_superAccessibilityAttributeValue:]): |
| * UIProcess/API/Cocoa/WKWebViewConfiguration.mm: |
| * UIProcess/API/Cocoa/_WKWebsiteDataStore.mm: |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkitWebViewRunAsModal): |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView _web_superAccessibilityAttributeValue:]): |
| * UIProcess/Cocoa/DownloadClient.mm: |
| (WebKit::DownloadClient::decideDestinationWithSuggestedFilename): |
| * UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm: |
| (-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]): |
| * UIProcess/Cocoa/NavigationState.mm: |
| (WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): |
| * UIProcess/Cocoa/UIDelegate.mm: |
| (WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu): |
| * UIProcess/Cocoa/WebProcessPoolCocoa.mm: |
| (WebKit::WebProcessPool::platformInitializeWebProcess): |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (-[WKTextListTouchBarViewController initWithWebViewImpl:]): |
| (WebKit::WebViewImpl::updateWindowAndViewFrames): |
| (WebKit::WebViewImpl::sendDragEndToPage): |
| (WebKit::WebViewImpl::startDrag): |
| (WebKit::WebViewImpl::characterIndexForPoint): |
| * UIProcess/Plugins/mac/PluginProcessProxyMac.mm: |
| (WebKit::PluginProcessProxy::getPluginProcessSerialNumber): |
| (WebKit::PluginProcessProxy::makePluginProcessTheFrontProcess): |
| (WebKit::PluginProcessProxy::makeUIProcessTheFrontProcess): |
| (WebKit::PluginProcessProxy::exitFullscreen): |
| * UIProcess/ios/SmartMagnificationController.mm: |
| * UIProcess/ios/WKGeolocationProviderIOS.mm: |
| * UIProcess/ios/WKLegacyPDFView.mm: |
| * UIProcess/ios/WKPDFPageNumberIndicator.mm: |
| (-[WKPDFPageNumberIndicator _makeRoundedCorners]): |
| * UIProcess/ios/forms/WKAirPlayRoutePicker.mm: |
| * UIProcess/ios/forms/WKFileUploadPanel.mm: |
| (-[WKFileUploadPanel _presentPopoverWithContentViewController:animated:]): |
| * UIProcess/ios/forms/WKFormColorControl.mm: |
| (-[WKColorPopover initWithView:]): |
| * UIProcess/ios/forms/WKFormInputControl.mm: |
| (-[WKDateTimePopover initWithView:datePickerMode:]): |
| * UIProcess/ios/forms/WKFormPopover.h: |
| * UIProcess/ios/forms/WKFormPopover.mm: |
| * UIProcess/ios/forms/WKFormSelectPopover.mm: |
| (-[WKSelectPopover initWithView:hasGroups:]): |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::screenToRootView): |
| (WebKit::PageClientImpl::rootViewToScreen): |
| * UIProcess/mac/WKFullScreenWindowController.mm: |
| (-[WKFullScreenWindowController enterFullScreen:]): |
| (-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): |
| (-[WKFullScreenWindowController exitFullScreen]): |
| (-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]): |
| (-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): |
| (-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): |
| (-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): |
| (-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): |
| * UIProcess/mac/WKPrintingView.mm: |
| (-[WKPrintingView _setAutodisplay:]): |
| (-[WKPrintingView _drawPDFDocument:page:atPoint:]): |
| (-[WKPrintingView _drawPreview:]): |
| (-[WKPrintingView drawRect:]): |
| * UIProcess/mac/WKTextInputWindowController.mm: |
| (-[WKTextInputPanel _interpretKeyEvent:usingLegacyCocoaTextInput:string:]): |
| (-[WKTextInputPanel _hasMarkedText]): |
| * UIProcess/mac/WebPopupMenuProxyMac.mm: |
| (WebKit::WebPopupMenuProxyMac::showPopupMenu): |
| * WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: |
| (WebKit::initializeEventRecord): |
| (WebKit::NetscapePlugin::sendComplexTextInput): |
| (WebKit::makeCGLPresentLayerOpaque): |
| (WebKit::NetscapePlugin::nullEventTimerFired): |
| * WebProcess/Plugins/PDF/PDFPlugin.mm: |
| (-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]): |
| (-[WKPDFLayerControllerDelegate writeItemsToPasteboard:withTypes:]): |
| (WebKit::PDFPlugin::handleEditingCommand): |
| (WebKit::PDFPlugin::setActiveAnnotation): |
| (WebKit:: const): |
| * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.h: |
| * WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm: |
| (WebKit::PDFPluginChoiceAnnotation::createAnnotationElement): |
| * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.h: |
| * WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm: |
| (WebKit::PDFPluginTextAnnotation::createAnnotationElement): |
| * WebProcess/WebCoreSupport/WebAlternativeTextClient.h: |
| * WebProcess/WebCoreSupport/mac/WebDragClientMac.mm: |
| (WebKit::convertImageToBitmap): |
| (WebKit::WebDragClient::declareAndWriteDragImage): |
| * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| (WebKit::drawPDFPage): |
| |
| 2018-09-11 Olivia Barnett <obarnett@apple.com> |
| |
| Implement the Web Share API for mac |
| https://bugs.webkit.org/show_bug.cgi?id=189443 |
| |
| Reviewed by Tim Horton. |
| |
| * Shared/WebPreferencesDefaultValues.h: |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView shareSheetDidDismiss:]): |
| * UIProcess/API/Cocoa/WKWebViewInternal.h: |
| * UIProcess/API/mac/WKView.mm: |
| (-[WKView shareSheetDidDismiss:]): |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::showShareSheet): |
| (WebKit::WebViewImpl::shareSheetDidDismiss): |
| Implemented function for WKShareSheetDelegate. |
| |
| * UIProcess/Cocoa/WKShareSheet.h: |
| * UIProcess/Cocoa/WKShareSheet.mm: |
| (-[WKShareSheet initWithView:initWithView:]): |
| (-[WKShareSheet presentWithParameters:completionHandler:]): |
| (-[WKShareSheet sharingServicePicker:didChooseSharingService:]): |
| (-[WKShareSheet _cancel]): |
| (-[WKShareSheet dismiss]): |
| (-[WKShareSheet _dismissDisplayAnimated:]): |
| (-[WKShareSheet invokeShareSheetWithResolution:]): |
| (-[WKShareSheet initWithView:]): Deleted. |
| Added mac platform checks and share sheet functionality. |
| |
| * UIProcess/mac/PageClientImplMac.h: |
| * UIProcess/mac/PageClientImplMac.mm: |
| (WebKit::PageClientImpl::showShareSheet): |
| Allows macos to invoke the system share sheet. |
| |
| 2018-09-07 Dean Jackson <dino@apple.com> |
| |
| Add and expose Internal features from WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=189442 |
| <rdar://problem/44243404> |
| |
| Reviewed by Simon Fraser. |
| |
| Experimental features have become a mess. People are using them for |
| anything that they want to be easily toggled from a host app (e.g. |
| Safari), which means the user-facing menu has become large and |
| confusing. |
| |
| Introduce the idea of Internal features, that will be exposed in a way |
| that end-users are not expected to ever see (unless they really want |
| to). |
| |
| * CMakeLists.txt: Add new files. |
| * Sources.txt: |
| * SourcesCocoa.txt: |
| * WebKit.xcodeproj/project.pbxproj: |
| |
| * DerivedSources.make: Add new generated files. |
| * Scripts/GeneratePreferences.rb: Generate the preferences stuff for Internal Debug features. |
| * Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb: |
| * Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb: Added. |
| |
| * Shared/API/APIObject.h: New API object for InternalDebugFeature. |
| * Shared/Cocoa/APIObject.mm: |
| (API::Object::newObject): |
| |
| * Shared/WebPreferences.yaml: Change some of the existing experimental features to "internal". |
| |
| * UIProcess/API/APIInternalDebugFeature.cpp: New API type - just like APIExperimentalFeature. |
| (API::InternalDebugFeature::create): |
| (API::InternalDebugFeature::InternalDebugFeature): |
| (API::InternalDebugFeature::~InternalDebugFeature): |
| * UIProcess/API/APIInternalDebugFeature.h: |
| * UIProcess/API/C/WKAPICast.h: |
| |
| * UIProcess/API/Cocoa/WKPreferences.mm: Change the naming of the experimental feature API so that it |
| won't clash with internal debug features. We can remove the old API once Safari has adopted. |
| (+[WKPreferences _internalDebugFeatures]): |
| (-[WKPreferences _isEnabledForInternalDebugFeature:]): |
| (-[WKPreferences _setEnabled:forInternalDebugFeature:]): |
| (-[WKPreferences _isEnabledForFeature:]): |
| (-[WKPreferences _setEnabled:forFeature:]): |
| (-[WKPreferences _isEnabledForExperimentalFeature:]): |
| (-[WKPreferences _setEnabled:forExperimentalFeature:]): |
| * UIProcess/API/Cocoa/WKPreferencesPrivate.h: |
| |
| * UIProcess/API/Cocoa/_WKInternalDebugFeature.h: New object - same as _WKExperimentalFeature. |
| * UIProcess/API/Cocoa/_WKInternalDebugFeature.mm: |
| (-[_WKInternalDebugFeature dealloc]): |
| (-[_WKInternalDebugFeature description]): |
| (-[_WKInternalDebugFeature name]): |
| (-[_WKInternalDebugFeature key]): |
| (-[_WKInternalDebugFeature details]): |
| (-[_WKInternalDebugFeature defaultValue]): |
| (-[_WKInternalDebugFeature isHidden]): |
| (-[_WKInternalDebugFeature _apiObject]): |
| * UIProcess/API/Cocoa/_WKInternalDebugFeatureInternal.h: |
| |
| * UIProcess/WebPreferences.cpp: Add support for Internal Debug features. |
| (WebKit::WebPreferences::updateBoolValueForInternalDebugFeatureKey): |
| (WebKit::WebPreferences::updateBoolValueForExperimentalFeatureKey): |
| * UIProcess/WebPreferences.h: |
| |
| * UIProcess/WebProcessPool.cpp: Change a comment now that it is an internal feature. |
| (WebKit::WebProcessPool::createWebPage): |
| |
| 2018-09-11 Eric Carlson <eric.carlson@apple.com> |
| |
| WebPage::close should clear UserMediaPermissionRequestManager |
| https://bugs.webkit.org/show_bug.cgi?id=189369 |
| <rdar://problem/44196724> |
| |
| Reviewed by Youenn Fablet. |
| |
| * WebProcess/WebPage/WebPage.cpp: |
| (WebKit::WebPage::close): Clear m_userMediaPermissionRequestManager. |
| |
| 2018-09-11 Wenson Hsieh <wenson_hsieh@apple.com> |
| |
| [macOS] [WK2] Support changing foreground colors via color panel |
| https://bugs.webkit.org/show_bug.cgi?id=189382 |
| <rdar://problem/44227311> |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Adds support for changing font color in a richly editable element in WebKit2 via NSColorPanel. See below for |
| more detail, as well as the WebCore ChangeLog. |
| |
| * UIProcess/API/Cocoa/WKWebView.mm: |
| (-[WKWebView changeColor:]): |
| |
| Implement this selector; AppKit calls into this when changing font color using NSColorPanel. |
| |
| * UIProcess/Cocoa/WebViewImpl.h: |
| * UIProcess/Cocoa/WebViewImpl.mm: |
| (WebKit::WebViewImpl::changeFontColorFromSender): |
| |
| Creates and populates new FontAttributeChanges, with only the foreground color determined by asking the sender |
| object for its -color. |
| |
| * WebProcess/WebPage/mac/WebPageMac.mm: |
| |
| Use the relevant EditAction for the incoming FontAttributeChanges, instead of always specifying |
| EditAction::ChangeAttributes. |
| |
| (WebKit::WebPage::changeFontAttributes): |
| |
| 2018-09-11 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts |
| https://bugs.webkit.org/show_bug.cgi?id=188008 |
| |
| Reviewed by Alex Christensen. |
| |
| This patch is a follow-up to https://bugs.webkit.org/show_bug.cgi?id=180307. |
| Variable fonts have CFDictionaries with non-string keys. We need to support that in our IPC code. |
| |
| * Shared/cf/ArgumentCodersCF.cpp: |
| (IPC::encode): |
| (IPC::decode): |
| |
| 2018-09-11 Adrian Perez de Castro <aperez@igalia.com> |
| |
| [WPE][GTK] API documentation is unclear about how to modify requests before sending them |
| https://bugs.webkit.org/show_bug.cgi?id=189505 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add notes to the API documentation to make explicit where modification |
| of WebKitURIRequest instances affects the request data sent over the |
| network. |
| |
| * UIProcess/API/glib/WebKitNavigationAction.cpp: Clarify that |
| modifications to the associated WebKitURIRequest do not affect the |
| actual request. Point to WebKitPage::send-request instead. |
| * UIProcess/API/glib/WebKitResponsePolicyDecision.cpp: Ditto. |
| * UIProcess/API/glib/WebKitWebView.cpp: |
| (webkit_web_view_class_init): Ditto for the description of the |
| WebKitWebView::decide-policy signal. Also fix the syntax of example. |
| * WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp: |
| (webkit_web_page_class_init): Indicate that modifications to the |
| WebKitURIRequest will change the actual network request data. |
| |
| 2018-09-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, attempt to fix Apple builds after r235903 |
| https://bugs.webkit.org/show_bug.cgi?id=188872 |
| |
| If it really needs to be inlined, it will need to move to the header.... |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::pageClient const): |
| |
| 2018-09-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Unreviewed, fix build after r235903 |
| https://bugs.webkit.org/show_bug.cgi?id=188872 |
| |
| This broke all ports except GTK. Need to add a missing header. |
| |
| * UIProcess/PageClient.h: |
| |
| 2018-09-11 Pablo Saavedra <psaavedra@igalia.com> |
| |
| Add missing #if ENABLE(VIDEO) WebProcess/FullScreen/WebFullScreenManager.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=189506 |
| |
| Reviewed by Tim Horton. |
| |
| m_pipStandbyElement is only defined in |
| WebKit/WebProcess/FullScreen/WebFullScreenManager.h |
| only when ENABLE(VIDEO) (see |
| https://bugs.webkit.org/show_bug.cgi?id=181338) |
| |
| * WebProcess/FullScreen/WebFullScreenManager.cpp: |
| (WebKit::WebFullScreenManager::setPIPStandbyElement): |
| |
| 2018-09-11 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| WebPageProxy should hold a WeakPtr to its PageClient |
| https://bugs.webkit.org/show_bug.cgi?id=188872 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| This ensures the PageClient reference is always valid when used. |
| |
| * UIProcess/Cocoa/WebPageProxyCocoa.mm: |
| (WebKit::WebPageProxy::startDrag): |
| (WebKit::WebPageProxy::setDragCaretRect): |
| * UIProcess/PageClient.h: |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::PageClientProtector::PageClientProtector): |
| (WebKit::PageClientProtector::~PageClientProtector): |
| (WebKit::WebPageProxy::WebPageProxy): |
| (WebKit::m_resetRecentCrashCountTimer): |
| (WebKit::WebPageProxy::pageClient const): |
| (WebKit::WebPageProxy::reattachToWebProcess): |
| (WebKit::WebPageProxy::initializeWebPage): |
| (WebKit::WebPageProxy::close): |
| (WebKit::WebPageProxy::didChangeBackForwardList): |
| (WebKit::WebPageProxy::willGoToBackForwardListItem): |
| (WebKit::WebPageProxy::shouldKeepCurrentBackForwardListItemInList): |
| (WebKit::WebPageProxy::setViewNeedsDisplay): |
| (WebKit::WebPageProxy::requestScroll): |
| (WebKit::WebPageProxy::viewScrollPosition const): |
| (WebKit::WebPageProxy::updateActivityState): |
| (WebKit::WebPageProxy::activityStateDidChange): |
| (WebKit::WebPageProxy::viewDidEnterWindow): |
| (WebKit::WebPageProxy::dispatchActivityStateChange): |
| (WebKit::WebPageProxy::layerHostingModeDidChange): |
| (WebKit::WebPageProxy::viewSize const): |
| (WebKit::WebPageProxy::startDrag): |
| (WebKit::WebPageProxy::didPerformDragOperation): |
| (WebKit::WebPageProxy::processNextQueuedMouseEvent): |
| (WebKit::WebPageProxy::findPlugin): |
| (WebKit::WebPageProxy::handleTouchEventSynchronously): |
| (WebKit::WebPageProxy::handleTouchEvent): |
| (WebKit::WebPageProxy::preferencesDidChange): |
| (WebKit::WebPageProxy::didCreateMainFrame): |
| (WebKit::WebPageProxy::didCreateSubframe): |
| (WebKit::WebPageProxy::didStartProgress): |
| (WebKit::WebPageProxy::didChangeProgress): |
| (WebKit::WebPageProxy::didFinishProgress): |
| (WebKit::WebPageProxy::didDestroyNavigation): |
| (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::willPerformClientRedirectForFrame): |
| (WebKit::WebPageProxy::didCancelClientRedirectForFrame): |
| (WebKit::WebPageProxy::didChangeProvisionalURLForFrame): |
| (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): |
| (WebKit::WebPageProxy::didFinishLoadForFrame): |
| (WebKit::WebPageProxy::didFailLoadForFrame): |
| (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): |
| (WebKit::WebPageProxy::didReceiveTitleForFrame): |
| (WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame): |
| (WebKit::WebPageProxy::didReachLayoutMilestone): |
| (WebKit::WebPageProxy::didDisplayInsecureContentForFrame): |
| (WebKit::WebPageProxy::didRunInsecureContentForFrame): |
| (WebKit::WebPageProxy::frameDidBecomeFrameSet): |
| (WebKit::WebPageProxy::decidePolicyForNavigationAction): |
| (WebKit::WebPageProxy::decidePolicyForNewWindowAction): |
| (WebKit::WebPageProxy::decidePolicyForResponse): |
| (WebKit::WebPageProxy::unableToImplementPolicy): |
| (WebKit::WebPageProxy::didNavigateWithNavigationData): |
| (WebKit::WebPageProxy::didPerformClientRedirect): |
| (WebKit::WebPageProxy::didPerformServerRedirect): |
| (WebKit::WebPageProxy::didUpdateHistoryTitle): |
| (WebKit::WebPageProxy::closePage): |
| (WebKit::WebPageProxy::setWindowFrame): |
| (WebKit::WebPageProxy::getWindowFrame): |
| (WebKit::WebPageProxy::getWindowFrameWithCallback): |
| (WebKit::WebPageProxy::screenToRootView): |
| (WebKit::WebPageProxy::rootViewToScreen): |
| (WebKit::WebPageProxy::syncRootViewToScreen): |
| (WebKit::WebPageProxy::accessibilityScreenToRootView): |
| (WebKit::WebPageProxy::rootViewToAccessibilityScreen): |
| (WebKit::WebPageProxy::didChangeViewportProperties): |
| (WebKit::WebPageProxy::runOpenPanel): |
| (WebKit::WebPageProxy::showShareSheet): |
| (WebKit::WebPageProxy::handleDownloadRequest): |
| (WebKit::WebPageProxy::didChangeContentSize): |
| (WebKit::WebPageProxy::showColorPicker): |
| (WebKit::WebPageProxy::showDataListSuggestions): |
| (WebKit::WebPageProxy::compositionWasCanceled): |
| (WebKit::WebPageProxy::registerInsertionUndoGrouping): |
| (WebKit::WebPageProxy::canUndoRedo): |
| (WebKit::WebPageProxy::executeUndoRedo): |
| (WebKit::WebPageProxy::clearAllEditCommands): |
| (WebKit::WebPageProxy::setTextIndicator): |
| (WebKit::WebPageProxy::clearTextIndicator): |
| (WebKit::WebPageProxy::setTextIndicatorAnimationProgress): |
| (WebKit::WebPageProxy::showPopupMenu): |
| (WebKit::WebPageProxy::showContextMenu): |
| (WebKit::WebPageProxy::registerEditCommand): |
| (WebKit::WebPageProxy::canUndo): |
| (WebKit::WebPageProxy::canRedo): |
| (WebKit::WebPageProxy::setToolTip): |
| (WebKit::WebPageProxy::setCursor): |
| (WebKit::WebPageProxy::setCursorHiddenUntilMouseMoves): |
| (WebKit::WebPageProxy::didReceiveEvent): |
| (WebKit::WebPageProxy::resetState): |
| (WebKit::WebPageProxy::resetStateAfterProcessExited): |
| (WebKit::WebPageProxy::creationParameters): |
| (WebKit::WebPageProxy::enterAcceleratedCompositingMode): |
| (WebKit::WebPageProxy::exitAcceleratedCompositingMode): |
| (WebKit::WebPageProxy::updateAcceleratedCompositingMode): |
| (WebKit::WebPageProxy::requestGeolocationPermissionForFrame): |
| (WebKit::WebPageProxy::recommendedScrollbarStyleDidChange): |
| (WebKit::WebPageProxy::didChangeScrollOffsetPinningForMainFrame): |
| (WebKit::WebPageProxy::didFinishLoadingDataForCustomContentProvider): |
| (WebKit::WebPageProxy::updateBackingStoreDiscardableState): |
| (WebKit::WebPageProxy::showCorrectionPanel): |
| (WebKit::WebPageProxy::dismissCorrectionPanel): |
| (WebKit::WebPageProxy::dismissCorrectionPanelSoon): |
| (WebKit::WebPageProxy::recordAutocorrectionResponse): |
| (WebKit::WebPageProxy::useDarkAppearance const): |
| (WebKit::WebPageProxy::showDictationAlternativeUI): |
| (WebKit::WebPageProxy::removeDictationAlternatives): |
| (WebKit::WebPageProxy::dictationAlternatives): |
| (WebKit::WebPageProxy::setEditableElementIsFocused): |
| (WebKit::WebPageProxy::takeViewSnapshot): |
| (WebKit::WebPageProxy::wrapCryptoKey): |
| (WebKit::WebPageProxy::unwrapCryptoKey): |
| (WebKit::WebPageProxy::signedPublicKeyAndChallengeString): |
| (WebKit::WebPageProxy::navigationGestureDidBegin): |
| (WebKit::WebPageProxy::navigationGestureWillEnd): |
| (WebKit::WebPageProxy::navigationGestureDidEnd): |
| (WebKit::WebPageProxy::willRecordNavigationSnapshot): |
| (WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved): |
| (WebKit::WebPageProxy::isPlayingMediaDidChange): |
| (WebKit::WebPageProxy::videoControlsManagerDidChange): |
| (WebKit::WebPageProxy::handleControlledElementIDResponse const): |
| (WebKit::WebPageProxy::didPerformImmediateActionHitTest): |
| (WebKit::WebPageProxy::immediateActionAnimationControllerForHitTestResult): |
| (WebKit::WebPageProxy::didHandleAcceptedCandidate): |
| (WebKit::WebPageProxy::addPlaybackTargetPickerClient): |
| (WebKit::WebPageProxy::removePlaybackTargetPickerClient): |
| (WebKit::WebPageProxy::showPlaybackTargetPicker): |
| (WebKit::WebPageProxy::playbackTargetPickerClientStateDidChange): |
| (WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerEnabled): |
| (WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerState): |
| (WebKit::WebPageProxy::didChangeBackgroundColor): |
| (WebKit::WebPageProxy::didRestoreScrollPosition): |
| (WebKit::WebPageProxy::userInterfaceLayoutDirection): |
| (WebKit::WebPageProxy::didInsertAttachment): |
| (WebKit::WebPageProxy::didRemoveAttachment): |
| * UIProcess/WebPageProxy.h: |
| * UIProcess/gstreamer/WebPageProxyGStreamer.cpp: |
| (WebKit::WebPageProxy::requestInstallMissingMediaPlugins): |
| * UIProcess/gtk/WebPageProxyGtk.cpp: |
| (WebKit::WebPageProxy::viewWidget): |
| (WebKit::WebPageProxy::editorStateChanged): |
| * UIProcess/ios/WebPageProxyIOS.mm: |
| (WebKit::WebPageProxy::computeCustomFixedPositionRect const): |
| (WebKit::WebPageProxy::overflowScrollViewWillStartPanGesture): |
| (WebKit::WebPageProxy::overflowScrollViewDidScroll): |
| (WebKit::WebPageProxy::overflowScrollWillStartScroll): |
| (WebKit::WebPageProxy::overflowScrollDidEndScroll): |
| (WebKit::WebPageProxy::didCommitLayerTree): |
| (WebKit::WebPageProxy::layerTreeCommitComplete): |
| (WebKit::WebPageProxy::didReceivePositionInformation): |
| (WebKit::WebPageProxy::saveImageToLibrary): |
| (WebKit::WebPageProxy::interpretKeyEvent): |
| (WebKit::WebPageProxy::registerWebProcessAccessibilityToken): |
| (WebKit::WebPageProxy::couldNotRestorePageState): |
| (WebKit::WebPageProxy::restorePageState): |
| (WebKit::WebPageProxy::restorePageCenterAndScale): |
| (WebKit::WebPageProxy::didGetTapHighlightGeometries): |
| (WebKit::WebPageProxy::startAssistingNode): |
| (WebKit::WebPageProxy::stopAssistingNode): |
| (WebKit::WebPageProxy::showInspectorHighlight): |
| (WebKit::WebPageProxy::hideInspectorHighlight): |
| (WebKit::WebPageProxy::showInspectorIndication): |
| (WebKit::WebPageProxy::hideInspectorIndication): |
| (WebKit::WebPageProxy::enableInspectorNodeSearch): |
| (WebKit::WebPageProxy::disableInspectorNodeSearch): |
| (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): |
| (WebKit::WebPageProxy::showPlaybackTargetPicker): |
| (WebKit::WebPageProxy::commitPotentialTapFailed): |
| (WebKit::WebPageProxy::didNotHandleTapAsClick): |
| (WebKit::WebPageProxy::didCompleteSyntheticClick): |
| (WebKit::WebPageProxy::disableDoubleTapGesturesDuringTapIfNecessary): |
| (WebKit::WebPageProxy::editorStateChanged): |
| (WebKit::WebPageProxy::showValidationMessage): |
| (WebKit::WebPageProxy::didHandleStartDataInteractionRequest): |
| (WebKit::WebPageProxy::didHandleAdditionalDragItemsRequest): |
| (WebKit::WebPageProxy::didConcludeEditDataInteraction): |
| (WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrame): |
| * UIProcess/mac/WebPageProxyMac.mm: |
| (WebKit::WebPageProxy::windowAndViewFramesChanged): |
| (WebKit::WebPageProxy::insertDictatedTextAsync): |
| (WebKit::WebPageProxy::setPromisedDataForImage): |
| (WebKit::WebPageProxy::didPerformDictionaryLookup): |
| (WebKit::WebPageProxy::registerWebProcessAccessibilityToken): |
| (WebKit::WebPageProxy::makeFirstResponder): |
| (WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder): |
| (WebKit::WebPageProxy::colorSpace): |
| (WebKit::WebPageProxy::pluginFocusOrWindowFocusChanged): |
| (WebKit::WebPageProxy::setPluginComplexTextInputState): |
| (WebKit::WebPageProxy::executeSavedCommandBySelector): |
| (WebKit::WebPageProxy::intrinsicContentSizeDidChange): |
| (WebKit::WebPageProxy::setAcceleratedCompositingRootLayer): |
| (WebKit::WebPageProxy::acceleratedCompositingRootLayer const): |
| (WebKit::WebPageProxy::showPDFContextMenu): |
| (WebKit::WebPageProxy::showTelephoneNumberMenu): |
| (WebKit::WebPageProxy::boundsOfLayerInLayerBackedWindowCoordinates const): |
| (WebKit::WebPageProxy::editorStateChanged): |
| (WebKit::WebPageProxy::startWindowDrag): |
| (WebKit::WebPageProxy::platformWindow): |
| (WebKit::WebPageProxy::rootViewToWindow): |
| (WebKit::WebPageProxy::showValidationMessage): |
| (WebKit::WebPageProxy::inspectorAttachmentView): |
| (WebKit::WebPageProxy::remoteObjectRegistry): |
| * UIProcess/win/WebPageProxyWin.cpp: |
| (WebKit::WebPageProxy::viewWidget): |
| * UIProcess/wpe/WebPageProxyWPE.cpp: |
| (WebKit::WebPageProxy::viewBackend): |
| |
| 2018-09-11 Chris Dumez <cdumez@apple.com> |
| |
| Regression(PSON): "Swipe back" snapshot is missing when navigating back cross-process |
| https://bugs.webkit.org/show_bug.cgi?id=189482 |
| <rdar://problem/44317222> |
| |
| Reviewed by Geoffrey Garen. |
| |
| The issue was that when we swap process on navigation, we: |
| 1. Call processDidTerminate() which calls resetState() and clears the displayed content |
| 2. Reattach the WebPageProxy to a new WebProcess |
| 3. Trigger the navigation |
| 4. Take the navigation snapshot |
| |
| When the navigation snapshot occurs at step 4, the view is already blank in the case of |
| process swap. To avoid the issue, we take the navigation snapshot earlier, before calling |
| processDidTerminate() and we suppress the next navigation snapshot as it would be blank. |
| |
| At some point, we will likely want to display the previous' WebProcess content longer, |
| until the new WebProcess has something interesting to display. Once this is implemented, |
| we'll likely be able to drop the early snapshotting logic. |
| |
| * UIProcess/WebPageProxy.cpp: |
| (WebKit::WebPageProxy::recordAutomaticNavigationSnapshot): |
| (WebKit::WebPageProxy::continueNavigationInNewProcess): |
| (WebKit::WebPageProxy::restoreFromSessionState): |
| (WebKit::WebPageProxy::didCommitLoadForFrame): |
| * UIProcess/WebPageProxy.h: |
| (WebKit::WebPageProxy::suppressNextAutomaticNavigationSnapshot): |
| |
| 2018-09-11 Woodrow Wang <woodrow_wang@apple.com> |
| |
| Add Web API Statistics Collection |
| https://bugs.webkit.org/show_bug.cgi?id=187773 |
| <rdar://problem/44155162> |
| |
| Reviewed by Brent Fulgham. |
| |
| * Shared/WebCoreArgumentCoders.cpp: |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::encode): |
| (IPC::ArgumentCoder<ResourceLoadStatistics>::decode): |
| * UIProcess/ResourceLoadStatisticsMemoryStore.cpp: |
| |
| == Rolled over to ChangeLog-2018-09-11 == |